共计 888 个字符,预计需要花费 3 分钟才能阅读完成。
32dbg 可以在重新载入程序后,还能断在 DLL 的 0x1168 偏移处,但是 OD 就死活断不下来。
现在我要让 OD 断下来,之前有大佬帮写过一个易语言源码的,当时并没有具体细看,而且不懂易语言。
今天试着把易语言版本的改成 C ++ 版本的,结果不成功,肯定是哪里没有写对。也不知道哪里有问题,
而且有一个地方是根本就看不明白。
. 版本 2
mem. 写整数 (g_Pid, 进制_十六到十 (“4D8D70”), addr, 2)
mem. 写整数 (g_Pid, 进制_十六到十 (“4D8D78”), 1, 1) ‘ 类型
mem. 写整数 (g_Pid, 进制_十六到十 (“4D8D74”), 1, 1)
这一段根本就不明白到底是怎么回事,4D8D70,4D8D78,4D8D74 从哪里来的?
如这一句,mem. 写整数 (g_Pid, 进制_十六到十 (“4D8D70”), addr, 2)
最后一个参数是 2,看帮助 2 代表是长整型,长整型是 8 个字节啊。是不是不太合理?
1 代表是整型,还能说得过去。
而且还有一个,就是这个源码在 win7,win10 上测试管用,但是在 xp 上是断不下来的,如何修复一下,
使其在 xp,win7,win10 上都管用?
里面有录像,可以看到在 win7 x64 虚拟机里成功了,在 win10 上也测试过了,也管用。
要说明的是:
必须使用吾爱 OD,打包里已经提供。(针对本代码的话,估计必须要使用吾爱 OD 吧,如果原理搞懂了,改改代码改别的 OD 应该也一样)
(之前易语言提供者回复如下:)
那个 PID 就是吾爱 OD 的进程 pid
测试的话,需要满足下面几个条件。
1. 必须要吾爱的 OD 且这个版本建议是爱盘里面的 OD
2. 如果是 win7,这个 strongOD 插件我记得会把进程隐藏了,记得先取消掉这个插件设置的内容,避免测试的时候可能会导致不必要的麻烦。
(不过经我测试,win7,win10 都不用设置。XP 上要把 strongod 去掉一下)
注意的是:
你测试过程中,请注意查看 OD 里面的硬断是否有正常写入,如果没有写入,可能是以下原因导致的:
1.OD 版本不对
2. 进程 PID 不对