[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)

大家都在看

  • 【Python】虚拟环境的解释、意义和用法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 在解释虚拟环境是什么之前,我们首先要知道什么是环境。 这里的环境,指的就是 Python 代码的运行环境。它应该包…

    Python 2023年8月6日
    044
  • scrapy-pipeline数据写入excel-openpyxl

    pipelines.py from pydispatch import dispatcher from scrapy import signals from openpyxl im…

    Python 2023年10月3日
    041
  • sensor_msgs::Image消息及其参数

    很多的博客直接将原网址复制粘贴过来,这里做一个整理,另外原网址是:https://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/…

    Python 2023年10月8日
    047
  • 目标检测->SSD算法

    目标检测算法总体分为:基于区域的算法和基于回归的算法 1)基于区域的算法: RCNN, Fast RCNN, Faster RCNN, Mask RCNN 等。整个检测过程分为两个…

    Python 2023年9月28日
    047
  • CSS Flexbox 布局

    Flexbox(弹性盒子)是 CSS3 中引入的一种强大且兼容性好的布局方法。使用 flexbox,可以很容易地处理好页面上的元素布局,并创建可以自动缩小和放大的动态用户界面。 只…

    Python 2023年6月9日
    086
  • pytest:接口测试用例封装

    1 前言 默认情况下, pytest会查找test开头或结尾的module, Test开头的class, 以及test开头的方法 于是我们可能会给某个功能定义一个module或者c…

    Python 2023年9月10日
    047
  • pandas—删除某行或某列数据

    首先,创建一个DataFrame格式数据作为举例数据。 data = {‘a’: [‘a0’, ‘a1’, ‘a2’], ‘b’: [‘b0’, ‘b1’, ‘b2’], ‘c’:…

    Python 2023年8月2日
    074
  • Python常用小技巧总结

    Pandas数据分析常用小技巧 数据分析中pandas的小技巧,快速进行数据预处理,欢迎点赞收藏,持续更新,作者:北山啦 文章目录 Pandas数据分析常用小技巧 Pandas小技…

    Python 2023年8月19日
    043
  • Python网络爬虫笔记11:Scrapy的使用

    1 安装scrapy 安装命令: pip install scrapy 安装完成后,在控制台输入命令 scrapy bench;不报错则表示安装成功。 windows下安装时,可能…

    Python 2023年10月5日
    052
  • 2016 ZCTF note3:一种新解法

    2016 ZCTF note3:一种新解法 最近在学习unlink做到了这道题,网上有两种做法:一种是利用edit功能读入id时整数溢出使索引为 -1,一种是设置块大小为 0使得写…

    Python 2023年10月20日
    042
  • 基本数据类型概述

    思考,是上面的苹果堆好处理(运输,存储,加工)还是下面有包装的苹果好处理。 什么是数据类型 数据类型简单的理解,其实就是为了方便处理(传输,存储,运算)数据,对数据做的包装,不同的…

    Python 2023年11月1日
    040
  • 手写一个词云图生成器,可调形状,可调背景颜色,可调字体色系

    词云图生成器 今天有兴趣帮朋友做了一个词云图生成器,感觉还挺有意思的,放出来给大家玩玩。 1、程序下载地址 链接:https://pan.baidu.com/s/17IICPmFP…

    Python 2023年8月8日
    067
  • 列数据种类数量统计

    列数据种类数量统计 主要基于pandas的unique函数这个函数是为了方便分析数据的时候写出来的一个想法(大佬轻喷) 数量统计函数的代码 def Catg_stati(array…

    Python 2023年8月8日
    059
  • 【Django】Ubuntu中配置Django环境

    文章目录 ​ 一,创建django虚拟环境。 * 1,创建python虚拟环境 2,创建django项目。 3,配置远程连接 4,下载项目文件 5,Django项目配置 &#821…

    Python 2023年8月3日
    071
  • Qt Quick中控件的定位

    参考文档:​​https://doc.qt.io/qt-6/qtquick-positioning-topic.html​​ 几种定位方式 绝对定位(通过设置x,y的值) 相对定位…

    Python 2023年5月24日
    082
  • 开源云真机平台-Sonic应用实践

    前言 Sonic是一款开源、支持分布式部署、在线自动化测试的私有云真机平台。偶然接触到这个平台是源于虫师的一篇公众号文章《基于Linux 部署 Sonic》,于是结合文章内容和官网…

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