打印
[实用程序源码及工具软件]

Ju lia语言调用动态链接库DLL例程源码(独家在21ic发表)

[复制链接]
103|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2023-9-19 14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hotpower 于 2023-9-20 09:43 编辑
#import Pkg
#Pkg.add("OffsetArrays")
using OffsetArrays
DllFileName = "D:\\libpea256x64\\libpea256x64.dll"
PEA256Init = ccall((:PEA256Init, DllFileName), Bool, ())
if PEA256Init
    ArrayBytes = UInt8[0, 1, 2, 3]
    ArrayEncrypt = UInt8[0, 1, 2, 3]
    ArrayDecrypt = UInt8[0, 1, 2, 3]
    #ArrayBytes = OffsetArray(ArrayBytes,0:3)
    #ArrayEncrypt = OffsetArray(ArrayEncrypt,0:3)
    #ArrayDecrypt = OffsetArray(ArrayDecrypt,0:3)
        ccall((:PEA256Test, DllFileName), Bool, ())
    handle = ccall((:PEA256Open, DllFileName), Ptr{Any}, ())
    if handle != C_NULL
        subkey = ccall((:PEA256EncryptUserKey, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, Ptr{UInt8}), handle, "123", "", "")
        println(string(subkey, base = 16, pad = 8))
        subkey = ccall((:PEA256EncryptBytes, DllFileName), UInt32,
            (Ptr{UInt64}, Ptr{UInt8}, UInt32, UInt32), handle, ArrayBytes, 4, subkey)
        println(ArrayBytes)
        subkey = ccall((:PEA256DecryptUserKey, DllFileName), UInt32,
            (Ptr{UInt64}, Ptr{UInt8}, Ptr{UInt8}, Ptr{UInt8}), handle, "123", "", "")
        println(string(subkey, base = 16, pad = 8))
        subkey = ccall((:PEA256DecryptBytes, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, UInt32, UInt32), handle, ArrayBytes, 4, subkey)
        println(ArrayBytes)
        subkey = ccall((:PEA256EncryptUserKey, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, Ptr{UInt8}), handle, "", "0123456789ABCDEF0123456789ABCDEF", "")
        println(string(subkey, base = 16, pad = 8))
        subkey = ccall((:PEA256EncryptBytesEx, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, UInt32, UInt32), handle, ArrayEncrypt, ArrayDecrypt, 4, subkey)
        println(ArrayDecrypt)
        subkey = ccall((:PEA256DecryptUserKey, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, Ptr{UInt8}), handle, "", "0123456789ABCDEF0123456789ABCDEF", "")
        println(string(subkey, base = 16, pad = 8))
        subkey = ccall((:PEA256DecryptBytesEx, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, UInt32, UInt32), handle, ArrayDecrypt, ArrayEncrypt, 4, subkey)
        println(ArrayEncrypt)
        subkey = ccall((:PEA256EncryptUserKey, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, Ptr{UInt8}), handle, "", "", "123.PEA.KEY")
        println(string(subkey, base = 16, pad = 8))
        subkey = ccall((:PEA256EncryptArrayEx, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, UInt32, UInt32, UInt32), handle, ArrayEncrypt, ArrayDecrypt, 0, 4, subkey)
        println(ArrayDecrypt)
        subkey = ccall((:PEA256DecryptUserKey, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, Ptr{UInt8}), handle, "", "", "123.PEA.KEY")
        println(string(subkey, base = 16, pad = 8))
        subkey = ccall((:PEA256DecryptArrayEx, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, UInt32, UInt32, UInt32), handle, ArrayDecrypt, ArrayEncrypt, 0, 4, subkey)
        println(ArrayEncrypt)
        subkey = ccall((:PEA256EncryptUserKey, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, Ptr{UInt8}), handle, "", "", "D:\\libpea256x64\\libpea256x64.dll")
        println(string(subkey, base = 16, pad = 8))
        subkey = ccall((:PEA256EncryptBufferEx, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, UInt32, Ptr{UInt8}, UInt32, UInt32, UInt32), handle, ArrayEncrypt, 0, ArrayDecrypt, 0, 4, subkey)
        println(ArrayDecrypt)
        subkey = ccall((:PEA256DecryptUserKey, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, Ptr{UInt8}, Ptr{UInt8}), handle, "", "", "D:\\libpea256x64\\libpea256x64.dll")
        println(string(subkey, base = 16, pad = 8))
        subkey = ccall((:PEA256DecryptBufferEx, DllFileName), UInt32,
            (Ptr{Any}, Ptr{UInt8}, UInt32, Ptr{UInt8}, UInt32, UInt32, UInt32), handle, ArrayDecrypt, 0, ArrayEncrypt, 0, 4, subkey)
        println(ArrayEncrypt)

        ccall((:PEA256Close, DllFileName), Any, (Ptr{Any}, ), handle)
        println("PEA256COM结束!!!")
    else
        println("PEA256Open()失败!!!")
    end
else
    println("PEA256Init()失败!!!")
end


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:[url=http://www.21ic.com/tools/HotWC3_V1.23.html]

1538

主题

21697

帖子

506

粉丝