没有加壳
IDA打开,没看到啥有用的信息,用动调也没调出啥来。。。
参考大佬的博客,知道了这是python项目打包成的exe文件,如何打包可以参考
python3项目打包成exe可执行程序
然后又翻了下之前动调的截图,看到这有个调用了python的dll。(之前都忽略了)
然后就是需要从这个exe中解包得到代码,可以参考Pyinstaller解包
先从GitHub上下载pyinstxtractor
使用方法:
cmd下进入该目录输入:python pyinstxtractor.py run.exe
解包后会在该目录下生成一个文件夹,里面有解包出来的几个pyc文件,其中run.pyc就是我们需要的东东,但是这个还不能正常反编译,因为解包出来的pyc文件是缺失文件头的
用010editor打开struct.pyc和run.pyc,将 run.pyc 的第一行用 struct.pyc的第一行代替。(struct.pyc中第一行有头文件信息,而 run.pyc中没有,所以要加上去)
替换后:
另存为一个pyc文件,就正常反编译了
直接用python执行就能得到结果:UNCTF{un_UN_ctf123}
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information`在这里插入代码片`
str2 = 'UMAQBvogWLDTWgX"""k'
flag = ''
for i in range(len(str2)):
flag += chr(ord(str2[i]) + i)
print(flag)
除了在线网站反编译,还可以使用uncompyle来进行反编译,GitHub项目:GitHub-uncompyle6
安装方法:
pip install uncompyle6
或者
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple uncompyle
使用方法:
uncompyle test.pyc > test.py
但是我在用的时候出现了错误
kali中python默认版本也是2.7,也在2.6-3.8里面,但是运行不了,,我也换过默认python版本,还是不行,,就很奇怪,找了一会找到个解决方法uncompyle6-python 3.9报错
需要给uncompile包添加一个3.9支持:
vim /usr/local/lib/python3.9/dist-packages/uncompyle6/bin/uncompile.py
在最后加上 (3,9),然后保存退出
然后就能正常反编译了,这里加个 -o是输出文件,用 > 是一样的
然后运行这个反编译出来的py脚本就行
最终flag :UNCTF{un_UN_ctf123}