BUUCTF--------逆向刷题笔记(持续更新ing)
01.easyre
解题步骤
-
使用IDA进行打开
-
快捷键shift+F12查询字符串,再使用Ctrl+f查询关键字符串flag
-
得到flag
02.reverse1
解题步骤
-
使用IDA进行打开
-
快捷键shift+F12查询字符串,再使用Ctrl+f查询关键字符串flag
-
右键上图的代码,选择List cross references to
-
进入IDA view-A界面,发现输入的hello_world
-
使用快捷键F5查看伪代码,发现重要if条件判断
-
使用快捷键R,将数字转化为字符串,分析转化后的代码可以知道,这个题目是将flag里的o替换成了数字0
-
得到flag为flag{hell0_w0rld}
03.reverse2
解题步骤
-
使用IDA进行打开
-
快捷键shift+F12查询字符串,再使用Ctrl+f查询关键字符串flag,并发现关键信息,hacking_for_fun}可能为flag的一部分。
-
进入 this is the right flag!代码处,使用右键选择List cross references to
-
进入伪代码,分析函数发现一个重要的if判断语句,将if函数里的16进制替换成字符串发现代码意思是,将flag中出现的i和r字母替换成1
-
所以我们尝试将刚刚的得到的hacking_for_fun中的i和r替换成1,提交发现正确。
-
flag为flag{hack1ng_fo1_fun}
04.reverse-----内涵的软件
解题步骤
-
运行软件发现,flag被隐藏了,根据题目提示,使用逆向软件IDA打开文件
-
根据题目提示,使用逆向软件IDA打开文件
-
发现关键信息,是flag 的形式,尝试提交,发现flag正确,flag{49d3c93df25caad81232130f3d2ebfad}
05.reverse-----helloworld
解题步骤
-
下载附件发现是apk文件。
-
使用GDA打开
-
搜索flag关键字,发现flag
-
flag为:flag{7631a988259a00816deda84afb29430a}
06.reverse-----新年快乐
解题步骤
-
查壳,使用PEID查看文件是否有壳(前几题未按照这个步骤进行),发现带有UPX壳
-
使用UPX脱壳工具进行脱壳
-
将脱壳后的文件拖入IDA中
-
使用shift+f12快捷键查看字符串,使用ctrl+f查询flag关键词
-
右键查看,接着F5查看伪代码
-
分析伪代码可以知道输入Str1需要和v1(v1的内容是HappyNewYear!)进行字符串比较,如果两者的字符串一样,则输出this is true flag!
qmemcpy(&v1, "HappyNewYear!", 0xEu); *(_WORD *)Str1 = 0;
if ( !strncmp(Str1, &v1, strlen(&v1)) ) result = puts("this is true flag!");
-
经过函数的分析可知flag为flag{HappyNewYear!}