当前位置:首页 » 编程软件 » python反编译源码

python反编译源码

发布时间: 2023-05-01 06:20:33

1. 反编译python编写的exe文件的详细方法

接下来具体说一下步骤:

这个文件在pyinstaller库里,还没有安装的需要安装一下(已经安装的跳过安装)

安装完成后在python安装路径下的\Lib\site-packages文件夹搜索archive_viewer.py文件

找到文件后可以复制到你想要放置的位置(不复制也行)

这一步会把编译出的文件都罗列出来,像这样

但是我们只需要找到我们exe对应的名字的文件就好了,确认存在之后滑到最下面,会发现有个?号用于输入接下来的命令,在这边我们输入

会显示 to filename? 让你输入需要输出的pyc文件名称,这边输入 your_app.pyc 回车就好了
接下来又会显示?号,接着输入 x struct 回车,输入struct文件名称 struct 回车

由于用PyInstaller打包后,pyc文件的前8个字节会被抹掉,所以最后要自己添加回去。前四个字节为python编译的版本,后四个字节为时间戳。
这边使用Hex Editor Neo软件同时打开.pyc文件和struct文件,复制struct文件前面8个字节插入到.pyc文件的前面:

这样我们就得到了完整的pyc文件

安装uncompyle库

反编译

2. python 反编译 源码还原py后,怎么把它再编译成pyc

不用编译
Python每次执行的时候,都会检查py是否有同名的pyc
如果没有或者pyc比py生成时间更早,就会自动把py翻译成字节码的pyc
然后由pyc解释执行

3. python源码编程成pyc后,怎么防止反编译

无法防止反编译,但可以混淆,让你即使反编译了,也看不懂语法
下面一段源码

sd=1

defseed(s):
globalsd
sd=s

defrandn(n):
globalsd
sd=(sd*1103515245+12345)&0x7fffffff
returnsd%n

defmain():
seed(11)
foriinxrange(4):
printrandn(313)

if__name__=='__main__':
main()

混淆后

oo000=1
if9-9:Ii.o0o00Oo0O-iI11I1II1I1I
defoooo(s):
globaloo000
oo000=s
if11-11:ii1I-ooO0OO000o
defii11i(n):
globaloo000
oo000=(oo000*1103515245+12345)&0x7fffffff
returnoo000%n
if66-66:iIiI*iIiiiI1IiI1I1*o0OoOoOO00
defI11i():
oooo(11)
forO0Oinxrange(4):
printii11i(313)
if78-78:i11ii11iIi11i.oOoO0oo0OOOo+IiiI/Iii1ii1II11i
if__name__=='__main__':
I11i()#

4. 有什么工具可以将python编译好的代码.pyc反编译为.py

depython是用来反编译经过python编译的后缀名为pyc或pyo的字节码文件的.
如果你找不到你写的python源代码,depython可以帮助你通过pyc/pyo文件来找回这些源代码。
经depython反编译得出的python源代码,和你原来的代码文件几乎完全一样。
http://www.depython.net/?lang=zh

5. 用Python2.7.1写的小程序可以反编译得到它的源代码吗

可以,网上有很多在线的反编译工具,给你发几个链接:
1、http://depython.com/index.php
2、https://github.com/eble/pyc2py
3、http://tool.lu/pyc/
不过好像第一个只适用于Python2.0-2.6,第二个适用于Python2.6,第三个应该可以反编译2.7,你可以都试一下。

6. python-uncompyle反编译

python的编译后文件pyc,可以将pyc文件反编译为py文件。

相应的工具: uncompyle

github地址: https://github.com/rocky/python-uncompyle6/

安装: pip install uncompyle

安装好后,注意执行的命令为 uncompyle6 ,而不是 uncompyle 。

查看帮助命令: uncompyle6 --help 、 uncompyle6 -h

反编译单个文件 : uncompyle6 foo.pyc > foo.py

反编译多个文件: uncompyle6 -o . *.pyc

例子:

7. 问一下,如何用python的decompile批量反编译pyc 是批量

先将需要反编译pyc,放在指定的路径下,然后os.system.pat一个for
循环就可以批量编译了。
>>>
import
os
>>>
file_list=[]
>>>loc_path='/hadoop/hadoop/'
>>>
file_list=os.listdir(loc_path)
>>>
for
f
in
file_list:
执行反编译

8. PyInstaller打包、解包与反编译.pyc文件

PyInstaller官网: https://www.pyinstaller.org/

假设有一个demo.py文件,在同目录下启动命令行或从命令行进入当前文件夹,使用如下命令打包

打包后同目录下会产生两个文件夹build和dist(distribution),dist文件夹内就是目标程序。

解包使用pyinstxtractor工具
Github地址: https://github.com/extremecoders-re/pyinstxtractor
假设在第1步中,使用-F参数将demo.py打包为独立可执行文件demo.exe,进入dist文件夹,将pyinstxtractor.py放在该目录下,在该目录下启动命令行或从命令行进入该文件夹,使用如下命令解包

解包得到的内容将放入同目录下的demo.exe_extracted文件夹

找到目标.pyc文件,比如demo.pyc
反编译.pyc文件使用uncompyle6工具
Github地址: https://github.com/rocky/python-uncompyle6
可以直接通过pip安装uncompyle6

由于pyinstaller在打包可执行文件时会将.pyc文件头部的16字节magic head去掉,因此需要对需要反编译的.pyc文件进行预处理,将文件头部的16字节magic head补充完整。这里使用一个开源的16进制编辑器ImHex。
Github地址: https://github.com/WerWolv/ImHex
进入demo.exe_extracted文件夹,用16进制编辑器打开struct.pyc文件复制头部的16字节magic head,再用16进制编辑器打开demo.pyc文件,将头部的16字节改为magic head,即将图2中的部分更改为图1中的值即可。

使用前一个命令,反编译后的源码内容会显示在命令行窗口内;使用后一个命令,源码会打印到指定文件中,如demo.py。
到此为止可以

Invalid pyc/pyo file - Magic value mismatch!
补充magic head后即可正常反编译。

如果不是项目成员给所谓的程序而不肯给源码,而我又绕不过这个程序的问题,我才不想折腾这些有的没的。

9. 反编译是什么意思

计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,

某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。

(9)python反编译源码扩展阅读

反编译是一个复杂的过程,反编译软件有:

1、SWF相关的反编译程序

Action Script Viewer

第一个也是最强大的商业SWF反编译工具,同类产品中,它的AS代码反编译效果最好,SWF转Fla工程重建成功率最高。

2、Android相关的反编译程序

SMALI/BAKSMAL

SMALI/BAKSMALI是一个强大的apk文件编辑工具,用于Dalvik虚拟机(Google公司自己设计用于Android平台的虚拟机)来反编译和回编译classes.dex。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)。

3、Python相关的反编译程序

uncompyle2

uncompyle2可以直接转化为十分完美的python源码,并可以将反编译后的源码再次生成字节码文件。

参考资料来源:网络-反向编译

10. 用Python2.7.1写的小程序可以反编译得到它的源代码吗

python是不能反编译的,因为得到了一个python的程序,就是得到了它的源代码。
python是解释性语言,没有编译这一步骤,和c语言java语言是不一样的

热点内容
excel表格ftp函数 发布:2025-07-10 09:05:50 浏览:275
u2game的解压密码 发布:2025-07-10 09:05:14 浏览:596
c语言编译器ide苹果下载 发布:2025-07-10 09:05:13 浏览:292
andftp端口 发布:2025-07-10 08:57:04 浏览:606
战地一有什么不用加速器的服务器 发布:2025-07-10 08:51:33 浏览:405
linux怎么看自己服务器的ip 发布:2025-07-10 08:51:29 浏览:136
怎么写脚本刷视频 发布:2025-07-10 08:49:51 浏览:382
安卓微信在哪里设置铃声 发布:2025-07-10 08:48:05 浏览:233
dropbear编译 发布:2025-07-10 08:27:35 浏览:684
我的世界电脑建造服务器推荐 发布:2025-07-10 08:13:08 浏览:401