Diamon
It's just a blog
To record my process of study
Home
解法一
- 将文件拖到IDA中,发现输入之前有一些操作,但不影响输入,可以用OD动态调试查看。
- 输入之后,程序将输入数据与v5和v7进行了运算,while循环i初始为5且i<21,说明flag长度为20
IDA操作流程
- 左侧为函数窗口,列出了程序中所有的函数。
- 右侧较大的默认的是整个程序的执行流程图,可以使用空格键切换。
- 左下角的图形窗口可以滚动,右侧的流程图也会随之改变。
- 函数窗口会识别出常用函数,所以sub_开头的函数,可能是程序员自定义的,也可能是ida没有识别的。
- shift+F12可以列出所有的字符串。
- dataxref是数据引用的意思,即程序在何处调用了此字符串。通过双击即可跳转至目标位置。
- ida有时无法识别出程序的子函数是什么功能而用sub_xxxx去命名,很不方便。我们可以选中目标函数名,按下n,输入新函数名即可。这时左侧的函数窗口也会随之改变。
- ida不能智能判断数据类型,所以可以通过H键转换为十进制,通过B键转换为二进制。
- ida将局部变量命名为var_,将参数命名为arg_。
- F12会列出当前光标所在函数的流程图,ida会将会将条件跳转转化为真假的标注更加简洁。
- F5反编译程序
汇编语言
- jnz 不为0跳转
2.cmp