IDA Pro: Как изменить функцию, чтобы она всегда возвращала истину? - PullRequest
0 голосов
/ 05 мая 2020

Iam newb ie при обратном проектировании, я пытаюсь исправить с помощью ida pro, но я понятия не имею, как я это сделаю. Вот рутина. Может ли кто-нибудь объяснить, что мне нужно изменить, чтобы он возвращал ИСТИНА

.text:0000000000006D30 ; =============== S U B R O U T I N E =======================================
.text:0000000000006D30
.text:0000000000006D30
.text:0000000000006D30                 public IsFeatureEnabled
.text:0000000000006D30 IsFeatureEnabled proc near              ; DATA XREF: LOAD:0000000000001228↑o
.text:0000000000006D30 ; __unwind {
.text:0000000000006D30                 test    rdi, rdi
.text:0000000000006D33                 jz      short loc_6D50
.text:0000000000006D35                 sub     rsp, 8
.text:0000000000006D39                 add     rdi, 8
.text:0000000000006D3D                 call    sub_AFE0
.text:0000000000006D42                 add     rsp, 8
.text:0000000000006D46                 movzx   eax, al
.text:0000000000006D49                 retn
.text:0000000000006D49 ; ---------------------------------------------------------------------------
.text:0000000000006D4A                 align 10h
.text:0000000000006D50
.text:0000000000006D50 loc_6D50:                               ; CODE XREF: IsFeatureEnabled+3↑j
.text:0000000000006D50                 xor     eax, eax
.text:0000000000006D52                 retn
.text:0000000000006D52 ; } // starts at 6D30
.text:0000000000006D52 IsFeatureEnabled endp
.text:0000000000006D52
.text:0000000000006D52 ; ---------------------------------------------------------------------------

1 Ответ

1 голос
/ 05 мая 2020

Установите курсор на строку 0000000000006D30 (начало функции IsFeatureEnabled). Щелкните правой кнопкой мыши - «Синхронизировать с» -> «Hex View» должен быть отмечен.

Откройте окно Hex-View, нажмите F2, введите 33 C0 40 C3

Это означает следующее:

   xor eax, eax ; 33 C0
   inc eax ; 40
   retn ; C3

Если вы хотите сохранить это в файле, сделайте следующее:

Скопируйте 10-20 байтов вокруг вашего патча и найдите шестнадцатеричную строку (например, «50 DE 64 11 ...» ) в шестнадцатеричном редакторе (WinHex, 010 Editor, Frhed, et c.), убедитесь, что скопировано достаточно байтов и найдена только одна последовательность, замените исходные байты функции исправленными байтами. Попробуйте выполнить свою пропатченную версию. Иногда это немного сложнее из-за переездов. Но это следующий уровень.

PS Я не поддерживаю компьютерное пиратство. Так что делайте это только в образовательных целях!

...