2016TJCTF-RE-digital_fortrees

分析

打开题目首先是一个exe可执行文件,以为是PE文件,但是使用IDA分析后发现不是那么简单。
在这里插入图片描述

查找字符串发现全是python字样,并没有程序中出现的welcome类型。第一次遇到这样的,无从下手。查阅得知是Python生成的Exe可执行文件。
这时候问题又来了,百度得到的几乎都是pyinstaller的解包过程,使用后无效。然后再问,被告知可用Binwalk分离出文件,分离结果可以得到茫茫多的pyc文件,更加迷茫。随后使用google查阅,发现有一个叫py2exe与unpy2exe的东西。使用

pip install unpy2exe

可以在Linux下安装,需要pyton2.7环境。之后便可以用了。

 unpy2exe '/home/wang/reverse/ADSWORD/2/digital_fortrees.exe' 

在这里插入图片描述
可以得到真正关键的pyc。这里真的困扰了我很久!!喜出望外后,开始分析pyc,这里可以用 EasyPythonDecompiler 来将pyc文件反编译为Py文件。之后查看Python代码

在这里插入图片描述
对应的两个choic会分别执行两个python文件,查看后,在这个文件里可以看到成功字样
在这里插入图片描述
阅读代码得知,这里是列出所有的目录,并且将房间号(路径)相乘 如果结果为一个大数,即可通过。这里使用
factordb分解大数,可以得到

后续我所看的WP说是根据flag格式 得到sha1(数1:数2:数3)即为flag 89225c98a509271436fd55c3c6aeef44fd07728a

总结

这题里主要是学到了exe文件转pyc的方法,积累了大数分解工具,pyinstaller的解包工具和unpy2exe工具。中间为了读懂Python代码,学到了 map join os等函数。真是受益匪浅。

明日目标

攻防世界的下一题

猜你喜欢

转载自blog.csdn.net/qq_38025365/article/details/89341284
re