众所周知,Linux下像od,x64dbg,这些方便的windows下的动态调试工具几乎没有(ps:可能我孤陋寡闻了),但百度能查到,推荐的大多数都是gdb,也就是linux下自带的调试工具,这个调试工具呢,以前一直不会用,现今,从一道静态分析得头痛还没分析出来的题目,用动态很快出来了,所以便写了这篇文章记录下如何使用gdb,我只从一道题来讲下:
这道题目是tjctf的一道题目,当时我是不知道怎么做的,画堆栈图老是对不上号,不会动态就很麻烦了,题目我后面补上,
题目看上去不难,都告诉你flag了,然而ida的解析是不能完全说明问题的,你把那串flag复制上去,发觉是错的,为什么?你看他中间还有一堆数据处理,这是白干的吗?不可能的,看汇编代码
从0804858F开始便是那堆数据处理,学过栈的人可以很清楚知道,那便是局部变量存放的地方,也就是flag的地方,你可以对比下上面的赋值地址