首页
社区
课程
招聘
[原创] 人肉跟踪VMProtect入口至出口运行全过程(1)
发表于: 2017-8-25 17:44 18047

[原创] 人肉跟踪VMProtect入口至出口运行全过程(1)

2017-8-25 17:44
18047

·
·

跟vmp正面刚的起因是想自己实现一个ARM VMProtect的保护软件,
作者在查阅了大量资料以后还是不太理解 VMProtect 到底是怎么实现的,
·
·
·
·
终于意识到没有扎实分析过 VMProtect ,
只停留在看别人分析的臆想阶段,
是不可能理解VMProtect的。
所以下定决心耐心分析,
追随大佬们的脚印前行,
也开始自己为技术疯狂的年月。
·
·
·
·

是使用vmp v2.04 虚拟难度下的最快速度(所有都不勾选)设置,
对一条mov eax,0x77指令加保护的最简单样本,
从头到尾跟踪完这个样本,就理解 VMProtect的入口出口,虚拟寄存器、虚拟栈。
分析记录无视了一些并非新手最应该关注的细节,
分析过程不保证完全准确,甚至有一些错误,希望大家能理解。
·
·
·
·

pdf和rar中是本菜跟vmp初次正面交锋全过程记录,
逐条人肉记录了指令执行的每一次堆栈和寄存器变化,
争取追究每个细节,过程写的详细而罗嗦,比较费时间,
不适合高手看,不适合没时间的人看,适合想写出vmp的新手看。
·
·
·
·

可以看贴子中提炼后的重点内容和附件.xlsx。
希望对写vmp感兴趣但一知半解的人有所帮助。
·
·
·
·

建议动手调试vmp样本前,
最好看过其他一些几篇文章,对vmp有一个初步的认识。-_-!!

https://bbs.pediy.com/thread-139586.htm

https://www.tuicool.com/articles/bIFrMz

http://www.mottoin.com/87374.html

https://bbs.pediy.com/thread-121412.htm
·
·
·
·
————————————————————————————————————————————————————————

" 用Excel颜色标记出_VMProtect样本Trace的内容的结构.xlsx ",

·
·
·
·


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-1-23 11:40 被爱吃菠菜编辑 ,原因:
上传的附件:
收藏
免费 2
支持
分享
最新回复 (21)
雪    币: 3738
活跃值: (3872)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
感谢分享!
2017-8-25 18:20
0
雪    币: 10
活跃值: (923)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
腻害~~
2017-8-25 19:11
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
SIP
4
虽然看不懂但是真的很好
2017-8-25 20:05
0
雪    币: 1269
活跃值: (131)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
5
详细记录,值得下载学习,谢谢分享
2017-8-25 20:09
0
雪    币: 2296
活跃值: (6668)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
6
Mark一下总是好的
2017-8-25 20:51
0
雪    币: 375
活跃值: (201)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
期待楼主的后续文章
2017-8-25 20:55
0
雪    币: 6584
活跃值: (4541)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
8
收藏备用
2017-8-25 21:21
0
雪    币: 133
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
很详细,学习了
2017-8-25 22:48
0
雪    币: 135
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
期待楼主的后续文章
谢谢分享
2017-8-26 00:08
0
雪    币: 30
活跃值: (760)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
写得很详细  ,楼主费心了  谢谢
2017-8-26 10:32
0
雪    币: 15
活跃值: (27)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
学习了,写的很好
2017-8-26 14:38
0
雪    币: 14714
活跃值: (3180)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
值得下载学习,谢谢分享。
2017-8-26 20:07
0
雪    币: 2141
活跃值: (7226)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
14
多谢各位回帖支持
2017-8-26 21:11
0
雪    币: 3
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
看了你的pdf,膜拜楼主调试能力,每行都进行调试。
但是我想问几个问题:
1.handler内部有必要调试么,如果插件已经标明handler的功能?
2.如果handler前人已经告诉我的情况下,是不是光看走过的handler就能逆向得到保护前的代码?
2017-8-27 22:34
0
雪    币: 2141
活跃值: (7226)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
16




走码观花

看了你的pdf,膜拜楼主调试能力,每行都进行调试。
但是我想问几个问题:
1.handler内部有必要调试么,如果插件已经标明handler的功能?
2.如果handler前人已经告诉我的情况下 ...

1  初学的话,有必要分析一下,看下几个最常用的vm指令(push pop add 万用逻辑闸...),

先对vm指令和vm栈有一个初步的认识。

然后就没有必要看handler内部了(调试时遇到没见过的vm指令再去看它的handler实现)。


2  假如得到了全部解密的vmp指令,

这个时候应该做 vmp指令 -> x86指令的还原了。

但是因为这两者不是一一对应的关系,所以完全还原比较困难。

2017-8-28 10:27
0
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
值得学习,MARK一下,先看看基础文章。
2018-3-15 16:21
0
雪    币: 224
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
谢谢楼主分享。
2018-6-14 15:20
0
雪    币: 8715
活跃值: (8619)
能力值: ( LV13,RANK:570 )
在线值:
发帖
回帖
粉丝
19
支持楼主!!有耐心有毅力!!
2018-6-14 16:22
0
雪    币: 279
活跃值: (123)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
感谢分享,学习了很多
2019-11-5 16:11
0
雪    币: 739
活跃值: (1865)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
666666
2019-11-5 16:18
0
雪    币: 279
活跃值: (123)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
感谢分析
2020-7-9 10:05
0
游客
登录 | 注册 方可回帖
返回
//