我是逆向工程新手,我尝试使用 ida pro 进行修复,但我不知道如何解决这个问题。\n这是例程。谁能解释一下我需要修改什么才能使其返回 TRUE
\n\n.text:0000000000006D30 ; =============== S U B R O U T I N E =======================================\n.text:0000000000006D30\n.text:0000000000006D30\n.text:0000000000006D30 public IsFeatureEnabled\n.text:0000000000006D30 IsFeatureEnabled proc near ; DATA XREF: LOAD:0000000000001228\xe2\x86\x91o\n.text:0000000000006D30 ; __unwind {\n.text:0000000000006D30 test rdi, rdi\n.text:0000000000006D33 jz short loc_6D50\n.text:0000000000006D35 sub rsp, 8\n.text:0000000000006D39 add rdi, 8\n.text:0000000000006D3D call sub_AFE0\n.text:0000000000006D42 add rsp, 8\n.text:0000000000006D46 movzx eax, al\n.text:0000000000006D49 retn\n.text:0000000000006D49 ; ---------------------------------------------------------------------------\n.text:0000000000006D4A align 10h\n.text:0000000000006D50\n.text:0000000000006D50 loc_6D50: ; CODE XREF: IsFeatureEnabled+3\xe2\x86\x91j\n.text:0000000000006D50 xor eax, eax\n.text:0000000000006D52 retn\n.text:0000000000006D52 ; } // starts at 6D30\n.text:0000000000006D52 IsFeatureEnabled endp\n.text:0000000000006D52\n.text:0000000000006D52 ; ---------------------------------------------------------------------------\nRun Code Online (Sandbox Code Playgroud)\n
将光标设置在 0000000000006D30 行(IsFeatureEnabled 函数的开头)。右键单击-“同步”->“十六进制视图”应选中。
打开 Hex-View 窗口,按 F2,输入 33 C0 40 C3
这意味着以下内容:
xor eax, eax ; 33 C0
inc eax ; 40
retn ; C3
Run Code Online (Sandbox Code Playgroud)
如果您想将其保存在文件中,请执行以下操作。
复制补丁周围的 10-20 个字节,并在十六进制编辑器(WinHex、010 Editor、Frhed 等)中找到十六进制字符串(例如“50 DE 64 11 ...”),确保复制足够的字节并且仅复制一个序列找到后,用修补的字节替换函数的原始字节。尝试执行您的修补版本。有时,由于搬迁,事情会变得更加困难。但这是一个新的水平。
PS我不支持盗版软件。所以,这样做只是为了教育目的!