Убить участок вызова? - Assembler
Формулировка задачи:
Здрасте. Мне надо заблокировать вызов участка этого кода,мне надо какие-то байты заменить на nop или как тут быть?
Пробовал заменить первые 5 байтов на
const unsigned char patch[] = {0x90, 0x90, 0x90, 0x90,0xE9};
У меня этот участок стал вызываться все время..когда ему не надо.
.text:1008FEE4 loc_1008FEE4: ; CODE XREF: sub_1008F7A0+519j .text:1008FEE4 F6 C4 41 test ah, 41h .text:1008FEE7 0F 8A 4D 06 00 00 jp loc_1009053A .text:1008FEED 8B 45 74 mov eax, [ebp+74h] .text:1008FEF0 85 C0 test eax, eax .text:1008FEF2 0F 85 42 06 00 00 jnz loc_1009053A .text:1008FEF8 8A 45 7E mov al, [ebp+7Eh] .text:1008FEFB 84 C0 test al, al .text:1008FEFD 74 33 jz short loc_1008FF32 .text:1008FEFF 68 B4 AD 10 10 push offset aGrenade_0 ; "grenade" .text:1008FF04 6A 00 push 0 .text:1008FF06 E8 65 33 03 00 call sub_100C3270 .text:1008FF0B 83 C4 08 add esp, 8 .text:1008FF0E 85 C0 test eax, eax .text:1008FF10 74 20 jz short loc_1008FF32
Решение задачи: «Убить участок вызова?»
textual
Листинг программы
if ( flt_1010E054 != 0.0 && !dword_10160D6C() && sub_10036A00(0) == 1 ) goto LABEL_181; sub_100C3270(0, "grenade");