前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

python 反编译 pyc 一些心得 - ice - ITeye技术网站 首页 资讯 精华 论坛 问答 博客 专栏 群组 更多 ▼ 招聘 搜索 您还未登录 ! 登录 注册 ice 博客 微博 相册 收藏 留言 关于我 wcf1987 python 反编译 pyc 一些心得 博客分类: pythonhacker 0x01 , 现在用python的人也多了起来,代码安全始终是我们要考虑的问题,比如说我们要将我们的成果发布出去,py直接发布肯定是不行的(除非你是开源的),那么我们就只能考虑发布pyc文件了, ? ? 0x02,今天讨论的就是怎么反编译pyc到源代码的技术,从道理上来讲,这个是完全没问题的,而且反编译出来的代码质量应该相当高才对(参考java class的原理),在百度里面搜索的话,信息量不够,只有2.2以下版本的反编译 ? 0x03 ,利用google的话有个短小的讨论比较有含金量? http://stackoverflow.com/questions/8189352/decompile-python-2-7-pyc ? 他提出了几个开源的反编译实现,其中比较知名的是uncompyle,经过git查询我们可以发现uncompyle2这个是一个基于uncompyle的加强版本,所以可以考虑使用这个 ? 0x04?https://github.com/wibiti/uncompyle2 ? 下载,安装 ??python setup.py install?没什么好说的 ? ? 0x05 安好后怎么用呢,这里要注意,文档写的不详细,实际上是去找python目录下/Scripts/uncompyle2 文件执行,其实打开 uncomple2就可以看到这个实际上是个py文件,具体参数 -h可以看到 ? 0x06 给大家一个我写的小py可以减少些手动工作 ? import os import sys def displayFile(file): unPath= sys.executable unPath=unPath[ 0 : unPath.rfind( os.sep ) ] newname = file[0:file.rfind('.')] + '.py' command = "python -u "+unPath+"\scripts\uncompyle2 " + file + ">" + newname try: os.system(command) except e: print file if __name__ == '__main__': #print unPath print 'init' displayFile('E:\\test.pyc') print 'finished' ? 0x07 有经验的py程序员会在发布程序的时候修改pyc的头8个字节,这8个字节是有特殊含义的 四个字节的magic number 四个字节的timestamp 头四个是magic number 很多pyc都在这个上面做文章,这修改成不合法的,然后你反编译就是败了,一板你可以找你自己编译成功的pyc头直接覆盖掉他的头8个字节就可以了, timestamp是文件的修改时间,主要是当源码有改变的时候python 就可以重新生成pyc 文件. 我说的比较简单,详细的可以看看这个http://www.iteye.com/topic/382423 ? 分享到: <找工作一>CPU使用率像sin一样 | 关于web渗透中得一些记录 2012-09-06 10:59 浏览 4886 评论(0) 分类:编程语言 相关推荐 评论 发表评论 您还没有登录,请您登录后再发表评论 wcf1987 浏览: 139805 次 性别: 来自: 西安 最近访客 更多访客>> dylinshi126 whl717247746 yangjunlyy kenny2471 文章分类 全部博客 (141) web自动化测试 (6) java (35) struts (7) 工作感想 (0) 心情随笔 (2) 驱动开发 (4) 算法 (10) 数据库 (24) linux (9) Web前端 (12) C# (1) 页面前端 (5) hacker (53) python (12) android (12) XSS (1) 社区版块 我的资讯 (0) 我的论坛 (2) 我的问答 (0) 存档分类 2013-10 (4) 2013-05 (1) 2013-04 (1) 更多存档... 评论排行榜 python调用 bing api search接口 技术 CVE-2013-1493 学习 最新评论 pdsljlj: android 4.1.2 以上好像是不能用的 android 无权限 伪造短信 youyoufufu: 1楼错误,原因在于工程属性里,要“order and expo ... android邮件发送几种方式 qian546000: icefish大神,为什么短信的内容如果是中文的话,就会出现异 ... android 无权限 伪造短信 qi19901212: 三楼的神武? 厉害。第三种我运行出现java.lang.NoC ... android邮件发送几种方式 ljy520zhiyong: ????? sql 多行合并问题 zt 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。若作者同意转载,必须以超链接形式标明文章原始出处和作者。 &copy; 2003-2012 ITeye.com. All rights reserved. [ 京ICP证110151号 京公网安备110105010620 ]