405794672 发表于 2020-6-5 11:25:47

OD改了个小je结果无法定位到数据

按教程初试牛刀。就这样。只是个小程序,
另外,OD加载的文件不能删除么?之前不是先用了个hello.exe吗?我设了个断点。消掉了,重新加载进来,断点居然还在。。
另外,图片中的序列号验证程序是我直接拖进去的,不是按F3加载的,是否与这个有关呢?

jackz007 发表于 2020-6-5 12:17:40

本帖最后由 jackz007 于 2020-6-5 12:19 编辑

       如果你只是修改了这条 je xxxxxxxx 的两个字节的指令是绝对不会出现任何错误的,之所以会出现这个错误,是因为你的修改可能伤害了程序中的重定位项(操作数是内存绝对地址)。
       OD 目录下有一个 UDD 目录,这个目录内有一个名为 "hello.udd" 的文件,里面记录了你对 "hello.exe" 的所有调试设置,每次加载、调试 "hello.exe" 的时候,OD 都会自动读取这个文件并设置调试环境,如果你不希望这样,可以删除这个文件。
       如果你在调试程序的时候, 曾经设置过系统 API 断点,那么,在 UDD 目录下就会有类似 "kernel32.udd"、"user32.udd" 等等这样的文件,尽管你一定是首次加载、调试一个程序,可是,你却会发现,程序会自行中断在某个 API 的入口,没错,这个 API 断点就是你在调试其它程序的时候遗留下来的,如果你不希望这样,同样可以把相关的 udd 文件统统删除掉。

405794672 发表于 2020-6-5 13:07:53

jackz007 发表于 2020-6-5 12:17
如果你只是修改了这条 je xxxxxxxx 的两个字节的指令是绝对不会出现任何错误的,之所以会出现这个错 ...

谢谢。我今天重新加开,首次加载这个文件,结果就正常了。可能OD不支持连续调试吧。所以每次调试后要关掉OD,才能调试第二个文件,这样就不会出现那个啥定位数据问题了。这个问题是我保存文件时出现的。
页: [1]
查看完整版本: OD改了个小je结果无法定位到数据