我已经在 exe 中使用了一些函数。我想知道在 exe 有了新版本(不是我的 exe)之后,是否有任何简单的方法来检测这些函数的内存地址。仅扫描 exe 以获取函数字节并与之前的结果进行比较的最佳方法是什么?这可以足够快地实现以将其添加到我的注入代码中吗?
在 exe 中更新挂钩函数地址的简单方法是什么
逆向工程
C++
dll注入
函数挂钩
2021-06-22 03:43:44
1个回答
这真的取决于你挂钩的功能。如果它们不太可能改变,那么扫描字节将是天真的解决方案。它应该相对较快并且工作得很好。
如果函数可能已经改变(补丁、删除、不同的编译器/构建环境等),那么您可以尝试为这些函数找到字节串“签名”。理想情况下,该签名应该是唯一的(仅在该函数中),但也要尽可能小(以减少在新二进制文件中修补这些字节的可能性)。这将是相当hack-y。
请注意:如果它是一个 DLL,您可以相当简单地遍历 PE 导出表以找到新的偏移量。
还有 Bindiff,现在免费:https ://security.googleblog.com/2016/03/bindiff-now-available-for-free.html
Bindiff 是一个 IDA 插件,也可能会解决您的问题。
我会说尝试扫描字节,看看你成功定位了多少。简单的解决方案是最好的解决方案!:)
其它你可能感兴趣的问题