首页IT科技python解密密文([Python]解密pyc文件)

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

时间2025-05-05 01:12:17分类IT科技浏览4980
导读:公司的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文件加密有什么意义, 为啥要把脑子浪费在这种地方上???

参考:

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

2.uncompyle6 · PyPI

声明:本站所有文章              ,如无特殊说明或标注                    ,均为本站原创发布             。任何个人或组织       ,在未征得本站同意时              ,禁止复制             、盗用                     、采集       、发布本站内容到任何网站      、书籍等各类媒体平台                     。如若本站内容侵犯了原著者的合法权益                    ,可联系我们进行处理       。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win 11开机黑屏(win11系统黑屏怎么办?解决win11黑屏的方法步骤) rabbitmq发送对象(SpringCloud(六) – RabbitMQ安装,三种消息发送模式,消息发送确认,消息消费确认(自动,手动))