能力值:
( LV2,RANK:10 )
|
-
-
2 楼
请大家解释一下呢。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
下面这张图显示的是我刚用 OD 打开 thunder.exe 文件时的情形:
004BAB6A >/$ 55 PUSH EBP
004BAB6B |. 8BEC MOV EBP,ESP
004BAB6D |. 6A FF PUSH -1
004BAB6F |. 68 08E34D00 PUSH Thunder5.004DE308
004BAB74 |. 68 B8AD4B00 PUSH <JMP.&MSVCRT._except_handler3> ; SE handler installation
如果我再 F9 直接运行时,就 terminate 了 :(
7C92E512 0F34 SYSENTER
7C92E514 > C3 RETN
7C92E515 8DA424 00000000 LEA ESP,DWORD PTR SS:[ESP]
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
不知道是不是里面加了反调试的代码,或者加壳了呢?请指点一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
不知道是不是这种问题太简单的原因,导致无人问津呢:
下面显示的是我刚用 OD 打开 thunder.exe 文件时的入口点:
004BAB6A >/$ 55 PUSH EBP
004BAB6B |. 8BEC MOV EBP,ESP
004BAB6D |. 6A FF PUSH -1
004BAB6F |. 68 08E34D00 PUSH Thunder5.004DE308
004BAB74 |. 68 B8AD4B00 PUSH <JMP.&MSVCRT._except_handler3> ; SE handler installation
在每次 F9 运行的时候就直接跳到 ntdll 中的:
7C92E512 0F34 SYSENTER
7C92E514 > C3 RETN ; 直接跳到这边结束返回了
7C92E515 8DA424 00000000 LEA ESP,DWORD PTR SS:[ESP]
看了一下调用栈,发现在这里 exit 的:
004BAC92 |. FF15 08D24C00 CALL DWORD PTR DS:[<&KERNEL32.GetModuleHandleA>] ; \GetModuleHandleA
004BAC98 |. 50 PUSH EAX
004BAC99 |. E8 B2010000 CALL Thunder5.004BAE50
004BAC9E |. 8945 98 MOV DWORD PTR SS:[EBP-68],EAX
004BACA1 |. 50 PUSH EAX ; /status
004BACA2 |. FF15 28DE4C00 CALL DWORD PTR DS:[<&MSVCRT.exit>] ; \就在这里 exit 的
004BACA8 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
不知道是怎么回事呢?
然后又跟了一下:
004BAC99 |. E8 B2010000 CALL Thunder5.004BAE50
004BAE50 /$ FF7424 10 PUSH DWORD PTR SS:[ESP+10]
004BAE54 |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
004BAE58 |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
004BAE5C |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
004BAE60 |. E8 43000000 CALL <JMP.&MFC42.#1576> ; 这里进入 MFC42 的领空了。
004BAE65 \. C2 1000 RET 10
请大侠指点一下吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
不好意思,没有搜一下以前帖子,原来我一直调的是 program 下的 thunder5.exe,而其实应该是从安装目录下的那个启动器 thunder5.exe 开始调的:
004019B2 |. 68 0C524000 PUSH Thunder.0040520C ; |DefDir = ""
004019B7 |. FF75 F0 PUSH DWORD PTR SS:[EBP-10] ; |Parameters
004019BA |. FF75 E8 PUSH DWORD PTR SS:[EBP-18] ; |FileName
004019BD |. 68 58504000 PUSH Thunder.00405058 ; |Operation = "open"
004019C2 |. FF15 F4314000 CALL DWORD PTR DS:[<&USER32.GetDesktopWindow>] ; |[GetDesktopWindow
004019C8 |. 50 PUSH EAX ; |hWnd
004019C9 |. FF15 C8314000 CALL DWORD PTR DS:[<&SHELL32.ShellExecuteA>] ; \ShellExecuteA,就在这里启动了 program/thunder5.exe 了
004019CF |. 8D4D EC LEA ECX,DWORD PTR SS:[EBP-14]
那下面 program/thunder5.exe 已经被以另外一个进程运行了,该怎么来调试它呢,我用了 attach,但是一 attach 就跑到这里了:
7C92120E > CC INT3
7C92120F C3 RET ; 直接就跳到ntdll的领空这里,迅雷也用不了
7C921210 8BFF MOV EDI,EDI
----------------------------
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
我以前也问过被CreateProcessA创建出来的进程怎么调试的问题,不过也是没人答……
感觉这个版块真正的高手根本不会来看。或者说看了也没兴趣答……
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
这个问题,后来昨天搜索了一下,还是找到了一个帖子里提到调试迅雷的问题。
我调试的那个 thunder5.exe(安装目录下)其实只是一个启动器。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
原来是这样,看来有的需要调试安装文件
|
|
|