为什么OD 无法加载程序

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

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

VC6.0MFC写的一个程序,能否正常在别的机器上运行,注意排查:

1)一般只适用编译时指定的系统平台,如win98、XP、2000,或WindowsCE等,不能运行差别大平台。如98的在win7平台下,在linux下就无法正常运行。

2)运行时,一般还需要配套的动态链接库(指定版族伍本的DLL),随着系统的升级,DLL变化很晌枝大,并没有做到新的DLL完全兼容老的DLL。因此常因为DLL不匹配,兼容,导致许多以前开发的程序无法在新的平台上运行

3)在编译时,选用静态模式打包相关的链接库,运行兼容性相对好一些,但也受平台16、32、64位内核运行的限制,最兆谨或好在对应内核模式下运行

4)字符、消息等是否采用Unicode,也会影响界面的显示等运行效果

等等

你可以把所做的修改另存一个exe文件。

修改过之后在反汇编区点鼠州谨标右键--复制到可执行文件--所有修改--全部慧迹宏复制--然后直接关闭新d出来的窗口,会提示保存文件的。如果只是尝试前册性的修改最好另存一个而不要直接覆盖原文件。

然后用OD载入这个新的exe继续调试。


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

原文地址: http://outofmemory.cn/yw/12567668.html

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

发表评论

登录后才能评论

评论列表(0条)

保存