IDA Pro:如何将函数修改为始终 return true?
IDA Pro: How to modify a function to always return true?
我是逆向工程的新手,我正在尝试使用 ida pro 进行修复,但我不知道我会怎么做。
这是例程。谁能解释一下我需要修改什么才能使它 return TRUE
.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 ; ---------------------------------------------------------------------------
将光标设置在 0000000000006D30 行(IsFeatureEnabled 函数的开头)。
右键单击 - "Synchronise with" -> "Hex View" 应该被选中。
打开 Hex-View window,按 F2,键入 33 C0 40 C3
意思如下:
xor eax, eax ; 33 C0
inc eax ; 40
retn ; C3
如果要将其保存在文件中,请执行以下操作。
复制补丁周围的 10-20 个字节并在十六进制编辑器(WinHex、010 Editor、Frhed 等)中找到十六进制字符串(例如“50 DE 64 11 ...”),确保有足够的字节复制并且只找到一个序列,用修补后的字节替换函数的原始字节。尝试执行你的补丁版本。有时由于搬迁,这有点困难。但这是下一个级别。
P.S。我不支持软件盗版。所以,这样做只是出于教育目的!
我是逆向工程的新手,我正在尝试使用 ida pro 进行修复,但我不知道我会怎么做。 这是例程。谁能解释一下我需要修改什么才能使它 return TRUE
.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 ; ---------------------------------------------------------------------------
将光标设置在 0000000000006D30 行(IsFeatureEnabled 函数的开头)。 右键单击 - "Synchronise with" -> "Hex View" 应该被选中。
打开 Hex-View window,按 F2,键入 33 C0 40 C3
意思如下:
xor eax, eax ; 33 C0
inc eax ; 40
retn ; C3
如果要将其保存在文件中,请执行以下操作。
复制补丁周围的 10-20 个字节并在十六进制编辑器(WinHex、010 Editor、Frhed 等)中找到十六进制字符串(例如“50 DE 64 11 ...”),确保有足够的字节复制并且只找到一个序列,用修补后的字节替换函数的原始字节。尝试执行你的补丁版本。有时由于搬迁,这有点困难。但这是下一个级别。
P.S。我不支持软件盗版。所以,这样做只是出于教育目的!