下面这个模块是我使用易语言时写补丁最常用的一个模块(当然很多也是抄的),一开始我觉得bug肯定会很多,放出去肯定又会坑很多人,后来我发现坑坑更健康,当你明白一个东西的优缺点之后,你才会更好的选择你所需要的。所以呢,现在模块开源了,希望对某些朋友有参考意义或者说使用价值吧。
声明:大家使用过程中发现任何问题都不要来问我,请自己想办法解决。我现在已经完全放弃易语言了,改用VC++了。
以下是全部接口:
模块名称:sunflover.ec
作者:by sunflover
版本:2015.2
自己收集的一些常用函数,方便写补丁。
@备注:
自己收集的一些常用函数
------------------------------
.版本 2
.子程序 Ansi2Unicode, 字节集, 公开, 将Ansi码转换为Unicode码 (返回转换后的字节集)
.参数 Ansi, 文本型, , 欲转换的Ansi文本
.子程序 AntiDebug, 逻辑型, 公开, 这个没啥用,效果差;可放在程序运行的第一个函数 被调试返回真
.子程序 AntiODMenu, 逻辑型, 公开, 这个效果较好,推荐用这个;找到OD相关句柄返回真, 此函数枚举窗口通过菜单名来 判定是否OD窗口。
.子程序 AntiStrongOD, 逻辑型, 公开, 这个效果还行,检测带有驱动的 OD调试器 此函数专门对付 StrongOD 插件
.参数 判断OD运行状态, 逻辑型, 可空, 此参数作用: 发现OD驱动时 —是否检测OD运行状态作为返回值基础 ,默认判断运行状态
.子程序 Bin2Dec, 整数型, 公开, 字节集到整数
.参数 Bin, 字节集
.子程序 Bin2Hex, 文本型, 公开, 字节集到十六进制文本
.参数 字节集, 字节集
.子程序 Bin2Hex1, 文本型, 公开, 文本型->文本型
.参数 Bin, 文本型
.子程序 BinXor, 字节集, 公开, 字节集异或
.参数 需异或的字节集, 字节集, , 返回的字节集
.参数 参与异或的字节集, 字节集
.子程序 Dec2Hex, 文本型, 公开, 十到十六
.参数 十进制转换数据, 长整数型
.子程序 GetAPIAddress, 整数型, 公开, 失败返回0
.参数 模块名, 文本型, , 如"user32.dll","kernel32.dll"
.参数 API, 文本型, , 如“CreateWindowExA”
.子程序 Hex2Bin, 字节集, 公开, 十六进制文本到字节集
.参数 原文, 文本型
.子程序 Hex2Bin1, 文本型, 公开, 文本型->文本型
.参数 Hex, 文本型
.子程序 Hex2Dec, 整数型, 公开, 十六到十
.参数 十六进制转换数据, 文本型
.子程序 InjectDll, 逻辑型, 公开, 向目标进程中注入一个指定 Dll 模块文件;注入成功返回 true, 注入失败则返回 false,CreateRemoteThread法
.参数 进程ID, 整数型, , 进程PID
.参数 DLL文件名, 文本型, , 欲注入的DLL名称
.子程序 InjectDLL1, 逻辑型, 公开, SuspendThread,shellcode,SetEip
.参数 PID, 整数型
.参数 DLL路径, 文本型
.子程序 InjectDLL2, 逻辑型, 公开, code cave,与InjectDLL1同
.参数 进程ID, 整数型
.参数 DLL文件名, 文本型
.子程序 inline_patch, 逻辑型, 公开, 失败返回假,成功返回真;适合patch尚未运行的加壳或不加壳的可执行文件
.参数 文件名, 文本型, , 文件全路径
.参数 模块名, 文本型, , 如"user32.dll"
.参数 API, 文本型, , 如“CreateWindowExA”
.参数 地址, 整数型, , 如Hex2Dec (“00401000”)
.参数 数据, 字节集, , 如 Hex2Bin (“90909090”)
.子程序 inline_patch_Pro, 逻辑型, 公开, 失败返回假,成功返回真;适合patch尚未运行的加壳不加壳的可执行文件,需要补丁的数据较多时建议使用这个,在子程序中打补丁
.参数 文件名, 文本型, , 文件全路径
.参数 模块名, 文本型, , 如"user32.dll"
.参数 API, 文本型, , 如“CreateWindowExA”
.参数 子程序指针, 子程序指针, , 如&子程序1
.子程序 inline_patch_Pro1, 逻辑型, 公开, 失败返回假,成功返回真
1