我用VB Decompiler反编译了一个程序,它说我的目标函数(我想看代码的那个函数)位于地址0x00617B70。所以一旦我拆卸了应用程序,我去了那个内存地址,我看到:函数内存地址(ASM)
CALL 0861BBA1
ADD BYTE PTR [EAX], DH
IN AL, 0
XOR AL, 0
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
SBB BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
SBB AL, 0
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD AL, 0
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
OR AL, FF
ADD EAX, DWORD PTR [EAX]
JE 00617B99
ADD DWORD PTR [EAX], EAX
INSB
INC DWORD PTR [EBX]
ADD BYTE PTR [EAX-1], DH
ADD EAX, DWORD PTR [EAX]
AND BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD BYTE PTR [EAX], AL
ADD EAX, 0
ADD BYTE PTR [EAX-1], AL
ADD DWORD PTR [EAX], EAX
INC ESP
INC DWORD PTR [EBX]
ADD BYTE PTR [EAX-1], BL
ADD AL, BYTE PTR [EAX]
XOR BH, BH
ADD AL, BYTE PTR [EAX]
ADC BH, BH
ADD AL, BYTE PTR [EAX]
INSB
OR AL, 0
OR BYTE PTR [EAX], CL
ADD BYTE PTR [ESI], AL
INC EAX
ADD BYTE PTR [EAX+71], AL
PUSHAD
--
SHL BYTE PTR [EAX-1], 1
PUSH ES
ADD AH, BH
ADC AL, 8
OR BYTE PTR [EAX], AL
MOV DWORD PTR [EAX+6E70AD00], EAX
--
SHL BYTE PTR [EAX-1], 1
POP ES
ADD AH, BH
ADC AL, 8
OR BYTE PTR [EAX], AL
MOV DWORD PTR [EDX+6C70AD00], EAX
JMP FAR FWORD PTR [EBX+6E]
这看起来不像一个函数,对不对?我不知道ASM什么,但我希望是这样的:
PUSH EBP
MOV EBP, ESP
SUB ESP, 8
...more stuff here...
RETN
特地RETN
指令说,这是有关功能,对不对?
任何想法我做错了什么?
您可以显示可执行文件**反汇编**的相关部分? **拆卸存储区**几乎可以肯定是数据,因此不打算执行。还有反编译的代码。 – nrz
'add [eax],al'为0.你正在分解一个错误的东西。 – Griwes
对不起,我还不了解ASM。哪些是反汇编的相关部分?该代码是MHS6.1自动选择的代码。右键单击第一个ASM行>选择功能。 – cdonts