下面这个模块是我使用易语言时写补丁最常用的一个模块(当然很多也是抄的),一开始我觉得bug肯定会很多,放出去肯定又会坑很多人,后来我发现坑坑更健康,当你明白一个东西的优缺点之后,你才会更好的选择你所需要的。
所以呢,现在模块开源了,希望对某些朋友有参考意义或者说使用价值吧。
声明:大家使用过程中发现任何问题都不要来问我,请自己想办法解决。
我现在已经完全放弃易语言了,改用VC++了。
以下是全部接口:模块名称:sunflover.ec作者:bysunflover版本: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,逻辑型,公开,codecave,与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