2012-08-15 81 views
0
10002579 . 6A 00   PUSH 0 
1000257B . 68 59020000 PUSH 259 
10002580 . 8B11   MOV EDX,DWORD PTR DS:[ECX] 
10002582 . 6A 00   PUSH 0 
10002584  6A 05   PUSH 5 
10002586  50    PUSH EAX 
10002587  FF52 18  CALL DWORD PTR DS:[EDX+18] 
1000258A  84C0   TEST AL,AL 
1000258C  75 2B   JNZ SHORT Pigeon.100025B9 
1000258E  8B4E 10  MOV ECX,DWORD PTR DS:[ESI+10] 
10002591 . 68 D5070000 PUSH 7D5 
10002596 . 68 0000FF00 PUSH 0FF0000 
1000259B . 68 90640110 PUSH Pigeon.10016490  ;ASCII "STR_PIGEON_SEND_ERR_NOEMONEY" 
100025A0 . 8B39   MOV EDI,DWORD PTR DS:[ECX] 
100025A2 . FF15 04300110 CALL DWORD PTR DS:[<&Common.CnStrGet>] ; Common.CnStrGet 
100025A8 . 8B9424 5C04000>MOV EDX,DWORD PTR SS:[ESP+45C] 
100025AF . 83C4 04  ADD ESP,4 
100025B2 . 50    PUSH EAX 
100025B3 . 52    PUSH EDX 
100025B4 . E9 30020000 JMP Pigeon.100027E9 
100025B9 > 8B46 10  MOV EAX,DWORD PTR DS:[ESI+10] 

我需要改变推5 10002584推C350,但我对OllyDbg的Ollydbg的未知的标识符错误

获得未知的标识错误,当我用这个0xC350下面的代码更改和dll文件不运行它正确。

如何做到这一点?

回答

2

push 0xc350显然需要多于2个字节(其长度为push 5)才能被编码。它需要5个字节。

您不能将这5个字节压缩到2个字节的空间中。如果你尝试,你会覆盖和破坏以下说明:

10002586  50    PUSH EAX 
10002587  FF52 18  CALL DWORD PTR DS:[EDX+18] 

您将需要jmp更换push 5(也可能是下面的指令),将有push 0xc350(以及由jmp改写指令的位置,如果有的话)和回来。

+0

你能帮我做那个紧急吗? – user1600687 2012-08-15 13:57:02

+0

我没有/知道你的代码。你必须自己做。 – 2012-08-15 14:00:44

+0

如果你需要,我可以将DLL文件发送给你,如果需要,我也可以支付... – user1600687 2012-08-15 14:01:50