一、easyre
拉入ExeinfoPe分析
程序为64位,所以我们用64位IDA分析
进入mian函数,F5查看伪代码
二、reverse1
拉入ExeinfoPe分析
程序为64位,所以我们用64位IDA分析,找到main函数,F5查看伪代码
看不出来什么东西
shift+F12查看程序字符串
发现可以字符串“{hello_world}”上交发现不对
再看程序字符串还有一处可疑之处
跟进字符串,找到关键字符串
跟进sub_1400118C0+C6↑j
F5查看伪代码
查看代码发现,之所以上交{hello_world}不对,是因为代码将‘o’转换成‘0’保存起来了,所以正确的flag是
flag{hell0_w0rld}
三、reverse2
拉入64位IDA分析
shift+F12查看程序字符串
发现可疑字符串,上交发现不对,有了上一题经验,感觉flag中某些字符可能被替换了
找到main函数,F5查看伪代码
分析代码,将你输入的字符串存放到s2中用s2和代码中的flag变量进行比较,相同则输出“this is the right flag!”。但是观察代码第19行到23行发现,代码将flag变量进行了操作,将flag变量中存放的字符串中等于‘i’和‘r’的字符转变为了‘1’保存
手动替换便得出最终flag
flag{hack1ng_fo1_fun}
四、内涵的软件
1、下载并运行程序
2、拉入ExeinfoPe分析
3、拉入32位IDA分析,找到main函数,F5查看伪代码
发现还有个 main_0(),双击跟进查看
发现可疑字符串,分析代码发现v2没有被调用,再根据程序所述
“这里本来应该是答案的,但是粗心的程序员忘记把变量写进来了,你要不逆向试试看:(Y/N)”
所以大胆假设,程序员是忘记将v2写进去了,所以我们直接上交
DBAPP{49d3c93df25caad81232130f3d2ebfad}
发现不对,再看题目说
“注意:得到的 flag 请包上 flag{} 提交”
所以我们将大括号里面的内容包上flag重新上交即正确了
flag{49d3c93df25caad81232130f3d2ebfad}
五、新年快乐
1、下载并运行程序
2、拉入ExeinfoPe分析
发现有一层UPX的壳
3、脱壳
4、拉入32位IDA分析,找到main函数,F5查看伪代码
分析程序
所以flag为
flag{HappyNewYear!}
六、helloword
下载附件,发现是helloword.apk文件,是一道安卓逆向的题目
第一次遇到这样的题目,先下载工具APKIDE(APK改之理)
工具下载链接
https://down.52pojie.cn/Tools/
工具下载完成后,打开apk文件
找到main函数
然后就…直接得到flag