12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 249|回复: 0

【原创】PHP 魔方一代加密 逆向调试过程笔记外加讨论

[复制链接]

49

主题

49

帖子

108

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
108
发表于 2020-7-7 20:54:55 | 显示全部楼层 |阅读模式
新人第一次发帖,有啥违规的地方麻烦各位指出一下,我看到了一定立马修改。
首先感谢@Ganlv 大大的教程给了我思路,输出伪汇编代码再分析,让逆向工作从不停的下断点调试中解脱出来。
咳、其他的感谢词就不说了,小子在这里给各位坛友拜个小年,祝各位坛友在新的一年里学习日益精进,生活美满团圆。

0x0 开整。
首先拿到了个样本文件:样本.zip
解压打开后发现全是乱码,遂上php-parser,用的format脚本是这一个:
[PHP] 纯文本查看 复制代码"""header_info = header_info.replace('{json_data}', json_data).replace('{var_list}',', '.join(list(var_dict)[0:-1])).encode()with open(php_file_path[:-3]+'decode.php', 'wb') as f:    f.write(header_info)    f.write(temp_file)
如果电脑上没装python3环境的话得装一个,之后运行
[Shell] 纯文本查看 复制代码python parser.py
然后输入上面格式化好的PHP文件路径回车即可生成以.decode.php结尾的修复好变量名并劫持了eval到自定义函数s_eval的文件。
用编辑器打开这个文件,里面被编码的那段虚拟机内运行的代码依然是乱码,这里可以切换文件编码到ISO 8859-1来编辑,npp修改的方式如下图:


这个文件内有两个VM,我们现在只研究第一个VM,因此第二个函数内的VM相关变量代码都可以删掉。之后到第一个VM那段乱码的下面一行加入file_put_contents('pec.vmc',$_var_6);,把虚拟机内部执行的代码另存为出来,之后修改文件,删掉判断VM内执行代码是否加载的部分并美化,即可得到下面的文件:
初步处理后的文件.zip

之后便可以开始研究了。
在程序代码中咱们可以找到这样一句明文:KIVIUQ VIRTUAL MACHINE ERROR : Access violation at address ,于是咱便可以搜索这一句话里面的前几个词找到一个别人破解的资料,但是他的那个代码感觉写的有点不好,而且弄的很乱,因此咱们可以参照他的研究结果按照自己的喜好修复变量名变可读,以及将相关部分自行实现,完成自己的需求。

通过阅读switch可得知,case 1,2,3的时候实际上是设置临时变量数值,a是pop,b是花指令,c是push null,d是啥没搞懂,e是将字符串变为函数指针,f是push 字符串到$memory,emmm这段我可能说的不大明白,因此我建议您对照底下我修改完成的的调试代码来理解。
因为在虚拟机运行过程中程序没有输出,因此我们要在各个地方插桩输出日志,因此理解了各个case是干啥的再在对应的地方设置一下就好了。

[PHP] 纯文本查看 复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-5-19 02:06 , Processed in 0.088867 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表