本帖最后由 1185384801 于 2018-7-17 11:02 编辑
Hi!大家好!我是超级用户!首先来看一张图:
哈哈本图亮点可多了哦(都圈出来了拉)
调用易语言支持库里的命令这个看起来好像很深奥一样(本程序受到“SalHe”大佬的启发写出来的),其实不然
曾经我记得有人发过一个C#调用易库的,于是我干脆发个易调用的Demo吧!
首先取得易命令指针地址:
|
取指定函数地址_入口 | 整数型 | | |
支持库信息入口 | 整数型 | | | | 命令索引 | 整数型 | | | | 如果真 (支持库信息入口 > 0 )ret = Call (支持库信息入口, , ) ret = 取指定函数地址_指针 (ret, 命令索引 )返回 (ret)|
取指定函数地址_指针 | 整数型 | | |
支持库信息指针 | 整数型 | | | | 命令索引 | 整数型 | | | | 如果真 (支持库信息指针 > 0 )ret = 支持库信息指针 ret = 指针到整数 (ret + 4 (28 - 1 )) ret = 指针到整数 (ret + 4 (命令索引 - 1 )) 返回 (ret)变量名 | 类 型 | 静态 | 数组 | 备 注 | 句柄 | 整数型 | | | 类_库操作 | 类_库操作 | | | 返回值 | 数据结构 | | | p | 类_指针 | | | 结果 | 文本型 | | |
句柄 = 类_库操作. 取核心库模块句柄 ()句柄 = GetProcAddress (句柄, “GetNewInf”)句柄 = 类_库操作. 取指定函数地址_入口 (句柄, 66 )
取得了易支持库命令地址后,我们来分析下易库:
这是结构,返回值指针传入一个“数据结构”,参数数目不说了,然后传入参数指针(整合版本)
那么这样慢慢逆就可以了,但是返回的是指针而不是数据怎么办?别急,我们就需要用到下面的制作万能转换:
窗口程序集名 | 保 留 | 保 留 | 备 注 | 类_指针 | | | | 变量名 | 类 型 | 数组 | 备 注 | 集_原地址 | 整数型 | 0 | 集_目的地址 | 整数型 | 0 | 集_自动还原 | 逻辑型 | | 集_已还原 | 逻辑型 | |
集_自动还原 = 真 如果真 (集_自动还原 且 取反 (集_已还原 )) 还原 ()如果真 (取反 (是否为空 (值 )) )集_自动还原 = 值 返回 (集_自动还原)加入成员 (集_原地址, 指针到数据 (源数据指针, 目的变量地址 )) 加入成员 (集_目的地址, 目的变量地址 )集_已还原 = 假 计次循环首 (取数组成员数 (集_原地址 ), n1 )释放指针数据 (集_目的地址 [n1 ], 集_原地址 [n1 ])计次循环尾 ()集_已还原 = 真 置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })返回 (0 )|
指针到数据 | 整数型 | | |
源数据指针 | 整数型 | | | | 目的变量地址 | 整数型 | | | | 置入代码 ({ 139, 69, 12, 255, 48, 255, 117, 8, 143, 0, 88, 201, 194, 8, 0 })返回 (0 )置入代码 ({ 139, 69, 8, 255, 117, 12, 143, 0 })
呵呵仙大神曾经写过一个易版指针,这个呢,则是汇编版本的哦
好的,那么我们就大胆调用吧!
最后还是那句老话:源码回复下载!!
最后说一句:如果你觉得可以的话,请:
一下(点2下又不会扣分,而且还会加精币哦!!!加精币哦!!!),源码回复下载!!
执行命令.e
(25.55 KB, 下载次数: 181)
|