1.easyre


查找main找到main

flag{this_Is_a_EaSyRe}
2.reverse1

shift+F12

ctrl+x(交叉引用)查看是哪段函数调用了该字符串

点击“OK”进入该段程序,查看汇编代码

按“F5”查看伪C代码

"sub_1400111D1"是"printf"之类的输出函数。
随便找一个str2,双击点进去之后就找到了str2 '{hello_world}'

程序还没有分析完,继续往上分析
for循环是对str2做了一个转换的处理,str2里面ascii码为111的字符会被转换为ascii码为48的字符,在IDA中,选中数字按"R"键可以将数字转换为字符。
即str2中所有的"o"都被转换成了"0"
所以flag为 flag{hell0_w0rld}
3.reverse2

首先,拿到题目后,还是要用PE软件查一下软件的基本情况。
根据PE信息可以看到,该软件是用ELF写的,64位文件。
因此,采用IDA 64打开。
通过IDA生成的流程图可以找到关键字:FLAG。(依然觉得IDA很强大。)
找到关键字之后用F5查看伪代码。
通过按“R键”可知:105 = 'i'; 114 = 'r'; 49 = '1'。分析第25-26行,比较flag与s2的字符串,才能得到“this is thw right flag!”。
重新回到流程图。
观察右侧流程发现flag被放入了eax寄存器中,于是双击进去观察一下。
现在可以看到flag有一部分是“hacking_for_fun}”,为什么说是一部分呢?因为题目中说flag的格式应该是“flag{}”,因此合理推断,flag至少应该是“flag{hacking_for_fun}”,再次使用“R键”可知,78h = {;
于是我又往上看了一下,原来是flag中的“i”和“r”被替换成了“1”,那么最终的flag就是:flag{hack1ng_fo1_fun}。
flag{hack1ng_fo1_fun}
4.内涵的软件

其中红框里面很像flag
然后输入flag{49d3c93df25caad81232130f3d2ebfad}
5.hello word
.下载得到apk文件丢到apkida中找main函数

2.get flag
flag{7631a988259a00816deda84afb29430a}
下面是做的5个题目的位置,方便大家查看题目
