前往Shuct.Net首页

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

关于反编译的搜索

zend反编译-dezender 使用 - 记录点滴 - 博客频道 - CSDN.NET 记录点滴 目录视图 摘要视图 订阅 新年新气象------CSDN2014新版导航就要跟大家见面了 2014年1月微软MVP当选名单揭晓! “我的2013”年度征文获奖名单已公布 专访宋海涛:我们在做一款比Google Glass更酷的设备 zend反编译-dezender 使用 分类: PHP & Mysql 2012-05-23 21:42 3077人阅读 评论(2) 收藏 举报 zendheaderphpexception算法compiler 网上找了一圈,各种名字的zend反编译软件,核心就是 40,960 字节 的 php.exe。 当时我是从 mmscn.org 上下载到的。论坛上说,php.exe 原创就是 mmscn.org,后来被俄国人偷去了,改名换姓,说是俄国人首发的。作者说的: 原理其实比较简单,网上也有很多介绍。 主要是在php源代码的基础上,在zend_execute_scripts函数中,zend_compile_file与zend_execute之间插入我们的函数,然后把EG(active_op_array)解密并且反编译成源代码。当然,这项工作是比较繁杂的。因为zend optimizer对这个指令数组处理过(主要是优化和加密),并且我们只能通过php源代码和测试案例推测它的处理规律。 php.exe 读入zend 过的 php 文件,经过处理,还原出了源码,但是如果 文件 在zend加密的时候选择了变量、函数、类名 混淆,那么php.exe得到的就是混淆后的名字,一般都是乱码(含有回车、换行等字符),php.exe 为了让还原后的代码可视化,统一把那些混淆的名字进行了base64_encode 处理,处理后的名字有三个字符:= &#43; / 不符合php变量名规范,于是把 = 替换成 \xFF ,把 / 替换成 \x7F ,把 &#43; 替换成 _ 。 大家用winhex 打开 dezend后的文件,就会看到这3个字符。 ---------------- config.ini 的原理: Zend Engine v2.3.0 之前 函数、类、变量的混淆函数算法 是固定的。所以在 config.ini 里放入一些 php的内部函数等字符串, php.exe 执行的时候,从 config.ini 读取这些字符串,然后按照混淆算法处理,得到了其对应的混淆后的&#20540;; php.exe 在反编译理的时候,得到了一个混淆的名字,就可以对应找出其 明文。 这跟其他的字典破解密码的方法一样。 上面是我猜测的,当时在论坛没有看到这方面的说法。 为了验证这点,我把 header 从config.ini 里删掉,然后反编译,文件里对应 header 的位置变成了 _obfuscate_d1x0cApj ,再加回去,再反编译一次,对应位置又变成了 header 。经过测试, config.ini 里的字串大小些没有影响,字串Header,反编译后文件里对应位置是 Header ;字串是 header,dezend文件里对应位置就是 header。 所以收集到的 config.ini 里的字符串越多, 反编译出来的 源码里的 _obfuscate_ 名字就会越少。 ---------------- Mr.Dezend 那个 GUI 在解单个文件时,挺好的,但是如果文件夹里文件数较多时,他就不能列出文件来,待解文件里就一片空白。 用 php 写个程序,遍历全部文件,然后调用php.exe命令行来dezend。 system("d:/dezend/php.exe $file /i /f /tab /stack:160 /string:40960 /level:10-1 /config:d:\\dezend\\config.ini"); /i /f 2个参数一起用,才会读入 config.ini。 说明文档里没有,我是用 文件监视器,监视php.exe运行时,配上不同参数,最后发现加上这 2个参数时, php.exe才读取了 config.ini。 ---------------- 关于怎么得到更多 config.ini 里字串的一个想法: 1、把 反编译后文件里 _obfuscate_ 这样的字串提取出来 2、把 混淆算法弄成 exe文件,输入一个 字符串文件,每行一个字符,然后程序把混淆后的&#20540;跟 我们要求解的进行对比,才有穷举的办法。 3、这样&#20284;乎没什么必要,有那么个力气,自己去改个变量名就足够了。 ---------------- 作者还说: 据我所知,Zend提供的混淆函数(zend_obfuscate_class_name)有Bug,不是严&#26684;的一一对应,也就是说不同的函数名混淆后的名字可能是相同的,我就发现一个。这个文件可能就是这个问题,php说有函数重定义,编译阶段就停止了,反编译就进行不了了。 要是人为了制造这样的情况,那么处理后的文件,目前流出来的这个php.exe 就不能被反编译了。 黑刀 提供php的防反编译服务,说是把源码给他,经他处理后,就可以防止被反编译了,不知道是不是利用的这个原理。 php index.php /i /f /tab /stack:160 /string:40960 /level:10-1反编译的时候,遇到这种异常,不知道是不是这个原因呢。 header( "content-type:text/html;charset=UTF-8" ); session_start( ); set_time_limit( 0 ); error_reporting( E_ALL ^ E_NOTICE ); [exception occured] ================================ Exception code[ C0000005 ] Compiler[ 009A2DA0 ] Executor[ 009A2820 ] OpArray[ 00AABEB8 ] File< E:\index.php > Class< main > Function< main > Stack[ 00145AD0 ] Step[ 7 ] Offset[ 17 ] LastOffset[ 284 ] 17 ADD [-] 0[0] $Tmp_4 - $Tmp_1 - $Tmp_6 如果加上 /r 参数,可以看到 raw op code ,就是纯执行流程,虽然不能还原源码,但是可以看到一些算法。 更多 上一篇:Zend 混淆函数算法 下一篇:2010-11-30 php5.3.3如何支持Zend Guard加密过的页面 顶 0 踩 0 查看评论 * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP Spark HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap 个人资料 gold2008 访问:79215次 积分:1927分 排名:第5474名 原创:102篇 转载:93篇 译文:0篇 评论:45条 文章搜索 文章分类 Vmprotect(30) 脱壳(1) 外挂(2) 破解(2) vc(2) antidump(4) 校验(4) 易语言(1) Armadillo(1) 服务器(22) Safengine(1) 网站(13) 广告(7) PHP & Mysql(37) Winlicense(1) 互联网(4) 文章存档 2014年01月(14)2013年12月(18)2013年11月(3)2013年10月(1)2013年09月(6)2013年08月(8)2013年07月(2)2013年06月(4)2013年05月(5)2013年04月(8)2013年03月(6)2013年02月(16)2013年01月(18)2012年12月(4)2012年11月(4)2012年10月(2)2012年06月(1)2012年05月(75) 阅读排行 破解版 中易广告联盟程序(3938) 破解版 中易广告联盟程序 v6.0(3912) zend反编译-dezender 使用(3077) 今天自己成功拆下了空调外机(2690) sina sae 备案问题(2099) 中药泡脚(1916) php 5.3 跟 zend 3.3 不兼容(1892) 2010.10.02_33vc_Armadillo3.78带Key双进程手动脱壳(1712) office2007 每次打开都要配置(1558) 2011.07.25_33vc_VMP2.0X最新脱壳方法(1551) 评论排行 破解版 中易广告联盟程序 v6.0(18) 淘宝客不允许iframe流量了(6) 破解版 中易广告联盟程序(3) centos 6.3 64位 安装 Xen(3) sina sae 备案问题(2) set_time_limit 不起作用(2) zend反编译-dezender 使用(2) 2010.11.03_ximo_过VMP加壳程序的自效验(vmp 2.06)(1) 禁播平台(1) Linux下的SecureCRT破解方法(1) 推荐文章 最新评论 2011.01.07_ximo_2个脚本(vmp 2.06) u013064372: 试一下,不知道能否使用,先谢谢,感谢共享。 2011.07.25_33vc_VMP2.0X最新脱壳方法 u013064372: 感觉什么也没说啊,能否介绍一下啊,谢谢。 centos 6.3 64位 安装 Xen gold2008: 这个步骤是针对 centos 6.4 64位的,不知道你的是不是32位。 centos 6.3 64位 安装 Xen abinNO1: 你好,请教一个问题我安装centos6.4的xen内核重启的时候报invalid magic num... sina sae 备案问题 zhaixiaohu: 这文章不错啊! Zend 混淆函数算法 chenlunmy006: 那请问如何逆行把混淆的函数还原呢?急需知道,中易_obfuscate_KTkfXSxjHBsOcGt... 微速(微锐) 与 打码工作 u010872986: 好的吧 Linux下的SecureCRT破解方法 gold2008: 这个方法不成功 破解版 中易广告联盟程序 tgbbs520: 写个 reg.php 模拟返回数据,这个代码怎么写 破解版 中易广告联盟程序 v6.0 tgbbs520: 请问,你说那个那个安装注册可以跳过,怎么才能跳过呢?