python代码反编译
反编译代码
1、找到相应得程序文件
如果有exe或者elf格式得文件,那就直接反编译。
如果没有找到,就找下拉去的文件夹中dist文件夹下熟悉的文件名,有可能是文件格式的,没有后缀 。
2、提取文件
首先需要准备pyinstxtractor.py ,下载地址:https://github.com/extremecoders-re/pyinstxtractor
然后把下载的文件复制到需要反编译的文件夹中,在命令行输入python pyinstxtractor.py (要编译的文件名)
这时候会得到一个后缀为_extracted的文件夹,这里面就是需要的文件。
打开之后发现里面都是pyc文件格式的,这时候我们就需要把pyc格式的文件转换为py格式的文件。
3、转换格式
3.1 修改文件头
如果你报错了,那么就继续。
这种错误就是需要修改文件头,因为在压缩和解压的时候会存在文件头的丢失。
- 因为pyc文件都是16进制,所以我们需要一些工具打开进行观察,这方面的可以进行百度,工具一抓一大把,我使用的是Notepad++ 装了一个插件HEX-Editor.
这时候我们选择打开struct.pyc(其他的也可以,主要是用来比较,从而找到正确的文件头)
- 通过对比发现前11个字节是不一样的,这时候我们就把struct.pyc的前11字节替换需要编译的文件开头。(如果复制后发现后面两个字节是变化的,不用管,那是代表时间的。)
- 这时候会有个问题,有些文件的开头是从e3开始的,这时候就直接把前11字节复制到文件头就可以了。
3.2 编译
完成后使用命令uncompyle6 当前文件名.pyc > 保存的文件名.py
这时候文件夹中就会有文件了,这时候就可以看到代码的原始样貌了。
但是这只是一个文件,如果是大项目的话,可能会有很多依赖包,就包括你写的函数。
3.3 寻找依赖包
相关依赖包都在PYZ-00.pyz文件里面。
这时候我们需要使用到 pyi-archive_viewer.py
这个文件在(python环境)\Scripts
里,是需要安装pyinstaller的,没有安装的需要安装一下(已经安装的跳过安装)pip install pyinstaller
安装完成后在将(python环境)\Scripts
添加到环境变量path里面,这样就可以直接在命令行使用了。
使用命令 pyi-archive_viewer.py PYZ-00.pyz
然后就会进入到
然后找到自己想要编译的文件名,在?后输入x 文件名 ,然后回在下一步输入保存的文件名,后缀这里就先写上.pyc,回车之后返回文件夹就会看到相应的文件。
3.4 转换格式
我们需要安装uncompyle6,是一个python库,pip conda都可以。
安装完成后,这在当前目录下使用cmd命令行 输入 uncompyle6 当前文件名.pyc > 转换完成保存的文件名.py
PS:在反编译中发现一个严重的问题,如果在PYZ-00.pyz的需要编译的依赖包非常多,那只能一个个的取出来,非常的SB,开头的文件提取,以及后面的修改文件头、转换格式都是可以编程快速进行的,但是在修改文件头的时候还是出了点问题,后续如果完成了自动化的过程,会再添加到文章中。
python代码反编译相关推荐
- maya python插件_Maya中Python代码插件编译技术视频教程
本教程是关于Maya中Python代码插件编译技术视频教程,时长:16分,大小:45 MB,MP4高清视频格式,教程使用软件:Maya,附源文件,共1个章节,作者:Chayan Vinayak,语言: ...
- C# 代码反编译、代码混淆与加壳工具
最近在开发C#程序,为了保证代码不被破解,经过对比,发现有几款工具很不错.接下来逐个进行介绍. 一.代码反编译工具.NET Reflector 直接查看exe源代码,类似Java的jad.为了防止别人 ...
- 【项目实战】Java代码反编译工具的使用 以及 如何对Java代码进行混淆?
一.背景 现在交付给客户的代码,虽然不是以源码的形式交付,但是还经常会需要进行反编译,如何更好的做到反编译呢?本文探讨的是如何进行反编译的方法. 二. Java代码反编译工具的使用 (1)使用jad ...
- Python代码的编译
Python代码的编译 Python代码在解释执行之前,是会被编译成.pyc或者.pyo文件的,它们是中间字节码表示的文件,之后Python虚拟机才会去解释执行它们. 1.pyc文件 ======== ...
- python防反编译_Python - 浅谈Python的编译与反编译
1 - Python编译过程涉及的文件 py 源代码文件,由python.exe解释,可在控制台下运行,可用文本编辑器进行编辑: pyc 源代码文件经过编译后生成的二进制文件,无法用文本编辑器进行编辑 ...
- python加密反编译_对Python源码进行加密及反编译前后对比
关于python的加密 目前软件开发商对 Python 加密时可能会有两种形式,一种是对python转成的exe进行 保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程. ...
- python so反编译_使用cython把python编译so
1.需求 为了保证线上代码安全和效率,使用python编写代码,pyc可直接反编译,于是把重要代码编译so文件 2.工作 2.1 安装相关库: pip install cython yum insta ...
- python防反编译_用Python和Smali模拟器搞定一个加混淆、防篡改的APK逆向
这个周末我和好友聊天时,他向我求助修改一个他正在编写Python脚本.他试图通过解混淆一个APK,来理解该APK的混淆基址和防篡改保护机制.同我以往的APK逆向过程(dex2jar->jd-gu ...
- vue打包代码反编译_Android逆向反编译代码注入APK过程思路分析
一.名称解释 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密.反汇编.系统分析等多种计算机技术,对软件的结构.流程.算法. 代码等进行逆向拆解和分析,推导出软件产品的源代码. ...
最新文章
- org.springframework.security.web.util.TextEscapeUtils
- 解决TCP网络传输“粘包”问题
- 如何理解Linux shell中的“2>1”(将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出))(尼玛>符号竟然不支持搜索,害我搜搜不到,只能搜)
- 查询GC得到森林里主域和子域的帐号
- C#中Math的使用总结
- centos7 iptables 端口转发 保存_Linux 开发笔记《如何在CentOS 7上启动和启用Firewalld》...
- 一百馒头一百僧,大僧三个更无争,小僧三人分一个大小和尚得几丁?
- 文本分析软件_十大针对机器学习的文本注释工具与服务,你选哪个?
- IP协议(RFC791)-IP包格式
- 【JVM】G1垃圾回收器
- Hadoop原理之——HDFS原理
- python百度文库免券下载
- ssh远程连接服务器常用命令
- python 微信公众号接口之上传图片素材
- python制作热力图_python绘制热力图
- Python——爬取喜马拉雅音频(抖音最火翻唱)
- [Telink泰凌微825x]硬件开发环境搭建(一)
- 量子侦探社之“寻猫记”
- 一些不错的开源代码网站
- vscode提示:“An SSH installation couldn‘t be found”
热门文章
- python毛毛虫点读笔MP4格式MP3格式音频一键提取并命名
- 学习Kotlin~类
- java提取PDF文字坐标
- java字典序最小值_字典序最小问题
- mysql 获取下级_mysql 获取下级成员函数
- 微软全力拥抱 Java !
- CreateFile的OVERLAPPED 与 FILE_FLAG_OVERLAPPED
- android+studio+打不开proj.android,android studio 打不开无法启动解决方法
- R语言(六)——横截面数据分类:机器学习(决策树、SVM、KNN、BP)
- 阿里社招两年前端面经