首页
社区
课程
招聘
[讨论]碰到被VMP过的汇编,有啥好办法吗?
发表于: 2021-1-20 00:10 4698

[讨论]碰到被VMP过的汇编,有啥好办法吗?

2021-1-20 00:10
4698

好像很多人碰到VMP直接绕开……
之前看到过有类似VMP分析插件,不知道靠不靠谱……
目前在分析一款软件,核心部分全部被VMP过了,根本无从下手……

 

不过倒是有一个思路,比较粗暴,就是使用运行跟踪,记录软件不同许可状态的运行汇编记录,找出是哪里开始变化了,这样可以尝试爆破


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 6588
活跃值: (4032)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
厉害啊!一看就知道是大神,想到的思路就是叼。你可以试试看。
2021-1-20 01:12
1
雪    币: 34
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3

你这样就是搞笑了 。。。。 首先 VMP把真实指令虚拟化,一变万,然后用隐蔽方式设置计算
或者变异源代码, -1  变成  + -1 这样 的模式    VM_ADD 指令是里面很关键也是常用的的一个 的变异
你可以尝试 HOOk 了它, 还有几个 如 vm_set , 它通常在第二次读入时候才会真实处理数据

 运行跟踪估计很多人都有过这个想法,你绝对是10000+后了,我早年就接触过VMP,解密过一些,

你的想法是行不通的 。。。。。。。。。。。。。。。

最后于 2021-1-20 03:05 被klxmy编辑 ,原因:
2021-1-20 02:44
0
雪    币: 59
活跃值: (1511)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主可以参考这篇帖子
https://www.52pojie.cn/thread-1304279-1-1.html
2021-1-20 04:05
0
雪    币: 4749
活跃值: (4296)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
它调用api还好分析,它不调用api,完全是自写算法逻辑的话基本很难有解。。。
2021-1-20 09:15
0
雪    币: 4749
活跃值: (4296)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
或许可以尝试用沙箱把所有执行的指令都过滤出来,然后dump出整个内存配合ida分析。
2021-1-20 09:22
0
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
木志本柯 或许可以尝试用沙箱把所有执行的指令都过滤出来,然后dump出整个内存配合ida分析。
假如我知道vm调用了某个系统api,有办法下断点吗?
2021-1-24 00:55
0
雪    币: 7970
活跃值: (4729)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
断点都可以下啊  , 不过vmp你检测int3跟硬件断点, 你可以用地址加+5之类的方式下断 ,基本都可以逃避检测
2021-1-24 02:53
0
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
romobin 断点都可以下啊 , 不过vmp你检测int3跟硬件断点, 你可以用地址加+5之类的方式下断 ,基本都可以逃避检测
我现在基本已经知道了程序是把机器特征收集起来存储到内存(这部分代码被vmp了),之后验证的时候会回来读取,只要我能找到这块内存的位置,改写成自己机器的特征码就能破解掉。。。现在不知道怎么找这块内存地址……大神们有啥好办法嘛
2021-1-24 16:27
0
雪    币: 200
活跃值: (245)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
要看你的目的,目的明确,不管什么哈P都能搞定。
2021-1-24 16:53
0
雪    币: 331
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
早试过了,一条if else语句 vmp::虚拟模式能整30多个跳转.....
2021-2-1 22:54
0
游客
登录 | 注册 方可回帖
返回
//