0x01 , 现在用python的人也多了起来,代码安全始终是我们要考虑的问题,比如说我们要将我们的成果发布出去,py直接发布肯定是不行的(除非你是开源的),那么我们就只能考虑发布pyc文件了,
0x02,今天讨论的就是怎么反编译pyc到源代码的技术,从道理上来讲,这个是完全没问题的,而且反编译出来的代码质量应该相当高才对(参考java class的原理),在百度里面搜索的话,信息量不够,只有2.2以下版本的反编译
0x03 ,利用google的话有个短小的讨论比较有含金量
http://stackoverflow.com/questions/8189352/decompile-python-2-7-pyc
他提出了几个开源的反编译实现,其中比较知名的是uncompyle,经过git查询我们可以发现uncompyle2这个是一个基于uncompyle的加强版本,所以可以考虑使用这个
0x04 https://github.com/wibiti/uncompyle2
下载,安装
python setup.py install 没什么好说的
0x05 安好后怎么用呢,这里要注意,文档写的不详细,实际上是去找python目录下/Scripts/uncompyle2 文件执行,其实打开 uncomple2就可以看到这个实际上是个py文件,具体参数 -h可以看到
0x06 给大家一个我写的小py可以减少些手动工作
import os
import sys
def displayFile(file):
unPath= sys.executable
unPath=unPath[ 0 : unPath.rfind( os.sep ) ]
newname = file[0:file.rfind('.')] + '.py'
command = "python -u "+unPath+"\scripts\uncompyle2 " + file + ">" + newname
try:
os.system(command)
except e:
print file
if __name__ == '__main__':
#print unPath
print 'init'
displayFile('E:\\test.pyc')
print 'finished'
0x07 有经验的py程序员会在发布程序的时候修改pyc的头8个字节,这8个字节是有特殊含义的
- 四个字节的magic number
- 四个字节的timestamp
头四个是magic number 很多pyc都在这个上面做文章,这修改成不合法的,然后你反编译就是败了,一板你可以找你自己编译成功的pyc头直接覆盖掉他的头8个字节就可以了, timestamp是文件的修改时间,主要是当源码有改变的时候python 就可以重新生成pyc 文件.
我说的比较简单,详细的可以看看这个http://www.iteye.com/topic/382423
分享到:
相关推荐
Python反编译pyc完全教程.doc
python反编译成.py获得源码所需要的文件
反编译pyc工具
反编译pyc教程!简简单单还原源码!值得推荐!
这是使用Python uncompyle6库反编译pyc文件的工具。将pyc文件拖入uncompile.py文件中即可运行。 如果有错误, 程序还会输出详尽的错误提示。程序经过调试, 功能完备。
很好用的批量反编译pyc工具,美中不足是转义后的文件后缀是pyc_dis,需要自己修改一下
python反编译反汇编工具pycdc pycdas pycdc xxxx.pyc 得到py代码 pycdas xxxx.pyc 得到字节码 可以用来尝试进行反编译工作 使用vs2019编译生成pycdc pycdas
pycdc文件,用于反编译python3.9以上版本的pyc文件
python pyinstaller exe反编译工具:pyinstxtractor.py pyc反编译工具:Easy Python Decompiler
今天小编就为大家分享一篇对Python3 pyc 文件的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
python反编译工具Easy Python Decompiler,参考网址http://blog.csdn.net/qq_32808253/article/details/78518204
2.pycdc是基于c++开发的用来对python的pyc文件进行反编译的工具,可以完美的支持将python3.9及以上版本的pyc文件的反编译工具。 3. pycdc的使用如下: a)下载压缩包,并解压,将需要反编译的pyc文件拷贝到与pycdc....
.pyc文件反编译为py文件 python反编译工具pycdc.exe,python反汇编工具pycds.exe
很好用的python反编译软件,亲测python2.7反编译成功。 最新版。
压缩: 本工具支持使用bz2,lzma,zlib模块对pyc文件进行压缩, 并可还原已压缩的pyc文件。 加/解密: 支持通过字节码混淆来保护python代码, 使pyc文件无法被uncompyle6等库反编译。
pycdc(Python反编译工具),对.pyc文件进行反编译
python工程编译pyc脚本.sh 其中的PYTHON_EXE需要修改为环境中的python 本脚本在CentOS6.4/7中测试通过;需要注意的是不同的python,后面的rename可能需要修改