Reputation: 1
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]
I need to change push 5 on 10002584 to push c350 but i am getting unknown identifier error on ollydbg
When I used 0xC350 this below codes change and the dll file don't run it properly.
How to do that ?
Upvotes: 0
Views: 1776
Reputation: 62068
push 0xc350
clearly needs more than 2 bytes (which is the length of push 5
) to be encoded. It needs 5 bytes.
You cannot squeeze these 5 bytes into the 2-byte space. If you try, you will overwrite and corrupt the following instructions:
10002586 50 PUSH EAX
10002587 FF52 18 CALL DWORD PTR DS:[EDX+18]
You will need to replace push 5
(and possibly the following instructions) with jmp
to a location that will have push 0xc350
(and the instructions overwritten by that jmp
, if any) and jmp
back.
Upvotes: 1