Assembly Ollydbg未知标识符错误 10002579。6A 00推送0 1000257B。68 59020000推259 10002580 . 8B11 MOV EDX,DWORD PTR DS:[ECX] 10002582 . 6A 00推送0 10002584 6A 05推送5 10002586 50推式EAX 10002587 FF52 18呼叫DWORD PTR DS:[EDX+18] 1000258A 84C0测试铝,铝 1000258C 75 2B JNZ短鸽。100025B9 1000258E 8B4E 10 MOV ECX,德沃德PTR DS:[ESI+10] 10002591 . 68 D5070000推送7D5 10002596 . 68 0000FF00推送0FF0000 1000259B。6890640110推鸽10016490;ASCII“STR_鸽子发送错误钱” 100025A0。8B39 MOV EDI,DWORD PTR DS:[ECX] 100025A2。FF15 04300110呼叫DWORD PTR DS:[];Common.cnsttarget 100025A8。8B9424 5C04000>MOV EDX,德沃德PTR SS:[ESP+45C] 100025AF。83C4 04添加ESP,4 100025B2。50推EAX 100025B3。52推式EDX 100025B4。E9 30020000 JMP鸽子。100027E9 100025B9>8B46 10 MOV EAX,DWORD PTR DS:[ESI+10]

Assembly Ollydbg未知标识符错误 10002579。6A 00推送0 1000257B。68 59020000推259 10002580 . 8B11 MOV EDX,DWORD PTR DS:[ECX] 10002582 . 6A 00推送0 10002584 6A 05推送5 10002586 50推式EAX 10002587 FF52 18呼叫DWORD PTR DS:[EDX+18] 1000258A 84C0测试铝,铝 1000258C 75 2B JNZ短鸽。100025B9 1000258E 8B4E 10 MOV ECX,德沃德PTR DS:[ESI+10] 10002591 . 68 D5070000推送7D5 10002596 . 68 0000FF00推送0FF0000 1000259B。6890640110推鸽10016490;ASCII“STR_鸽子发送错误钱” 100025A0。8B39 MOV EDI,DWORD PTR DS:[ECX] 100025A2。FF15 04300110呼叫DWORD PTR DS:[];Common.cnsttarget 100025A8。8B9424 5C04000>MOV EDX,德沃德PTR SS:[ESP+45C] 100025AF。83C4 04添加ESP,4 100025B2。50推EAX 100025B3。52推式EDX 100025B4。E9 30020000 JMP鸽子。100027E9 100025B9>8B46 10 MOV EAX,DWORD PTR DS:[ESI+10],assembly,x86,Assembly,X86,我需要将10002584上的push 5更改为push c350,但我在ollydbg上遇到未知标识符错误 当我使用0xC350时,下面的代码会发生变化,dll文件无法正常运行 如何做到这一点?push 0xc350显然需要超过2个字节(即push 5的长度)才能进行编码。它需要5个字节 您无法将这5个字节压缩到2字节空间中。如果尝试,将覆盖并损坏以下说明: 10002579 . 6A 00 PUSH 0 1000257B . 68 59020000 PUSH 2

我需要将10002584上的push 5更改为push c350,但我在ollydbg上遇到未知标识符错误

当我使用0xC350时,下面的代码会发生变化,dll文件无法正常运行


如何做到这一点?

push 0xc350
显然需要超过2个字节(即
push 5
的长度)才能进行编码。它需要5个字节

您无法将这5个字节压缩到2字节空间中。如果尝试,将覆盖并损坏以下说明:

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]

您需要用
jmp
替换
push 5
(可能还有以下说明),以将
jmp
推送到将有
push 0xc350
的位置(以及被该
jmp
覆盖的说明,如果有)和
jmp
返回。

您能帮我紧急完成吗?对于这样的请求,这是一个错误的站点,或者对于这个站点的错误请求。我真的需要感谢您,我是根据您最好的建议完成的:D
10002586     50             PUSH EAX
10002587     FF52 18        CALL DWORD PTR DS:[EDX+18]