位置: IT常识 - 正文

[Python]解密pyc文件(python解密加密文件)

编辑:rootadmin
公司的pyc做了加密, 前段时间研究了一下怎么解密. 最开始的思路是反汇编pypy的dll, 找到import代码的实现, 然后写一个解码的函数. 但是对反编译的东西不熟悉, 想要找到解密的地方比较困难. 最后放弃了这个思路. 后面看到了一篇pyc文件格式的文章, 得知pyc文件其实就是文件头+ma ...

推荐整理分享[Python]解密pyc文件(python解密加密文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python解密加密文件,python密文解密为明文,python解密算法,python加解密文本文件,python解密算法,python 解密,python 解密,python解密密文,内容如对您有帮助,希望把文章链接给更多的朋友!

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

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

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

import marshalcount = 0old_loads = marshal.loadsdef marshal_loads(s): global count pyc_hash = hashlib.md5(s).hexdigest() if pyc_hash in pyc_set: return old_loads(s) pyc_set.add(pyc_hash) count += 1 x = "O_" + str(count) with open("./dumps/%s.pyc" % x, "wb") as f: f.write(base64.b32decode('BLZQ2CR54CUFU===')) f.write(s) print(1, len(s)) return old_loads(s)marshal.loads = marshal_loads[Python]解密pyc文件(python解密加密文件)

然后去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文件加密有什么意义, 为啥要把脑子浪费在这种地方上???

参考:

1.PYC文件格式分析 (kdr2.com)

2.uncompyle6 · PyPI

本文链接地址:https://www.jiuchutong.com/zhishi/304695.html 转载请保留说明!

上一篇:Apache Druid 数据摄取---本地数据和kafka流式数据(apache druid使用)

下一篇:PHPCMS怎么配置https?(phpcms 数据库配置文件)

  • 华为安装应用要密码怎么解除(华为安装应用要改格式)

    华为安装应用要密码怎么解除(华为安装应用要改格式)

  • 苹果12双卡打电话怎么切换(苹果12双卡打电话不能上网)

    苹果12双卡打电话怎么切换(苹果12双卡打电话不能上网)

  • oppo reno 6怎么截屏(oppo reno 6手机怎么截图)

    oppo reno 6怎么截屏(oppo reno 6手机怎么截图)

  • 什么叫短信呼服务(短信呼服务发短信能收到吗)

    什么叫短信呼服务(短信呼服务发短信能收到吗)

  • 华为mate30插u盘没反应(华为mate30插u盘在哪里打开)

    华为mate30插u盘没反应(华为mate30插u盘在哪里打开)

  • 抖音怎么给对方发红包(抖音怎么给对方发微信号码)

    抖音怎么给对方发红包(抖音怎么给对方发微信号码)

  • 怎么设置qq电脑登录不用验证(怎么设置QQ电脑手机同步)

    怎么设置qq电脑登录不用验证(怎么设置QQ电脑手机同步)

  • 华为充电器max40w是什么意思(华为充电器max40w适用于华为什么机型)

    华为充电器max40w是什么意思(华为充电器max40w适用于华为什么机型)

  • mate30卡槽在哪(华为mate30卡槽在哪求图)

    mate30卡槽在哪(华为mate30卡槽在哪求图)

  • 苹果xr怎么开闪光灯(苹果xr怎么开闪光)

    苹果xr怎么开闪光灯(苹果xr怎么开闪光)

  • 抖音的母公司叫什么名字(抖音母公司简介)

    抖音的母公司叫什么名字(抖音母公司简介)

  • 苹果6s分屏怎么设置(苹果6s分屏怎么关闭)

    苹果6s分屏怎么设置(苹果6s分屏怎么关闭)

  • 快手涉及广告一般封多久(快手涉及广告的情况有哪些)

    快手涉及广告一般封多久(快手涉及广告的情况有哪些)

  • 启用gpu调试层有什么用(启用gpu调试层有什么影响)

    启用gpu调试层有什么用(启用gpu调试层有什么影响)

  • cnas认证什么意思(cnas认证什么意思有效期多久)

    cnas认证什么意思(cnas认证什么意思有效期多久)

  • 乘车码可以刷多个人吗(乘车码可以刷多次吗)

    乘车码可以刷多个人吗(乘车码可以刷多次吗)

  • 苹果手机费电怎么解决(苹果手机费电怎么办)

    苹果手机费电怎么解决(苹果手机费电怎么办)

  • 不让微信显示电话号码(不让微信显示电话)

    不让微信显示电话号码(不让微信显示电话)

  • 剪映如何添加歌词(剪映如何添加歌词中英文)

    剪映如何添加歌词(剪映如何添加歌词中英文)

  • 如何在Excel中使用组合框控件(在excel中如何用)

    如何在Excel中使用组合框控件(在excel中如何用)

  • 荣耀20pro有耳机孔吗(华为荣耀20pro耳机插孔在什么地方)

    荣耀20pro有耳机孔吗(华为荣耀20pro耳机插孔在什么地方)

  • 面容id设置不了(苹果13面容id设置不了)

    面容id设置不了(苹果13面容id设置不了)

  • 无法删除文件提示无法读源文件或磁盘(无法删除文件提示怎么办)

    无法删除文件提示无法读源文件或磁盘(无法删除文件提示怎么办)

  • NvMcTray.exe是什么进程 NvMcTray.exe是什么程序(nvm是啥)

    NvMcTray.exe是什么进程 NvMcTray.exe是什么程序(nvm是啥)

  • Linux下设置权限让用户只删除自己的文件的方法(linux设置权限规则)

    Linux下设置权限让用户只删除自己的文件的方法(linux设置权限规则)

  • 教您显示器频率超出范围的解决方法(显示器显示频率设置)

    教您显示器频率超出范围的解决方法(显示器显示频率设置)

  • Zabbix“专家坐诊”第183期问答汇总(专家坐诊信息)

    Zabbix“专家坐诊”第183期问答汇总(专家坐诊信息)

  • 进项税转出的金额含税吗
  • 劳务外包人员算不算从业人员
  • 专家住宿费入什么科目
  • 卖胶卷的店
  • 资产重组的税务筹划
  • 空白增值税报表在哪下载
  • 融资租赁与按揭贷款区别
  • 母子公司之间的管理费可以税前扣除吗
  • 代管商品物资登记制度
  • 个人应纳税所得额 税率
  • 建筑工程属于开票项目吗
  • 维护服务合同可不可以一直续签
  • 一般纳税人能开3个点的专票吗
  • 房地产企业销售现房是否预缴增值税
  • 个体户的定额发票怎么领
  • 公司的班车费用怎么入账
  • 2023增值税免税政策
  • 票据质押后如何行使质权
  • mac app store一直转圈圈
  • 怎么关闭win11安装软件提示
  • Windows 11 Build 22000.176 (KB5006050) 更新推送(附更新内容+安装)
  • 七喜v8笔记本
  • koeids.dll
  • 【修改huggingface transformers默认缓存文件夹】
  • retrorun.exe - retrorun有什么用 是什么进程
  • 跨省经营建筑企业税收政策
  • php include path
  • 申请专用发票怎么申请
  • 集体租赁住房有房产证吗
  • 小微企业所得税税收优惠政策2023年
  • 米尔福德试车场
  • php判断密码长度
  • 受托方代扣代缴的消费税计入什么科目
  • 动静结合会计等式的不会重复算利润吗
  • 云E办接口文档
  • Apsara Clouder云计算技能认证
  • typescriptlang
  • audit.exe
  • 外贸企业出口退税申报流程
  • 个人终止投资经营的条件
  • 本期到期债务计算公式
  • 使用xampp建立www服务
  • 修改Dede默认投票代码 防止Request Error错误
  • python计算集合交集并集个数
  • 新公司建账初始数据
  • 差旅费报销金额大于实际发生金额
  • 哪些收入需要缴纳个人所得税
  • 收到保证金怎么做会计分录明细
  • SqlServer 2005 T-SQL Query 学习笔记(2)
  • sqlserver启动不起来
  • 企业收到宣传费怎么做账
  • 合同取得成本和销售费用
  • 专项应付款在借方
  • 进项税额转出后续处理
  • 法人私户转公户备注什么
  • 其他应收款贷方余额怎么调整
  • 银行流水账单怎么删
  • 安装sql2000sp4提示挂起
  • mac如何设置默认打开程序
  • freebsd服务器搭建
  • u盘制作winpe启动盘
  • macbookpro登陆
  • 升级win8.1后vpn出现错误720该怎么办?
  • opware12.exe - opware12进程是什么文件 有什么用
  • win7小技巧
  • win7系统电脑开热点
  • 学习名言警句 励志
  • unity打包安卓apk
  • javascript中attribute和property的区别详解
  • nodejs child_process
  • 读长沙师范学院收费多少钱
  • javascript运用
  • 20行的python编程题
  • javascript零基础
  • 上海地铁直接刷银联卡
  • 如何下载成品油库存
  • 工会经费管理办法2021
  • 西安市人力资源和社会保障局关于2020年
  • 江苏省国税客服电话
  • steam充值码生成
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设