|
发表于 2024-7-20 11:32:14
|
显示全部楼层
福建省福州市
本帖最后由 cf2006a 于 2024-7-20 11:34 编辑
修改了下 dll 函数地址不能写死,每个人的电脑系统都不一样不是固定的
.版本 2
.支持库 spec
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 数据类型, 数据类型1
.局部变量 类, 类1
.局部变量 数组数据类型, 数据类型1, , "1"
.局部变量 数组类, 类1, , "1"
.局部变量 GlobalSize函数地址, 整数型
' 自定义数据结构/类私有成员 中:
' #字节型 跟 #短整数型 都是4
' 字节集 文本型 自定义数据类型 数组 都是4,因为只存了地址
GlobalSize函数地址 = GetProcAddress (GetModuleHandleA (“kernel32.dll”), “GlobalSize”)
' 取自定义数据类型的尺寸;
调试输出 (“带地址”, 取数据结构尺寸 (数据类型, GlobalSize函数地址))
' 调试输出 (取数据结构尺寸 (数组数据类型 [1]), 取数据结构尺寸2 (数组数据类型 [1]))
调试输出 (LocalSize (数组数据类型 [1]), LocalSize (数组数据类型 [1]))
' 取类的私有成员尺寸 ,返回值要-4
' 调试输出 (取数据结构尺寸 (类) - 4, 取数据结构尺寸2 (类) - 4)
' 调试输出 (取数据结构尺寸 (数组类 [1]) - 4, 取数据结构尺寸2 (数组类 [1]) - 4)
调试输出 (GlobalSize (数组类 [1]) - 4, GlobalSize (数组类 [1]) - 4)
' 核心库的用法只能取单个
调试输出 (取数据类型尺寸 (#字节型), 取数据类型尺寸 (#短整数型))
调试输出 (取数据类型尺寸 (#小数型), 取数据类型尺寸 (#整数型), 取数据类型尺寸 (#逻辑型))
调试输出 (取数据类型尺寸 (#长整数型), 取数据类型尺寸 (#双精度小数型), 取数据类型尺寸 (#日期时间型))
返回 (0) ' 可以根据您的需要返回任意数值
.子程序 GetProcAddress_汇编, 整数型, 公开
.参数 hModule, 整数型
.参数 lpProcName, 文本型
置入代码 ({ 139, 93, 8, 131, 251, 0, 116, 58, 139, 67, 60, 3, 195, 139, 80, 120, 3, 211, 139, 74, 24, 139, 66, 32, 81, 81, 80, 51, 192, 131, 201, 255, 139, 125, 12, 139, 63, 242, 174, 247, 209, 88, 81, 139, 125, 12, 139, 63, 139, 52, 24, 3, 243, 243, 166, 89, 116, 14, 131, 192, 4, 94, 78, 86, 117, 232, 51, 192, 201, 194, 8, 0, 94, 89, 43, 206, 139, 66, 36, 141, 4, 72, 15, 183, 4, 24, 139, 74, 28, 141, 4, 129, 139, 4, 24, 3, 195, 201, 194, 8, 0 })
返回 (0)
.子程序 取数据结构尺寸, 整数型, 公开, 获取 自定义数据类型的长度 / 类的私有成员长度(返回值要-4) / 数组请用 数组[x] 给一个成员就行;基本类型长度不支持,请用:取数据类型尺寸()
.参数 数据, 通用型, 参考
.参数 dll函数地址, 整数型
' 就是调用dll: LocalSize by,7ian.541980200
置入代码 ({ 139, 69, 8, 255, 48, 255, 85, 12, 201, 194, 4, 0 })
返回 (0)
.子程序 取数据结构尺寸2, 整数型, 公开, 获取 自定义数据类型的长度 / 类的私有成员长度(返回值要-4) / 数组请用 数组[x] 给一个成员就行;基本类型长度不支持,请用:取数据类型尺寸()
.参数 数据, 通用型, 参考
' 就是调用dll: GlobalSize by,7ian.541980200
置入代码 ({ 139, 69, 8, 255, 48, 184, 16, 252, 105, 117, 255, 208, 201, 194, 4, 0 })
返回 (0)
.版本 2
.DLL命令 LocalSize, 整数型, "kernel32.dll", "LocalSize", 公开, 获取 自定义数据类型的长度 / 类的私有成员长度(返回值要-4) / 数组请用 数组[x] 给一个成员就行;基本类型长度不支持,请用:取数据类型尺寸()
.参数 hMem, 通用型, , 任意定义个数据类型
.DLL命令 GlobalSize, 整数型, "kernel32.dll", "GlobalSize", 公开, 获取 自定义数据类型的长度 / 类的私有成员长度(返回值要-4) / 数组请用 数组[x] 给一个成员就行;基本类型长度不支持,请用:取数据类型尺寸()
.参数 hMem, 通用型, , 任意定义个数据类型
.DLL命令 GetModuleHandleA, 整数型, "kernel32.dll", "GetModuleHandleA", , 取模块句柄
.参数 lpModuleName, 文本型, , DLL名称
.DLL命令 GetProcAddress, 整数型, "kernel32.dll", "GetProcAddress", , 取动态链接库函数入口地址
.参数 hModule, 整数型, , 模块句柄
.参数 lpProcName, 文本型, , 函数名称
|
|