为什么OD 无法加载程序

为什么OD 无法加载程序,第1张

第一:OD载入后会停留在程序入口,刚开始就是暂停的.第二:如果悔灶你按f9后OD会开始执行你的程序,这时候除非碰到断点是不会停止的,如果你是按了f9后停留在ntdll说明程序此时遇到中段或者进入了更高级别的段,OD是调试r3级别程序的利器但是无法对r0级别的代码进行调试.第三:许多程序都会用一个小小的手段来迷惑调试者,那就是seh结构化异常处理来清扮进行程序的跳转或者判断程序是否给调试.此情况比较多,但是OD会有提示.第四:而不是程序的领空这句话说的我很蛋疼,你并没有告诉我你的程序执行情况,是否断点,是否异常,或者OD是否提示IO指令等等.所以请你碧正扮把od的提示弄清楚后在发问,详细的代码段,执行环境,断点数量.和出现问题.

一般的OD是指OllyDBG

是一款编辑工具 一般用在反汇编 和破解皮念之类的地方

下个OllyDBG就可以了

要禅握唤熟悉的 *** 作 可以参贺凯考一些教程

v5程序多开器原理是:利用互斥体。v5程序多开器通过互斥对象、信号量、事件等绝纳仿线程同步对象来确定程序是否已经运行。最常用的函数如:CreateMutexA。

v5程序多开器创建一个互斥体,CreateMutex函数,第一个参数可以设置为NULL,第二个参数必须设置为false,第三个参数表示互斥体的名称,这个名称最好有一些特殊标识以防止与其他应用程序冲突,比茄轮如程序名+时间。

使用GetLastError()函数判断错误信息是否为ERROR_ALREADY_EXISTS如果是,则表示程序已经启动。

多开的方法有二种,一为发现互斥体,然后关闭互斥体即可实现多开。二为APIHOOK,接收到错误信息时,加重置命令(置错误码=0)即可。

共享节法突破多开的方法是:

思路是共享节中的某个数据用来判断是否运行过实例,我们可以捕捉访问该段的代码。

OD载入ALT+M显示内存,这里可以看到许多段,选中Shared段右键在访问上设置中断,对整个内存块设置该类型断点,这个断点是一次性断点,当所在段被读取或执行时就中断,中断发生后,断点将被删除。F9运行程序来到下面。

004F0E5C 833D 00407000 0>CMP DWORD PTR DS:[704000],0 004F0E63 75 0E JNZ SHORT 共享节单.004F0E73。

转到004F0E73这个地址我们看到有ExitProcess,可以断定这两句代码就是拿出共享段中得某个数据与0比较来判断是否有实例运行,我们将其JNZ NOP掉,让其永远不会跳转,保并纤存修改,成功多开。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12450449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存