位置: 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 数据库配置文件)

  • 一般增值税怎么开票的
  • 民营医院的财务管理制度
  • 小微企业一般要交什么费用2019
  • 增值税发票记账联要盖章吗
  • 发票专用章盖在收据上有法律效益
  • 分公司企业所得税分配比例
  • 进口增值税和进项税
  • 开票金额比实际金额多
  • 企业会计一般做什么
  • 购买货物运送运费怎么算
  • 现金比率的计算公式是指
  • 个人持有原始股要交税吗
  • 合伙企业缴纳税款时间
  • 企业少报收入
  • 工商营业执照变更流程
  • 租金小规模开票税率
  • 公司购买的商品给别的企业用了,企业所得税能列支吗
  • 税收编码更改的依据是什么
  • 固定资产处置计算公式
  • 1697508301
  • 非企业性单位包括哪些单位
  • 应收账款的账面余额公式
  • 拨号的用户名
  • windows11咋样
  • 营改增后建筑业怎么开票
  • pddocument.load
  • php中cookie和session的区别
  • 代办退税账务处理
  • 特许权使用费属于销售收入吗
  • 生育津贴如何做账
  • 国有土地使用证到期了怎么办
  • phpopendir
  • 微信红包如何发出去
  • 生产成本制造费用怎么算
  • node.txt
  • 两险征缴工作的意义
  • 月底库存现金不足怎么办
  • node.js安装步骤
  • 最强大的人工智能武器
  • vue组件教程
  • 固定资产无形资产计提折旧是当月还是次月
  • 存货的会计核算及业务处理
  • 营业执照如何申请移出异常
  • 车费增值税税率
  • 预存电费余额怎么突然多了
  • 劳务外经证预缴税款
  • mysql有几种基本数据类型
  • 企业出租的存货包括
  • 内账收入和成本怎样做
  • 收外汇是一定要交税吗
  • 现金流量表年报本期金额和上期金额
  • sql server 2008全称
  • 资产负债表应收账款期末余额公式
  • 在建工程和预付账款怎么转化
  • 月末在产品生产成本会计分录
  • 资产减值准备怎么理解
  • 公司送礼怎么记账
  • 价税分离购销合同模板
  • 公司员工支出
  • 其他债权投资有没有减值准备
  • 百旺金赋开票系统图标
  • 收付实现制和权责发生制的主要区别是确认
  • sqlserver临时表 效率
  • sql语句的高级用法
  • win8.1系统安装教程
  • linux开机启动ftp
  • windowsqq截屏
  • win10周年纪念版
  • win7创建密码后为什么还是没有密码
  • linux硬盘io
  • 代码结构说明书
  • excel怎么添加动态图
  • 面向对象实例化
  • 参数传递的方式有几种?有什么区别?
  • javascript简单代码
  • js轮播图视频教程
  • 今天百度汉语
  • 国家对供暖企业更换主管道有没有年限?
  • 城市维护建设税怎么算
  • 服务承诺口号八个字
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设