(CTF) 通过连接到静态函数来加速组装

逆向工程 拆卸 部件 C
2021-06-22 15:29:36

对于 CTF,我有一个相当慢的递归函数。我只需要将以前的结果缓存在字典中并获取它们。我做到了,但不得不对代码进行逆向工程。我想知道是否有更好的解决方案。

LD_PRELOAD 不起作用,因为它是静态二进制文件。如果我可以复制程序集并使用asm在 C 程序中调用函数,我可以完成它,但是有没有更好的解决方案或方法来修补二进制文件并创建一个缓存慢速函数的函数?我们可以路径二进制文件或使用某些东西来挂钩函数调用。

1个回答

您绝对可以编辑二进制文件并实现一个新函数来处理缓存并根据需要调用原始函数。然后只需替换对新缓存实现函数的任何调用。在为递归函数实现缓存时需要小心,并决定是要缓存所有中间结果还是仅缓存最终结果。

但是,如果您正在寻找快速解决方案,您可能需要考虑使用模拟器作为在程序中运行该函数代码的一种方式。使用 Unicorn、任何其他模拟器甚至 IDA 应用程序调用函数执行。