公众号

VMP逆向分析入门与进阶

大家好,我是轩辕。

不知道大家有没有过这样的经历:

遇到一个程序,用查壳工具一看:卧槽,VMP!然后含泪拖进回收站。

现在,你有新的选择了!

在上个月初的时候,我在知识星球里发起了一个投票,让大家选择最想学习的内容,有很多同学都参与了留言投票。

从最终统计来看,呼声最高的是3:逆向分析进阶(常见加解密技术、脱壳、VMP技术等)。

既然这么多同学都想学习逆向进阶的内容,那么说干就干吧!经过2个月的闭关猛肝,终于要和大家见面了。

这一次带来的就是大家非常期待的:《VMP逆向分析实战》

时隔一年之后,咱们又要一起学逆向了!

VMProtect的大名想必接触过逆向的同学都如雷贯耳,有多少人谈之色变,见到VMP保护的程序,就只有含泪拖进回收站。

现在,我们要正面来迎战这头猛兽了!

这套课程的制作应该是我目前来说最痛苦的了,原因就是VMP实在太难了!它本身技术就很难,我要怎么把它拆开揉碎给大家讲清楚更难。

网络上VMP相关的文章和帖子还是有不少,但是很多都是很零散,不成体系,有些在讲脱壳,有些在讲虚拟化分析,还有的在讲反调试,各种版本还不一样,它们之间的关系是什么,新手完全找不着北,不知道该从哪里开始入手。

网络文章是这样,那那些视频课程是不是会好一点?

为此,我几乎把市面上大家看得到的VMP方面的视频课程都看了一遍,得出了一个非常明显的感受:讲的啥玩意儿,完全听不进去。

注意,我不是说人家技术不行,而是想说站在一个学员的角度,这些课程根本学不动啊。很多都是自顾自的讲一堆,不会站在学员的角度来思考问题,霹雳吧啦一堆说完就完事儿。连我都听着抓狂,更不说很多基础更差的人了。

更要命的是,这些课程标价都是几大千,如果我是学员,花了几大千只能放在那里吃灰就太亏了。

我想让更多人用更有性价比的价格学到VMP这个强大又炫酷的技术,所以硬着头皮把这块骨头啃下来了!

说实话这两个月着实痛苦,每天都在不断学习、拆解梳理,如何让更多的人能够看懂、听懂、学会。经常一个问题要花费几天时间去死磕,几度崩溃。

已经学过《从零开始学逆向》和《C/C++抓包编程实战》课的同学应该对我的讲课风格有所了解了,我就不自我吹嘘了。

课程介绍

可能还有人不太知道什么是VMP的,这里简单介绍一下。

VMP全称是VirtualMachineProtect,虚拟机保护技术,是一种软件保护技术。它不同于我们传统的加壳技术,它使用虚拟机模拟执行被保护的代码,从根本上否定了能够被完全逆向还原的可能。常常被用在商业软件,尤其是游戏等领域来反破解分析、反外挂,是逆向分析领域最大的拦路虎。

除了VMP,这个领域还有一些虚拟机,像是Themida,简称TMD,还有ZProtect等等,但VMP在这个领域有无可取代的独领风骚的地位。

在以前,遇到VMP保护后的程序只有乖乖举手投降,但现在,你有了新的选择。

这套课程,我将带领大家分析VMP虚拟化保护技术的原理,以及如何分析经过VMP保护的程序逻辑,并开发了相关的自动化分析程序提供给大家。大家学习了相关的原理知识,可以丰富完善工具,用来适配支持更多版本的VMP。

课程形式:视频课程+图文课程,同时兼具,方便大家学习。

课程节数:13节,每节30分钟到一个小时。

课程目录:

  1. 虚拟化保护技术原理
  2. VMP1.1分析:核心流程完整分析
  3. VMP1.1分析:函数调用、指令加密处理
  4. 使用VMP分析插件分析v1.7核心流程的变化
  5. VMP堆栈虚拟机工作机制与Handler分析
  6. VMP中减法、CMP、条件跳转指令分析
  7. 暴力破解VMP2.08实战
  8. 基于RunTrace/插桩技术分析虚拟机架构
  9. VMP3.5.0核心流程分析
  10. x64下的VMP3.5.0分析
  11. VMP3.5反调试技术与绕过
  12. VMP3.5脱壳
  13. VMP逆向分析回顾与总结

在制作这套课程的过程中,我还开发了一个半自动化分析的好用的工具程序,到时候也会把完整的代码分享给星球同学,供大家根据自己需要升级改造支持更新版本的VMP分析,授人以鱼也要授人以渔。

课程价值

VMP相关的逆向人才都是非常紧俏的,其难度颇高的门槛挡住了绝大多数人,所以这方面人才奇缺,掌握VMP的分析比起普通人是巨大的优势。

下面是BOSS招聘上一些安全岗位对VMP的要求:

字节跳动:

腾讯:

小红书:

如果不会VMP看到这些要求估计直接就打退堂鼓了,学完这套课程,没准你可以试试了。

Q&A

接下来把大家可能关心的问题统一做一下解答。

Q:这门课程适合哪些人学习?学习这门课程需要具备什么样的基础?

A:适合有逆向基础的同学学习,熟悉x86汇编语言,掌握OllyDbg、IDA、x32dbg/x64dbg等工具基本使用。如果没有这方面基础,需要先补充学习星球里的《从零开始学逆向》这门课程。

Q:学了这个课,遇到VMP就能分析了吗?

A:这套课程是向大家讲解VMP的分析方法,VMP版本众多,不同版本差异也很大。并不是学了这个课你就能无往不胜,需要你消化课程的知识,掌握里面的分析方法,遇到不同的版本也能找到地方下手。

Q:为什么会讲1.1这么古老的版本?

A:饭要一口一口吃,编程都是从Helloworld开始的,我们学VMP也是一样,从最基础的虚拟机架构开始,一步步迁移扩充,对于新手学习曲线不至于过于陡峭,更加容易上手。

Q:会不会讲最新的版本3.9.6?

A:不会。最新的版本防护强度非常高,讲解这个具有非常高的商业价值,不会放到课程中讲。但课程里面讲述的一些方法对于分析最新版本同样具有迁移性。只不过需要大家根据这些知识变通过去,做一些调整。

Q:能否帮忙分析VMP的样本?

A:不提供此项服务。

开课时间及更新频率

9月1日开学季正式开课,每周一、周四上午10点各更新一节,国庆节假期不更新,两个月之内更新完成。

关于价格

说到价格,这也是让我犹豫了很久的事情。

说实话,我一开始的打算是不想放在知识星球里,而是计划单独售卖的,没有别的原因,就是因为这样对我来说实在太亏了,为了这门课花费的心血太多,市面上讲VMP的都是几大千的,放星球里简直就是血亏。

大家不信的话可以自己去各种平台搜索,看看我说的是不是真的。

但是没有办法,我之前都已经把话放出去了,说过在星球里就能学,总不能自己打自己脸吧,这样太没信用了。

所以还是得忍痛放在星球里,加入星球就能学习,各位之前已经加入星球的小伙伴,你们有福了,不需要再付一分钱,就能学到这么高价值的内容。

不过,之前299价格肯定是不行的了,星球里面已经有《从零开始学逆向》、《C/C++抓包软件开发》两门课程,再加上这一次的《VMP逆向分析实战》,怎么说299都是贱卖了,所以,星球肯定得涨价了!

那涨到多少呢?像别的VMP课程那样,几大千吗?我估计一堆人要喷我割韭菜了。不过我倒不担心别人喷这个,哪怕我卖1块钱,要喷的人依然要喷,随他去。我想的是几大千对大家的负担太重了,尤其很多学生根本负担不起,我想挣钱,但我也想要一个好的口碑,就像当初《从零开始学逆向》那样,很多小伙伴为我介绍了很多朋友来学习,给了我很多好评。

但定价过低也不是好事,人啊,总有一种惯性思维,价格低了就会轻视,觉得你这玩意儿廉价就是不行,就是垃圾。

找到二者之间的平衡非常重要。经过反复的思考权衡,最终决定把星球涨价至599!之前加入的同学真的赚到了。

加上这次的新课,知识星球里面目前将会拥有三门课程,这个价真的超值了,在其他培训机构随便一个单拉出来都远超这个价格。

这还没完,为了回馈一直支持轩辕的老粉们,在9.1号咱们正式开课之前属于是预售期,预售限时优惠100,优惠后只要499到9.1号开始正式调整到599,如果购买的人少后续会继续涨价,把课单价拉起来否则收不回成本。

为啥涨价?因为我对自己的课有信心,这个价格根本不能体现它的价值,也不想给人一种便宜无好货的感觉。如果不是放到星球里,单独售卖定价肯定是在1000+。目前的定价主要考虑到之前承诺会放在星球,不少小伙伴也是冲着这个老早就续费了,所以我宁可少挣点也不能失信于大家,就当回馈一直以来支持我的小伙伴们!

很多之前学过星球里的《从零开始学逆向》的同学都想提前续费,甚至有上个月才续了又想续的[捂脸]

所以想学的赶紧下手,错过了这个时间就不要再来找我要优惠了哦~

关于轩辕的知识星球

可能很多新同学对我的知识星球不太了解,这里也简单介绍一下。

我的星球里之前已经更新了两套课程,如果感兴趣的,可以戳下面链接了解:

除了课程,星球里还有大量的技术、职场的答疑帖:

加入知识星球后,不仅可以学习课程内容,也可以与我就这些方面的技术、非技术问题进行交流,我都会一一解答。

最后的话

距离正式开课还有两周时间,大家如果要参与学习,可以先把x86汇编语言重点复习一下。学习VMP不像之前《从零开始学逆向》,有IDA里面的F5大法可以用,是时候要硬刚汇编指令了。

最后欢迎大家和我一起,共同走进VMP的神奇世界。