如何易语言内存注入入

我一开始也是易语言入门的,因为模块多,所以编写小工具速度快,但是呢,成也萧何,败也萧何,光用模块会使你慢慢的失去思考能力,于是呢,很多人开始写自己的模块(无非就是网上找一些往里面贴),这样有一个好处,就是出了问题,比较容易定位那里的问题,你用别人的模块,出了问题很难找到哪里出了问题,然后就只能一味的更换模块了。

因为易语言的调用API和数据类型不便(需要先声明),我慢慢放弃了易语言,当然还有一个原因就是易语言写的程序,出bug后,不容易定位问题,现在我常用的开发环境是MFC。下面这个模块是我使用易语言时写补丁最常用的一个模块(当然很多也是抄的),一开始我觉得bug肯定会很多,放出去肯定又会坑很多人,后来我发现坑坑更健康,当你明白一个东西的优缺点之后,你才会更好的选择你所需要的。所以呢,现在模块开源了,希望对某些朋友有参考意义或者说使用价值吧。声明:大家使用过程中发现任何问题都不要来问我,请自己想办法解决。我现在已经完全放弃易语言了,改用VC++了。以下是全部接口:模块名称:sunflover.ec作者:by 这个效果较好,推荐用这个;找到OD相关句柄返回真, 此函数枚举窗口通过菜单名来 判定是否OD窗口。.子程序 AntiStrongOD, 逻辑型, 公开, 这个效果还行,检测带有驱动的 OD调试器    此函数专门对付 StrongOD 插件.参数 判断OD运行状态, 逻辑型, 可空, 字节集到十六进制文本.参数 字节集, 字节集.子程序 Bin2Hex1, 文本型, 公开, 文本型->文本型.参数 Bin, 文本型.子程序 BinXor, 字节集, 公开, 字节集异或.参数 需异或的字节集, 字节集, , 返回的字节集.参数 参与异或的字节集, 字节集.子程序 Dec2Hex, 文本型, 公开, 十到十六.参数 十进制转换数据, 长整数型.子程序 GetAPIAddress, 整数型, 公开, 失败返回0.参数 模块名, 文本型, , 文本型->文本型.参数 Hex, 文本型.子程序 Hex2Dec, 整数型, 公开, 十六到十.参数 十六进制转换数据, 文本型.子程序 InjectDll, 逻辑型, 公开, 向目标进程中注入一个指定 Dll 模块文件;注入成功返回 true, 注入失败则返回 (“”).参数 数据, 字节集, , 如 Hex2Bin (“”).子程序 inline_patch_Pro, 逻辑型, 公开, 失败返回假,成功返回真;适合patch尚未运行的加壳不加壳的可执行文件,需要补丁的数据较多时建议使用这个,在子程序中打补丁.参数 文件名, 文本型, 失败返回假,成功返回真;适合patch尚未运行的加壳或不加壳的可执行文件,解码时机判断是选用VirtualProtect;如果壳检测到了,自行换用inline_patch或inline_patch_Pro.参数 文件名, 文本型, , 文件全路径.参数 子程序指针, 子程序指针, , 如&子程序1.参数 地址, 整数型, 可空, 如Hex2Dec (“”),用来判断是否解码完成;如果没壳,就空着.子程序 inline_patch1, 逻辑型, 公开, patch尚未运行的,没加壳的程序,并运行它.参数 文件名, 文本型, , 文件全路径.参数 地址, 整数型, , 如Hex2Dec (“”).参数 数据, 字节集, , 如 Hex2Bin (“”).子程序 InlinePatch, 逻辑型, 公开, 失败返回假,成功返回真;适合patch尚未运行的加壳不加壳的可执行文件,需要补丁的数据较多时建议使用这个,在子程序中打补丁.参数 文件名, 文本型, , API中断次数, 整数型, 可空, 可空,有些时候需要计次,根据需要填写;一般留空即可,留空表示中断第一次,就开始补丁.参数 补丁子程序, 子程序指针, , 如&子程序1.参数 寄存器结构体, context_, 参考 可空, 可空,CONTEXT,返回寄存器结构体,方便写补丁函数;这个属于高级功能,看不懂的话就留空吧.参数 公开, 未提示 是否有重复的文件存在 自己注意一下.参数 窗口句柄, 整数型, 可空, 调用处窗口句柄.参数 窗口标题, 文本型, 可空, 对话框窗口标题.参数 过滤器, 文本型, 可空, 格式:“MP3文件(*.mp3)|*.mp3|媒体文件(*.mpg)|*.mpg”.参数 初始路径, 文本型, 可空, 可以被省略。如果本参数被省略,默认从“我的文档”开始。否则,请给出盘符,如“d:”.子程序 打开多文件对话框, 文本型, 公开, 如果多选文件,返回文件路径以“;”(半角分号)分隔。失败或取消返回空文本。.参数 窗口句柄, 整数型, 可空, 调用处窗口句柄.参数 窗口标题, 文本型, 可空, 对话框窗口标题.参数 过滤器, 文本型, 可空, 格式:“MP3文件(*.mp3)|*.mp3|媒体文件(*.mpg)|*.mpg”.参数 初始路径, 文本型, 可空, 可以被省略。如果本参数被省略,默认从“我的文档”开始。否则,请给出盘符,如“d:”.参数 窗口风格, 整数型, 可空, 可以被省略。如果本参数被省略,默认为 0 。位置值从 0 开始。从0-11之间,可以设置多种窗口风格。0.工具栏、只读选择框-未选中;1.工具栏、只读选择框-选中;2.工具栏;3.工具栏、只读选择框-未选中,帮助按钮;4.工具栏、只读选择框-选中,帮助按钮;5.工具栏,帮助按钮;6.普通风格、只读选择框-未选中;7.普通风格、只读选择框-选中;8.普通风格;9.普通风格、只读选择框-未选中,帮助按钮;10.普通风格、只读选择框-选中,帮助按钮;11.普通风格、帮助按钮。.子程序 读内存字节集, 字节集, 公开, 从内存中读取字节集数据(返回字节集,失败返回0字节长度的空字节集).参数 进程ID, 整数型, , 进程ID.参数 地址, 整数型, , 内存地址.参数 长度, 整数型, , 欲读取内存数据的长度 .子程序 复制文件夹, 逻辑型, 公开, 可复制文件,也可复制目录。成功返回真,失败返回假。.参数 被复制的文件或目录, 文本型.参数 复制到的位置, 文本型.子程序 恢复进程, 逻辑型, 公开.参数 PID, 整数型.子程序 结束进程, 逻辑型, 公开.参数 进程ID, 整数型.子程序 进程取ID, 整数型, 公开, 取指定进程的进程ID(返回第一个进程ID,失败返回空信息).参数 进程名, 文本型, , 程序进程名(不区分大小写!).子程序 进程是否存在1, 逻辑型, 公开.参数 进程ID, 整数型.子程序 进程是否存在2, 逻辑型, 公开.参数 进程名, 文本型.子程序 蓝屏, , 公开, 惩罚破解者函数 。 在确定当前程序被调试后 可使用此函数让系统蓝屏。   慎重使用!.子程序 内存补丁, 逻辑型, 公开, 根据进程名补丁内存,patch已经运行的可执行文件.参数 进程名, 文本型, , '完整的文件名,注意大小写.参数 地址, 文本型, , 需patch地址,如“”.参数 代码, 文本型, , 被替换的代码,如“”.子程序 内存补丁1, 逻辑型, 公开, 根据进程ID补丁内存,patch已经运行的可执行文件.参数 进程ID, 整数型, , 要补丁的进程ID.参数 地址, 文本型, , 需patch地址,如“”.参数 代码, 文本型, , 被替换的代码,如“”.子程序 内存搜索, 整数型, 公开, 某些情况,需提升权限(返回结果数目,失败返回0),返回搜索到的数目.参数 进程ID, 整数型, , 进程ID.参数 搜索内容, 字节集, , 欲搜索的内容  其他类型-需自行转换为字节集类型.参数 结果数组, 整数型, 参考 数组, 用来保存搜索的结果.子程序 取汇编指令长度, 整数型, 公开, 返回指定进程指定地址处的首条汇编指令的长度。注:计算方法使用的是LDX32.参数 进程ID, 整数型, , 进程ID.参数 地址, 整数型, , 指令地址,如Hex2Dec("").子程序 取寄存器值, 文本型, 公开, 适用于明码读码,运行到地址处读真码;如 根据文件路径获取文件名.参数 路径, 文本型, , 文件完整路径.子程序 取线程起始地址, 整数型, 公开, 失败返回0.参数 参数_dwThreadId, 整数型.子程序 去除空格, 文本型, 公开.参数 文本, 文本型.子程序 设置颜色对话框, 逻辑型, 公开, 例如:如果真 (设置颜色对话框 (取窗口句柄 (), j));编辑框1.文本颜色 = 到整数 (j)。.参数 窗口句柄, 整数型.参数 返回_颜色, 文本型, , 返回的颜色~~需要传回整数.子程序 申请内存Pro, 整数型, 公开, 成功返回申请的首地址,失败返回0;申请的内存可读可写可执行.参数 进程ID, 整数型, ,  .参数 申请内存大小, 整数型.子程序 释放内存Pro, 逻辑型, 公开.参数 进程ID, 整数型, ,  .参数 内存地址, 结束地址, 文本型, 可空, 默认为“”.子程序 提升进程权限, 逻辑型, 公开.参数 目标进程, 整数型, 可空.参数 权限类别, 文本型, 可空, 往内存中写入字节集数据(成功返回真,失败返回假);注:内部有VirtualProtectEx处理.参数 进程ID, 整数型, , 进程ID.参数 地址, 整数型, , 内存地址.参数 数据, 字节集, , 写入数据 如果为其它数据类型,可以用 到字节集() 将数据转换为字节集.参数 写入长度, 整数型, 可空, 默认为全部数据,(参考: 1字节型 2短整数型 4长整数型,小数型,指针 8长整数型,双精度小数型,日期时间型).子程序 移动文件夹, 逻辑型, 公开, 可移动文件,也可移动目录。成功返回真,失败返回假。.参数 被移动的文件或目录, 文本型.参数 移动到的位置, 文本型.子程序 隐藏进程, 逻辑型, 公开, hide.dll,会被误报,大家看着处理.参数 进程ID, 整数型.子程序 暂停进程, 逻辑型, 公开.参数 PID, 整数型.子程序 终止进程Pro, , 公开, 终止进程,终止所有指定进程.参数 进程名, 文本型, , 程序进程名(不区分大小写!).子程序 终止线程, 逻辑型, 公开, 成功返回真 失败返回假.参数 参数_线程ID, 整数型.数据类型 context_, 公开, 公开    .成员 与IATHOOK参数完全相同.参数 进程ID, 整数型, 可空, 为空表示本进程.参数 模块名, 文本型, , 需加后缀,如“user32.dll”.参数 函数名, 文本型, , 注意大小写,如“MessageBoxA”.参数 地址, 整数型, , 公开, 获取PE文件的附加数据.参数 全文件路径, 文本型, , 要处理的文件全路径.程序集 超级解压类, , 公开, 调用7z解压文件,支持7z,zip,rar等压缩文件的带密码解压.子程序 超级解压, 逻辑型, 公开, 解压压缩文件,支持rar,zip,7z等等压缩文件的解压,支持带密码解压.参数 待解压文件, 文本型, , 欲解压的文件的全路径.参数 解压到的目录, 文本型, , 欲解压到的路径.参数 解压密码, 文本型, 可空, 解压所用密码,没有密码就不填.程序集 汇编类, , 公开, 占用3个字节,char值在0-127之间,返回汇编指令对应的字节集.参数 char, 字节型, , add esp,8,参数为8,注意进制;16进制,请用Hex2Dec(Hex)转换.子程序 call, 字节集, 公开, 占用5个字节,call转换,返回汇编指令对应的字节集,此处为十进制,想用16进制,请自行转换;示例:call call_eax, 字节集, 公开, 占用2个字节,返回汇编指令对应的字节集.子程序 call_FF15, 字节集, 公开, 占用6个字节,call转换,返回汇编指令对应的字节集,此处为十进制,想用16进制,请自行转换;示例:call (Hex2Dec (“402000”)).参数 call到的地址, 整数型, , 占用5个字节,返回汇编指令对应的字节集.参数 Num, 整数型, , 自己注意进制,mov eax,401000,参数为Hex2Dec(“401000”).子程序 nop, 字节集, 公开, 占用个字节,返回汇编指令对应的字节集.子程序 popad, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 popfd, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 push_char, 字节集, 公开, 占用2个字节,char值在0-127之间,返回汇编指令对应的字节集.参数 char, 字节型, , push 8,参数为8,注意进制;16进制,请用Hex2Dec(Hex)转换.子程序 push_eax, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 push_ebp, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 push_ebx, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 push_ecx, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 push_edi, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 push_edx, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 push_esi, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 push_esp, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 push_Num, 字节集, 公开, 占用5个字节,返回汇编指令对应的字节集.参数 Num, 整数型, , push 401000,参数为Hex2Dec(401000),注意进制;16进制,请用Hex2Dec(Hex)转换.子程序 pushad, 字节集, 公开, 占用1个字节,将通用寄存器的内容压入堆栈;返回汇编指令对应的字节集.子程序 pushfd, 字节集, 公开, 占用1个字节,本指令可以把标志寄存器的内容保存到堆栈中去;返回汇编指令对应的字节集.子程序 retn, 字节集, 公开, 占用1个字节,返回汇编指令对应的字节集.子程序 retn_n, 字节集, 公开, 占用3个字节,返回汇编指令对应的字节集.参数 n, 短整数型, , 占用2个字节,返回汇编指令对应的字节集.子程序 xor_edi_edi, 字节集, 公开, 占用2个字节,返回汇编指令对应的字节集.子程序 xor_edx_edx, 字节集, 公开, 占用2个字节,返回汇编指令对应的字节集.子程序 xor_esi_esi, 字节集, 公开, 占用2个字节,返回汇编指令对应的字节集.程序集 内存DLL注入类, , 公开, 可能还有点问题.子程序 取DLL函数地址, 整数型, 公开, 返回已经注入到指定进程内的DLL的函数地址。失败返回0。.参数 DLL函数名, 文本型, , 区分大小写。.子程序 是否已注入, 逻辑型, 公开, 已注入返回真,未注入返回假。.子程序 卸载DLL, 逻辑型, 公开, 卸载已经注入的内存中的DLL,成功返回真,失败返回假.(最好不要卸载,卸载的话被注入的进程很容易崩溃).子程序 执行DLL函数, 整数型, 公开, 执行已经注入到指定进程内的DLL的函数,成功返回所执行的函数的地址,失败返回0。.参数 DLL函数名, 文本型, , 区分大小写。.参数 等待函数执行完毕, 逻辑型, 可空, 默认为假,为真则函数执行完毕后本函数才返回。.参数 返回值, 整数型, 参考 可空, 如果上一个参数为真,则可提供一个变量保存被执行的DLL函数的返回值。.参数 线程句柄, 整数型, 参考 可空, 可提供变量保存函数执行线程的句柄,不需要请留空.接收了句柄记得不用时要关闭..参数 参数1, 整数型, 可空, 可提供给被执行函数最多10个参数(理论上支持无限个,自己看着改吧)不需要的请留空。.参数 参数2, 整数型, 可空, 非整数型参数需传递变量的内存数据指针,该指针必须是在目标进程内的。.参数 参数3, 整数型, 可空, 提供的参数请与所执行的函数的参数个数一致,否则被注入的进程绝对会崩溃!.参数 参数4, 整数型, 可空.参数 参数5, 整数型, 可空.参数 参数6, 整数型, 可空.参数 参数7, 整数型, 可空.参数 参数8, 整数型, 可空.参数 参数9, 整数型, 可空.参数 参数10, 整数型, 可空.子程序 注入DLL, 整数型, 公开, 成功返回DLL的模块句柄,失败或已注入返回0。.参数 进程句柄, 整数型, , 句柄必须拥有对被注入进程的完全操作权限。注入后如果没有其他用处可以关闭该句柄。.参数 DLL数据, 字节集.程序集 取机器码类, , 公开, 获取硬件信息,硬盘等等.子程序 取3段机器码, 文本型, 公开, 获取3段32位机器码,如--.参数 bios, 逻辑型, 可空, 填 假 表示此段全为0,可空,默认为真.参数 HardDisk, 逻辑型, 可空, 填 假 表示此段全为0,可空,默认为真.参数 MAC, 逻辑型, 可空, 填 假 表示此段全为0,可空,默认为真.子程序 取4段机器码, 文本型, 公开, 获取4段23位机器码,如-.参数 bios, 逻辑型, 可空, 填 假 表示此段全为0,可空,默认为真.参数 HardDisk, 逻辑型, 可空, 填 假 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的  非零表示成功,零表示失败。会设置GetLastError    .参数 对象句柄, 指定结果窗口与源窗口的关系,它们建立在下述常数基础上:;GW_CHILD:寻找源窗口的第一个子窗口;GW_HWNDFIRST:为一个源子窗口寻找第一个兄弟(同级)窗口,或寻找第一个顶级窗口;GW_HWNDLAST:为一个源子窗口寻找最后一个兄弟(同级)窗口,或寻找最后一个顶级窗口;GW_HWNDNEXT:为源窗口寻找下一个兄弟窗口;GW_HWNDPREV:为源窗口寻找前一个兄弟窗口;GW_OWNER:寻找窗口的所有者;.DLL命令

编译好的模块(V5.11编译)以及源代码下载:

}

版权声明:本博客里的文章可以随意转载,但转载必须有本博客链接 /hzw320/article/details/

<1>易语言新手从零会内存辅,助教程

说明:从一个什么都不会的新手,学习认识辅,助的原理和开发制作方法过程所需技术知识

<2>分析游戏加密基址数据教程

说明:学习分析被加密的基址信息

<3>从零学习编写易语言模块教程

说明:学习易语言汇编模块是怎么编写出来的,给自己编写一个汇编模块用

<4>易语言后台按键-装备交易功能编写

说明:学习使用易语言DM编写后台按键辅,助,示范游戏里买卖装备交易编写思路

<5>易语言鼠标键盘同步功能-1人操作多个角色练级打怪教程

说明:学习工作室代练技术,编写代码1个人可以同时操作多个账号练级的辅,助功能

<6>易语言网页游戏/网络游戏封包教程

说明:示范编写网页游戏/网络游戏封包的教程,你值得参考

}

我要回帖

更多关于 内存注入 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信