我正在逆向设计一个在GDB中没有调试符号的c程序。它要求一个特定的1-15位数的引脚号,并告诉你它是否正确。我的目标是找出这个密码是什么。
我很难找到我的引脚编号猜测与正确的引脚编号进行比较的地方。我认为有一种方法可以帮助找到我的猜测被加载到寄存器中的任何地方。
关于我的问题,是否可以检查并查看是否将特定值加载到任何寄存器中?
例如,我可以使用watch $rax == 1234
对单个寄存器执行此操作,但我希望为每个寄存器执行此操作。
答案 0 :(得分:1)
GDB没有此功能。
这听起来很糟糕,因为如果数字是0-9的数字,你会得到很多误报,你甚至无法确定它们是如何表示的。
更简单的方法应该是查找与引脚输入或失败密切相关的更改并从中跟踪数据: