导航:首页 > 源码编译 > python3反编译

python3反编译

发布时间:2023-09-06 18:41:51

Ⅰ 反编译是什么意思

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

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

(1)python3反编译扩展阅读

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

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源码,并可以将反编译后的源码再次生成字节码文件。

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

Ⅱ 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()#

Ⅲ 反编译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库

反编译

Ⅳ python文件后缀是什么

python文件后缀总结:

(1).py:这通常是您编写的输入源代码。

(2).py3:Python3脚本(Python3脚本通常以.py而不是.py3结尾,很少使用)。

(3).pyc:这是编译好的字节码。如果导入一个模块,python将生成一个*.pyc包含字节码的文件,以便再次导入它更容易(也更快)。

.pyc二进制文件可以反编译成.py文件,反编译软件叫Easy Python Decompiler。

(4).pyo:这是在优化(-O)时创建的*.pyc文件,从Python3.5开始,Python将只使用.pyc而不是.pyo和.pyc。

(5).pyd:这基本上是一个Windows DLL文件。

(6).pyi:MyPy存根,存根文件(PEP 484)。

(7).pyw:用pythonw.exe执行的Windows的Python脚本。

(8).pyx:将Cython src转换为C/C++。

(9).pyz:Python脚本归档(PEP 441)(这是一个包含标准Python脚本头之后的二进制形式的压缩Python脚本(ZIP)的脚本)。

(10).pywz:用于MS-Windows的Python脚本归档(PEP 441)(这是一个包含标准Python脚本头之后的二进制形式的压缩 Python脚本(ZIP)的脚本)。

(11).py [cod]:.gitignore中的通配符表示该文件可能是.pyc,.pyo或.pyd。

(12).rpy:包含应用程序或框架特定功能的RPython脚本或Python脚本。

(13).pyde:处理使用的Python脚本。

(14).pyp:Py4D Python插件。

(15).pyt:Python声明文件。

众多python培训视频,尽在python学习网,欢迎在线学习!

Ⅳ Python的while 1跟while True到底有什么区别

定义两个方法,分别使用while循环

defw():
while1:
pass

defw2():
whileTrue:
pass

单从功能上说,两种无任何区别,那么,来看看字节码上的区别:

importdis#载入反编译模块,Python内置的

dis.dis(w)#对应的是while1,下面是输出
20SETUP_LOOP3(to6)

3>>3JUMP_ABSOLUTE3
>>6LOAD_CONST0(None)
9RETURN_VALUE

dis.dis(w2)#对应的是whileTrue,下面是输出
20SETUP_LOOP10(to13)
>>3LOAD_GLOBAL0(True)
6POP_JUMP_IF_FALSE12

39JUMP_ABSOLUTE3
>>12POP_BLOCK
>>13LOAD_CONST0(None)
16RETURN_VALUE

很明显, while 1的字节码只有while True的一半.
为什么呢? 因为Python2.x中True不是关键字,只是一个全局变量而已

Python3中,True、False是关键字,就没有什么区别了。


更详细,更专业的分析,请看
http://stackoverflow.com/questions/3815359/while-1-vs-for-whiletrue-why-is-there-a-difference

Ⅵ python写的程序,转成了exe文件,怎么进行反编译为python源码

1、电脑桌面,输入“win+R”组合键,在弹出窗口中输入“cmd”,点击确定。

阅读全文

与python3反编译相关的资料

热点内容
php卡死源码 浏览:574
time库中的clock函数python 浏览:989
cad视觉移动命令怎么打开 浏览:821
安卓java调用python 浏览:395
java标准时间 浏览:137
华为服务器湖北渠道商云主机 浏览:30
韩式面部护理解压视频 浏览:301
pdf换成jpg图片 浏览:897
dh加密算法 浏览:107
安卓手机如何隐藏微信信息提示 浏览:632
nodejs解压缩 浏览:262
直流双转子压缩机 浏览:952
pythonxmlstring 浏览:822
用私钥加密之后可以用公钥解密 浏览:788
ug如何启动服务器 浏览:444
csgo防抖动命令 浏览:960
如何弄到手机app页面的源码 浏览:441
androidwindows7破解版 浏览:363
解压视频动画怎么拍 浏览:748
连涨启动源码 浏览:163