Убить участок вызова? - Assembler

Узнай цену своей работы

Формулировка задачи:

Здрасте. Мне надо заблокировать вызов участка этого кода,мне надо какие-то байты заменить на nop или как тут быть?
.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
Пробовал заменить первые 5 байтов на const unsigned char patch[] = {0x90, 0x90, 0x90, 0x90,0xE9}; У меня этот участок стал вызываться все время..когда ему не надо.

Решение задачи: «Убить участок вызова?»

textual
Листинг программы
        if ( flt_1010E054 != 0.0 && !dword_10160D6C() && sub_10036A00(0) == 1 )
          goto LABEL_181;
        sub_100C3270(0, "grenade");

Оцени полезность:

7   голосов , оценка 4.286 из 5