能力值:
( LV9,RANK:450 )
|
-
-
2 楼
把程序入口改为 INT 3 .然后把OD作为时时调试器.运行程序.OD挂上.
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
非常非常感谢楼上的回答!很及时,很给力!
|
能力值:
( LV5,RANK:60 )
|
-
-
4 楼
吧入口点该成这个后 软件出现一个内存错误,请问怎么解决
004059B8 >/$ 55 push ebp
004059B9 |. 8BEC mov ebp, esp
004059BB |. 6A FF push -1
004059BD |. 68 B8664000 push 004066B8
004059C2 |. 68 1C5B4000 push <jmp.&msvcrt._except_handler3> ; SE 处理程序安装
004059C7 |. 64:A1 0000000>mov eax, dword ptr fs:[0]
004059CD |. 50 push eax
004059CE |. 64:8925 00000>mov dword ptr fs:[0], esp
004059D5 |. 83EC 68 sub esp, 68
004059D8 |. 53 push ebx
004059D9 |. 56 push esi
这是一个exe的入口函数
改成int 3后
004059B8 >/$ 55 push ebp
004059B9 |. 8BEC mov ebp, esp
需要占用2 字节。
软件出现内存错误了!?
请问你在哪改的?
|
能力值:
( LV5,RANK:60 )
|
-
-
5 楼
改成int3也出错
|
能力值:
( LV9,RANK:450 )
|
-
-
6 楼
你先改成 INT 3 .运行就出错.这样OD就附加上来(OD 必须设置为时时调试器才行).进入OD后把那个INT 3改回原来的代码再继续你的工作.
改INT 3的目的就是为了让OD附加他嘛.
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
RegKiller 说的够详细了吧,就是把push ebp改成int3 , 如反复调试就把改动保存到文件里,然后设置od为实时调试器。运行后程序出错就自动跑到int3处,这时右键汇编改回push ebp然后按f8等继续调试就是了!
多亏RegKiller 的帮助,我终于搞定了一个内存访问错误的问题。
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
附加也行的啊,主程序退出后,在附加进程选项中看到了另一个同名的,不过是由原来的xx.exe变成了xx.dat,我附加了xx.data,就行了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
|
|
|