easycm WP(python的exe文件的逆向方法)
这是这次61d的比赛中的逆向题之一,同时也是一个逆向用python写的exe文件的一个模板。
首先查壳,无壳。
其次,注意到他是python写的exe文件,所以解题思路就是首先将其转为.pyc文件,然后再将.pyc文件转为.py文件,直接查看程序的源代码,进行分析。
第一步,将其转为.pyc文件。我们可以使用pyinstxtractor.py或者archive_viewer.py将其转换,命令行分别输入:python pyinstxtractor.py easycm.exe 和 python archive_viewer.py easycm.exe。
如果使用的是archive_viewer.py的话,他会显示出如下:

然后输入x easycm(程序名),回车,再输入生成的pyc文件名就可以生成pyc文件了。
但是需要注意的是,pyc文件有一个magic head,生成exe文件时会把pyc的magic head去掉,所以需要使用WinHex补上。

此时的pyc文件(如果不是pyc文件修改后缀就可以了)就可以正常地使用EasyPythonDecompiler生成py文件了。
拖进Atom查看源代码,分析易得是将input的每一位与33异或后在进行base64加密,与R01ARlpRWEhPUlVATU1EU3