|
一、用到的工具
! |5 f+ }- u7 o9 p) q: T# ^# `2 O- pyinstxtractor.py 拆包(解压)工具,将exe文件解压成一个文件夹
- uncompyle6 pyc反编译工具
- 010EditorEditor 或者其他二进制查看与修改工具,这里用的010Editor
; ^6 H# {, V) B7 k/ i 二、安装方法
7 E: k8 y3 P) p0 w* q X0 P; u% O第一步:解包! v8 c, k; ?' E4 I \5 S
python3 pyinstxtractor.py ***.exe # 这里替换成你要反编译的exe文件5 b# c- O" n. ]$ H a. y/ x
# 会生成一个以 exe文件名+_extracted 的文件夹,这个就是解包后的数据
5 E4 [# k8 {2 Y8 U第二步:添加头信息
1 L" L D. R, G/ e PyInstaller打包后,pyc文件的前8个字节会被抹掉,所以最后要自己添加回去。前四个字节为python编译的版本,后四个字节为时间戳。想要获得编译版本可以查看打包文件里struct的信息4 ~ j1 O7 E# y* G5 C- ^* k
1). 进入文件夹,找到以exe文件名命名的文件(没有后缀),这个就是目的文件
V& D4 l6 K1 m2 G T7 `$ \
5 X6 b+ t$ a. b8 K5 K" j! m
2). 用 010Editor 打开 struct,前八位就是我们想要的信息,将其复制
- z1 ?3 k) A0 Q. j6 S2 {. `6 q- r
! x, k* }4 H" d: K5 u3). 用 010Editor 打开目的文件我这里是 abc_text,将上一步复制的信息插入到开头
9 F# q, W9 f9 v$ Y" L修改前:' q0 [& O: I0 J+ R
v! b: p1 Z$ M4 D3 d; U
修改后:
# x' w" l5 q5 M+ ~/ r
8 _# J5 u- p6 \4). 将目的文件我这里是 abc_text,添加pyc的后缀3 s" y8 c b9 j& ]
第三步:逆向目的文件.pyc
+ `7 I5 k% Z5 E, H+ E1). 其实这里已经可以使用了。了解python的都知道pyc是py文件编译后的二进制文件,因此如果想要分析源码还得继续逆向成.py文件
) i4 K0 i! M& G# E
/ ]# A; U! h n5 L0 `- R4 a
2). uncompyle6逆向pyc文件
5 M/ p$ V9 U& @% w, C$ s4 E# l% Suncompyle6 abc_text.pyc > abc_text.py
3 F5 {1 ^) X1 A) q( d
, Q. {$ S3 R, ~, v8 K1 z' b! i
|
|