assembly 如何在反汇编代码中扩展函数?

5lhxktic  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(123)

如何在IDA(PRO 7.5 SP3)中扩展/扩展函数代码?我想在反汇编代码中的现有函数中添加一些新的指令。我知道,有一个change function end选项(hotkey E),但问题是,紧接在函数代码之后,还有另一个函数代码,因此扩展有问题的函数,我只是覆盖了一些现有的和潜在的重要代码。
我附上了有问题的代码的屏幕截图:
x1c 0d1x的数据
所以我的解决方案是在函数结束之前首先在代码中“制造”一些空闲空间(将所有后面的代码移动一点,靠近函数),然后才通过打补丁添加一些新指令。但如何,正如我所说的“使”这个自由空间的新指令?
Thx帮助
P.S.
对不起,如果这个问题可能有点蹩脚,但我是这个主题的新手。

ercv8c1e

ercv8c1e1#

通常的方法是在代码的其他地方找到一些空闲空间,然后跳转到它。
但是,通过压缩现有代码并删除不必要的安全检查,这里还有一点可用空间。
从401067开始,用

401067 xor eax, eax
    401069 leave
    40106a ret

字符串
这使得40106 b- 401087可用,这是29字节。

voase2hg

voase2hg2#

这个函数非常简单,你可以重写整个函数来使用26个字节:

401040 push 636261h
401045 mov eax, esp
401047 push 0eh
401049 push eax
40104a push offset _Format
40104f call _printf
401054 xor eax, eax
401056 add esp, 16
401059 ret

字符串
那么你有46个字节可用。

相关问题