我如何在 gdb 中调用 function(void)
How do I call function(void) in gdb
我是一个完全的逆向初学者。
最近我一直在研究 gdb 以及如何调试程序。
我很怀疑这是否是一个简单的问题
#include <stdio.h>
#include <stdlib.h>
int flag(void){
puts("okay you got this");
}
int main(void){
puts("nope try again");
}
所以我成功编译了这个程序,当我尝试运行这个程序时,它给了我主函数输出
nope try again
那么现在我如何调用标志函数在 gdb 中给出“好的,你得到了这个”输出 我尽了最大努力并浏览了博客以获得答案,但我以失败告终 希望我能找到解决方案,并请告诉我我缺少什么以及我需要知道这是如何工作的
你的意思是如何调用 flag()
并跳过 main
中的 puts
?,在这种情况下:
(gdb) break main
(gdb) run
(gdb) print flag()
okay you got this
(gdb) break 10
(gdb) jump 10
(gdb) quit
函数 flag
未被调用,很可能它不会出现在可执行文件中,因为不需要
这叫死码消除
我是一个完全的逆向初学者。 最近我一直在研究 gdb 以及如何调试程序。
我很怀疑这是否是一个简单的问题
#include <stdio.h>
#include <stdlib.h>
int flag(void){
puts("okay you got this");
}
int main(void){
puts("nope try again");
}
所以我成功编译了这个程序,当我尝试运行这个程序时,它给了我主函数输出
nope try again
那么现在我如何调用标志函数在 gdb 中给出“好的,你得到了这个”输出 我尽了最大努力并浏览了博客以获得答案,但我以失败告终 希望我能找到解决方案,并请告诉我我缺少什么以及我需要知道这是如何工作的
你的意思是如何调用 flag()
并跳过 main
中的 puts
?,在这种情况下:
(gdb) break main
(gdb) run
(gdb) print flag()
okay you got this
(gdb) break 10
(gdb) jump 10
(gdb) quit
函数 flag
未被调用,很可能它不会出现在可执行文件中,因为不需要
这叫死码消除