[原创]Vmprotect3.5.1 壹之型 — 暗月·宵之宫
20小时前
1582
在很久很久以前,,神奇的nooby有了个天才的想法,通过修改themida的引擎,使其强制输出了没有混淆和加密的程序,很轻松的就分析完了外壳逻辑和vm的逻辑,盖亚。 通过nooby的想法,我们也将vmp3.5.1的引擎进行了修改,使其强行输出了没有混淆和vm后的代码,便于我们分析外壳和handler的逻辑,今天先来看看vmp的反调试原理,先将vmp配置成如下,避免其他功能的干扰。 保护后得到了非常干净的程序。
如图,这时的入口不再是骇人的 push 0xXXXXXX / call xxxxxx而是
1
2
3
4
5
6
7
|
int start() { if ( (unsigned int )sub_4F4664() = = 1 ) return mainCRTStartup(); sub_4F44EC(); return 0xDEADC0DE ; } |
sub_4F4664()是一个非常大的函数,vmp整个外壳的逻辑所在,内存保护,导入表保护,资源保护,压缩等等就是在这个函数中处理的。第一步,先获取ntdll的版本信息 根据ntdll的版本初始化一些HardCode,后面会用到 接着我们直奔诸葛亮三轮车,vmp自己封装了一个从模块的导出表直接得到地址的函数,这种方式在shellcode中比较常见。 比较完善,还还考虑了转发的情况 接着通过GetExportAddress和上面通过ntdll定位的syscall序号进行反调试检测。 vmp分别通过了 IsDebuggerPresent,CheckRemoteDebuggerPresent, NtQueryInformationProcess,以及ZwSetInformationThread进行用户态反调试,vmp在调用函数之前,会检测头部是不是0xCC,然后直接报错。还有就是直接syscall直接调用比较有效。
那么,剩下的贰之型·珠华弄月再说..
最后于 18小时前
被冰鸡编辑
,原因:
收藏
・12
点赞・2
打赏
分享
最新回复 (10) |
|
---|---|
|
冰鸡师傅真厉害,一般引擎是不加密的,直接分析console就能翻到
|
|
大佬厉害! 请教下大佬如何修改vmp的引擎!
|
|
good idea看vmp分析从来没有这么清楚过, 哈哈
|
|
思路很好,是不是可以举一反三去弄其他壳了, 怎么改引擎有没有人抛砖呢
|
|
6b
|
|
值得我辈学习。希望能多分享这样有营养的文章。
|
|
太厉害了,都是大神级人物
|
|
bin呢?
放个bin出来不是更好? |
|
66666666
|
|
赞一个!
|
|
他的文章
[原创]Vmprotect3.5.1 壹之型 — 暗月·宵之宫
1583
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
©2000-2022 看雪 | Based on Xiuno BBS
域名:加速乐 |
SSL证书:亚洲诚信 |
安全网易易盾|
同盾反欺诈
看雪APP |
公众号:ikanxue |
关于我们 |
联系我们 |
企业服务
Processed: 0.026s, SQL:
55 / 沪ICP备16048531号-3 / 沪公网安备31011502006611号
请登录后查看评论内容