反编译代码

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代码反编译相关推荐

  1. maya python插件_Maya中Python代码插件编译技术视频教程

    本教程是关于Maya中Python代码插件编译技术视频教程,时长:16分,大小:45 MB,MP4高清视频格式,教程使用软件:Maya,附源文件,共1个章节,作者:Chayan Vinayak,语言: ...

  2. C# 代码反编译、代码混淆与加壳工具

    最近在开发C#程序,为了保证代码不被破解,经过对比,发现有几款工具很不错.接下来逐个进行介绍. 一.代码反编译工具.NET Reflector 直接查看exe源代码,类似Java的jad.为了防止别人 ...

  3. 【项目实战】Java代码反编译工具的使用 以及 如何对Java代码进行混淆?

    一.背景 现在交付给客户的代码,虽然不是以源码的形式交付,但是还经常会需要进行反编译,如何更好的做到反编译呢?本文探讨的是如何进行反编译的方法. 二. Java代码反编译工具的使用 (1)使用jad ...

  4. Python代码的编译

    Python代码的编译 Python代码在解释执行之前,是会被编译成.pyc或者.pyo文件的,它们是中间字节码表示的文件,之后Python虚拟机才会去解释执行它们. 1.pyc文件 ======== ...

  5. python防反编译_Python - 浅谈Python的编译与反编译

    1 - Python编译过程涉及的文件 py 源代码文件,由python.exe解释,可在控制台下运行,可用文本编辑器进行编辑: pyc 源代码文件经过编译后生成的二进制文件,无法用文本编辑器进行编辑 ...

  6. python加密反编译_对Python源码进行加密及反编译前后对比

    关于python的加密 目前软件开发商对 Python 加密时可能会有两种形式,一种是对python转成的exe进行 保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程. ...

  7. python so反编译_使用cython把python编译so

    1.需求 为了保证线上代码安全和效率,使用python编写代码,pyc可直接反编译,于是把重要代码编译so文件 2.工作 2.1 安装相关库: pip install cython yum insta ...

  8. python防反编译_用Python和Smali模拟器搞定一个加混淆、防篡改的APK逆向

    这个周末我和好友聊天时,他向我求助修改一个他正在编写Python脚本.他试图通过解混淆一个APK,来理解该APK的混淆基址和防篡改保护机制.同我以往的APK逆向过程(dex2jar->jd-gu ...

  9. vue打包代码反编译_Android逆向反编译代码注入APK过程思路分析

    一.名称解释 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密.反汇编.系统分析等多种计算机技术,对软件的结构.流程.算法. 代码等进行逆向拆解和分析,推导出软件产品的源代码. ...

最新文章

  1. org.springframework.security.web.util.TextEscapeUtils
  2. 解决TCP网络传输“粘包”问题
  3. 如何理解Linux shell中的“2>1”(将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出))(尼玛>符号竟然不支持搜索,害我搜搜不到,只能搜)
  4. 查询GC得到森林里主域和子域的帐号
  5. C#中Math的使用总结
  6. centos7 iptables 端口转发 保存_Linux 开发笔记《如何在CentOS 7上启动和启用Firewalld》...
  7. 一百馒头一百僧,大僧三个更无争,小僧三人分一个大小和尚得几丁?
  8. 文本分析软件_十大针对机器学习的文本注释工具与服务,你选哪个?
  9. IP协议(RFC791)-IP包格式
  10. 【JVM】G1垃圾回收器
  11. Hadoop原理之——HDFS原理
  12. python百度文库免券下载
  13. ssh远程连接服务器常用命令
  14. python 微信公众号接口之上传图片素材
  15. python制作热力图_python绘制热力图
  16. Python——爬取喜马拉雅音频(抖音最火翻唱)
  17. [Telink泰凌微825x]硬件开发环境搭建(一)
  18. 量子侦探社之“寻猫记”
  19. 一些不错的开源代码网站
  20. vscode提示:“An SSH installation couldn‘t be found”

热门文章

  1. python毛毛虫点读笔MP4格式MP3格式音频一键提取并命名
  2. 学习Kotlin~类
  3. java提取PDF文字坐标
  4. java字典序最小值_字典序最小问题
  5. mysql 获取下级_mysql 获取下级成员函数
  6. 微软全力拥抱 Java !
  7. CreateFile的OVERLAPPED 与 FILE_FLAG_OVERLAPPED
  8. android+studio+打不开proj.android,android studio 打不开无法启动解决方法
  9. R语言(六)——横截面数据分类:机器学习(决策树、SVM、KNN、BP)
  10. 阿里社招两年前端面经