不知道在哪留言了,就这吧先
Closed this issue · 3 comments
最近拜读了大佬的zym乱码调试这篇文章
不才,我找了一个样本进行了一番尝试
最后发现好像是二次混淆了,我自己尝试的结果总是还有部分代码没还原回来
不知道大佬可否不吝赐教
过程中我尝试打开错误提示运行原始代码,会提示函数未定义 "die"
后用php_parser转换,得到的文件直接调试会报错
不知道是不是因为php_parser转换过程丢了东西
注释掉报错的语句后可以正常调试,最后没有还原到原始代码
其实我更想知道这些字节码是如何整理成算法的、、、
我用vscode调试的时候大部分函数都看不到名字
可能是我太菜吧
睡了2019年6月12日00:53:07
又尝试了一上午,最终还原了代码
自论坛文章后,原作者看起来应该是改良了算法
原有的二次gzcompress跟base64编码都去掉了
反而加密了中文字符跟一些常见内置函数名
在最后的eval中直接调用了解码函数在内存中还原了代码
故沿着本身算法还原后还会有乱码
最后用了str_replace等一系列彩笔字符串替换函数还原了代码
最后还是感谢大佬的文章给了我灵感
谢谢
如果用 PHP-Parser 的话最好用专业点的调试器,比如在 PhpStorm 中调试,看着能方便点。
就我目前来看,php parser 不会出问题,他的语法分析器还是很靠谱的。
如果用 PHP-Parser 的话最好用专业点的调试器,比如在 PhpStorm 中调试,看着能方便点。
就我目前来看,php parser 不会出问题,他的语法分析器还是很靠谱的。
我又来了、、、
今晚研究的题目是魔方1
不是很懂虚拟机
如果原始文件是对其他文件有依赖的话这时候该怎么处理这个文件?
直接运行目标文件的话会提示依赖的函数未定义
抱歉我表达能力不太好
a文件依赖b文件里的B函数
魔方的加密方式不像zym那样是代码还原后执行
所以运行原始文件的时候就已经报错了,这个时候该怎么解决呢?
原来是我理解错误。。。
后面尝试发现格式化得到的func_map 中decode参数是空白
尝试debug、、
整明白了 以我现在的水平还造不出来这个指令集
歇菜了、、
打扰了、、、