wsxk / wsxk.github.io

MIT License
5 stars 0 forks source link

pyinstaller 逆向 #177

Open wsxk opened 5 months ago

wsxk commented 5 months ago

https://wsxk.github.io/pyexe_re/

前言

  1. 曾经的方案

    1.1 pyinstxtractor 1.2 uncompyle6反编译

  2. 现在的方案pydumpck

前言 不知道大家看到这张图片是否熟悉

这张图片常出现在python代码通过pyinstaller打包成exe可执行程序,exe程序的图标 如果有逆向的同学们应该就知道这个。 作为逆向的一个常规套路,当然有常规的解题手段,遇到这种开头的exe文件,直接用pyinstxtractor解包,再用python反编译工具把pyc反编译成py文件

  1. 曾经的方案 注意,该方案在使用过程中需要确保你正在运行的python版本,和目标exe文件打包时的python版本是一致的(3.x版本一致),反编译出正确值 如何获取exe文件打包时的python版本?在经过1.1步骤时也能得知。

1.1 pyinstxtractor https://github.com/extremecoders-re/pyinstxtractor 下载这个工具后,根据提示运行 python pyinstxtractor.py

即可得到解压的目录。 需要注意的是,pyinstxtractor在解压过程中会列出可能的入口函数的pyc文件,之后反编译优先反编译它们即可

1.2 uncompyle6反编译 作为若干年前的神奇,uncompyle6给了我很多帮助,然而,uncompyle6只支持到python3.9版本,在python3.10版本后,需要使用其他工具 pip install uncompyle6

安装完成后,使用 uncompyle6 target.pyc > target.py

即可

  1. 现在的方案pydumpck https://github.com/serfend/pydumpck 一键式的解决方案,让反编译变得简单轻松 pip install pydumpck

后,使用如下命令即可轻松编译 pydumpck xxx.exe

得到的结果中含有的pyc文件也会自动反编译响应的python文件,方便查看~