我正在尝试对 32 位剥离的、动态链接的 ELF 可执行文件进行逆向工程。我想知道何时将特定字符串打印到控制台。我运行了以下命令:
root@testbox> strings -a --radix=x binfile | grep -i reset
d38c4 RESET
这是我想知道何时打印到控制台的字符串。这可能发生在 printf 或 puts (在执行流程中被多次调用)
使用字符串的内存地址来判断它何时被读取(从而打印到屏幕上)的合适方法是什么?
我正在尝试对 32 位剥离的、动态链接的 ELF 可执行文件进行逆向工程。我想知道何时将特定字符串打印到控制台。我运行了以下命令:
root@testbox> strings -a --radix=x binfile | grep -i reset
d38c4 RESET
这是我想知道何时打印到控制台的字符串。这可能发生在 printf 或 puts (在执行流程中被多次调用)
使用字符串的内存地址来判断它何时被读取(从而打印到屏幕上)的合适方法是什么?
您可以通过更简单的方式找到模式的加载地址
objdump -s "executable" | grep -i "pattern"
通过 gdb 确认
x/s "*(returned address from objdump)"