[Python]解密pyc文件

公司的pyc做了加密, 前段时间研究了一下怎么解密.

最开始的思路是反汇编pypy的dll, 找到import代码的实现, 然后写一个解码的函数. 但是对反编译的东西不熟悉, 想要找到解密的地方比较困难. 最后放弃了这个思路.

后面看到了一篇pyc文件格式的文章, 得知pyc文件其实就是文件头+marshal编码后的python vm字节码, 所以尝试了hook一下marshal.loads

然后去import那个pyc, 他自己修改过的python解释器会先解码加密过的pyc文件, 然后再走到marshal.loads, 这时候已经不是加密的内容, 所以我们可以加一个标准的pyc头重新组装成一个pyc, 只是不清楚当前这段bytes是哪个pyc文件的, 这个不是很重要, 反正所有import到的模块都会被dump出来.

下来用uncompyle6反编译就行了. 反编译出来的代码, 头部会标明自己是哪个模块, 再写一个脚本重新rename一下, 就可以了. 不过有少数代码会反编译失败.

文中那个’BLZQ2CR54CUFU===’ magic number, 应该是我随便找了一个正常的pyc文件, 应该是python 2.7的, 如果是python 3的话, 找一个正常的pyc文件看看, 替换一下就行了.

最后吐槽一下, 把pyc文件加密有什么意义, 为啥要把脑子浪费在这种地方上???

参考:

Original: https://www.cnblogs.com/egmkang/p/16857353.html
Author: egmkang
Title: [Python]解密pyc文件

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/808555/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Numpy系列(二):数组函数ufunc

    Numpy系列目录 文章目录 一、 简介 二、 思维导图 三、 Numpy数组函数 * 1. 基本运算 – 1.1 四则运算 1.2 比较运算 1.3 布尔运算 1.4…

    Python 2023年8月29日
    086
  • 【Python】Matplotlib绘制折线图

    文章目录 * – + 1.Matplotlib画图简单实现 + 2.折线图 + * 2.1绘制折线图 * 2.2设置线的格式 * 2.3设置折点 * 2.4.图片的保存…

    Python 2023年8月30日
    099
  • numpy.unique()函数

    该函数的调用方法: numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, …

    Python 2023年8月29日
    059
  • matplotlib的使用教程

    一:介绍matpplotlib matplotlib是一款 命令式、较底层、可定制性强、图表资源丰富、简单易用、出版质量级别的python 2D绘图库。Matplotlib可以画图…

    Python 2023年8月31日
    0108
  • python贪吃蛇游戏设计答辩_python编写贪吃蛇游戏

    关于编写游戏,是博主非常向往的东西(博主喜爱游戏),编写游戏得一步一步的走!今天我简单的编写一下非常经典的游戏贪吃蛇!!!! 效果图: 首先引入pygame模块 pip insta…

    Python 2023年9月22日
    094
  • flask学习笔记

    Flask学习目录 入门 * 创建一个flask项目 Jinja – 渲染模板 宏 模板继承 基础语法 路由 – 重定向 url构建 404 基础 * Bo…

    Python 2023年8月14日
    062
  • 功能强大的国产API管理神器 Eolink,亲测好用

    目录 * – 前言 – 一、Eolink 工具介绍 – + 1.Eolink是什么 + 2.Eolink独创的DTDD + 3.API 全生命周…

    Python 2023年9月30日
    089
  • python中blit的意思_在python中,如何在特定图像的区域内blit图像?

    如果你能解释一下你想做什么会更好,因为它会给你更多的答案:) 根据我的理解,你想把一个图像放到另一个图像上: 为了使此代码起作用,设置了以下前提条件:包含程序的文件夹还包含名为te…

    Python 2023年9月20日
    0117
  • Python图像处理丨5种图像处理特效

    摘要:本篇文章主要讲解了图像常见的特效处理,从处理效果图、算法原理、代码实现三个步骤进行详细讲解,涉及图像素描特效、怀旧特效、光照特效、流年特效、图像滤镜等。 一.图像素描特效 图…

    Python 2023年10月15日
    076
  • Python中stack和unstack函数(附加reset_index,set_index函数)

    一、介绍 在用pandas进行数据重排时,经常用到stack和unstack两个函数。 stack的意思&…

    Python 2023年8月8日
    098
  • scrapy重试机制_第七章 第二节 分布式库scrapy-rabbitmq-scheduler

    如果觉得文章对您产生帮助的话, 欢迎关注Python开发之路(微信公众号: python-developer ), 及时获取更多教程 redis本身对消息队列的支持不是很强, 所以…

    Python 2023年10月3日
    087
  • python的索引与切片

    目录 1.一维数组的索引和切片 1.二维数组的索引和切片 在python的学习过程,有些同学对索引和切换会感到困惑,今天我们就来弄清楚它。 1.一维数组的索引和切片 如下图所示,该…

    Python 2023年8月26日
    091
  • Springboot内置的工具类之CollectionUtils

    前言 实际业务开发中,集合的判断和操作也是经常用到的,Spring也针对集合的判断和操作封装了一些方法,但是最令我惊讶的是,我在梳理这些内容的过程中发现了一些有趣的现象,我的第一反…

    Python 2023年9月26日
    076
  • 多个dataframe的列合并与行合并

    根据时间索引合并列 将多个数据表,以时间为索引,并选取需要分析的列进行合并。在本文中,拿到的数据是同一时期的不同设备的特征数据,需要提取对应的列进行时间合并,在合并过程中存在以下问…

    Python 2023年8月16日
    073
  • Python矩阵运算(不使用库)

    矩阵乘法 矩阵乘法中,需要判断两个矩阵是否可以进行相乘,即前一个矩阵的列是否等于后一个矩阵的行。具体代码如下: class Solution: def multiplyofmatr…

    Python 2023年8月26日
    053
  • windows使用pip安装Scrapy

    一、下载Twisted插件 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 点击下载地址后按ctrl+f组合键,搜…

    Python 2023年10月4日
    066
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球