美文网首页
某数vmp版本

某数vmp版本

作者: 周周周__ | 来源:发表于2022-09-17 22:53 被阅读0次

经过和几位大佬的讨论某数vmp终于成了。


图片.png
借用Nanda说的

检测流程极大改变了,虽然一些设计还是和原来相似,但是即使熟悉之前版本的逆向套路,也对本版本的逆向帮助不大。
Nanda文章链接https://mp.weixin.qq.com/s/i9PsUy29hb_MiLOnW4wvmQ

八位数组和四位动态数组不会讲的,佬们不用过于在意水文章

1、固定套路

和之前一样,同样是202-200
vm内部的代码最恶心的还是三目表达式吧
推荐学习菜老板的星球处理下三目或者直接用哲哥的AST框架进行简单还原
还原后的代码最起码好调试了。
call处下断点,注意下这几个值

图片.png

2、VMP固定调试套路

1、打断点
2、找变量
3、向上追位置

图片.png
1、声明全局变量mub_z
2、核心vmp逻辑在上图通过[2];进行慢速定位
3、在vmp内num_z+1 进行统计进入vmp次数
4、确定变量,进行日志输出
日志两比较大,所以通过if判断来阶段性进行控制日志输出,不然电脑垃圾扛不住。
输出四个变量最后一个是控制数组的长度(上图_$aZ._$gR),我们用来确定第几次进入vmp
(vmp无限套娃式,可以通过这个值简单知道它对的堆栈,很重要哦)

3、定位跟踪

通过hook cookie 可以定位到最短ck的生成位置。大概在 num_z>1300+的位置
不上图了,咱讲道理。
这几步比较简单,可以知道数组是用过160位的数组生成的,他家传统,玩数组。
就这么一步一步的往上跟吧。没了

4、你猜是啥

经典的四位数组通过上几代的经验,大佬们还是可以根据经验猜的。往大胆了猜就行。
八位数组怎么玩,确实很难理顺,既然搞不定,那就搞定它。
控制[0,1,2,3,4,5,6,7]变成[x,x,x,x,x,x,x,x]的过程
需要从开始进入这个vmp流程的数组(上图_$aZ._$gR)说起

[50,56,13,2,23,0,56,13,3,33,3,47,63,23,39,57,14,62,13,33,2,33,3,33,3,56,30,13,3,24,43,23,33,2,60,46,20,33,2,23,0,22,77,33,2,40,46,8,55,56,30,33,2,23,0,57,47,63,23,59,57,35,62,33,33,2,23,1,22,78,33,2,40,46,9,55,56,30,33,2,23,0,33,2,23,1,57,33,2,40,46,10,0,56,30,29,14,33,2,23,1,22,79,33,2,40,46,10,55,56,30,23,0,56,13,3,33,3,47,63,23,39,57,14,62,51,33,2,33,3,57,23,0,14,62,12,33,2,33,3,33,2,33,3,57,104,56,30,33,2,33,3,57,47,63,23,40,57,35,62,11,33,2,33,3,47,63,23,40,57,56,30,13,3,24,43,61,33,2,37]

他是固定的。他就是用来生成八位数组的过程
1、从这里去分析进入它下一步套娃的vmp的数组从哪里来
从哪里来到哪里去,建议多搞几份样本进行分析,每次都有新发现
2、分析这些数组中的每一个值控制的逻辑是干嘛的
(如 37是结束当前vmp,56是替换数组前两位的值 and so on
3、每次在每个vmp跳转的过程中,他们共享的变量是怎么进行传递的

提醒 全局搜[265] 断住 argument就是八位数组刚开始生成进行修成正果的时候。

么了

相关文章

网友评论

      本文标题:某数vmp版本

      本文链接:https://www.haomeiwen.com/subject/tbieortx.html