py逆向工具使用
py逆向工具使用
一、前言
py逆向,找个题目举例子说明一下[NISACTF 2022]ezpython。
二、题目
工具: 1.pyinstxtractor.py 下载地址:https://sourceforge.net/projects/pyinstallerextractor/ 2.HEX编辑器,我这里使用winHEX 下载地址:https://www.jb51.net/softs/16546.html#download 3. uncompyle 库 可在命令框中输入:pip install uncompyle6 进行安装
需要用到这两个工具
把给出的exe文件放到跟pyinstxtractor.py的同一目录下,然后
1 | python pyinstxtractor.py 附件.exe |
会生成一个和附件名相同的文件夹
进入到文件夹找到这两个文件
struct.pyc这个文件一般都是的这个名字,src.pyc这个文件跟附件相关,名字有时不一样。
然后把这两个文件放到010Editor(编辑器都行)中
把struct.pyc的第一行添加到src.pyc中,因为struct保存着版本信息等,如果src中缺少了是无法再编译为py的。
编辑完之后,再src目录下打开cmd,使用uncompyle6工具把pyc编译为py
1 | uncompyle6 src.pyc |
命令行中也会直接显示出来,也可以看目录下生成的同名py文件
只用看最后一处就行,思路就是,直接输入key的话,会对key有一个判断,如果输入的key再经过decrypt2这个函数相同的话就会打印出正确的flag。如果判断不等的话,就会输出fake_flag。
所以逆向思路就是不进行判断,直接赋值给result就行。
四、总结
这道题考察的应该是exe转pyc再转py的过程,用好那两个工具就行了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 z0yuan's Blog!