ajun2019 发表于 2022-5-31 12:23

小白入门破解教程:初识vm破解

大家好,今天我们来讲一个部分代码被vm掉的CM。文章用到的cm我会放在文末位置,需要的可以自行下载。

其实它初始的运行流程就是   程序运行-输入注册码-计算注册码-对比真假-提示对错

被VM 以后呢?就是这样的。程序运行-输入注册码-VM代码(计算注册码-对比真假)-提示对错

VM是什么?可以保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下,才能实现最好的效果。


也就是说被加密的代码!我们这个时候需要用OD自带插件来解决问题!我们开始吧!


--------------------------------------------------
OD载入运行,发现了输入注册码的地方,我们随意输入,然后点击确定。



当我们输入完成以后,它自动就会弹出对话框,告诉我们错误了! 这个时候我们F12暂停,ALT+F9 返回(这个方法是通用所有语言,这个程序是易语言,大家可以使用特征码比较方便。)



然后我们就到达了弹出对话框以后的位置了。正常情况下,我们会往上翻找有没有正确的跳转或者信息之类的。事实上我也是这么找的,试了半天都是奇怪的提示框,并没有正确的提示,说明正确提示的信息很可能不在这个子程序call里面,说明意思呢?


很有可能是这个样子的,如果我们一直在这个call里面找下去的话,只能是徒劳的,所以需要学会放弃这个call,返回到上一层去看看。



然后就开始F8单步往下走,想要retn到上一层,可是当我出来的时候,就感觉越发的奇怪了,因为程序开始了很多疯狂的大跳转,接着出现了pushfd之类的,很像壳似的内容。这其实就是VM代码了。


那我们开始使用OD的FKVM 的插件,在反汇编窗口右键单击,选择FKVM->start


接下来点击一下OD 这个位置的l 按钮,到达这个界面





然后找到红色字体部分的retn,复制地址。

回到反汇编页面,然后Ctrl+G粘贴进去这个地址004CFB3C到达以后,发现是个call   说明这个retn就在call里面,跟随进去几层就能找到它了(跟随进去以后,见jmp就跳,见call就进)。记得F2在retn处下断点。



现在重新载入,输入注册码,然后不断按F9运行(每按一次都会在retn处断下来),若干次以后FTP寄存器窗口开始出现注册码。


这个cm比较有意思的地方就是,如果你每一段注册码没有正确,那么它就不会计算下一段,所以每计算出来以后,必须先填写好正确部分,它才会计算下一部分的注册码。
感兴趣记得去试试,我把cm放在下面了。









ajun2019 发表于 2022-6-1 13:13

tyz1234 发表于 2022-6-1 11:21
你这个按完F12和ALT+F9和你的位置完全不一样,你的是暂停在程序领空,我的是系统领空。我用的是虚拟机WIN7...

继续ALT+F9直到返回为止

ajun2019 发表于 2022-5-31 13:16

终于注册来了 发表于 2022-5-31 12:54
提示不能在虚拟机里运行的程序怎么去调试?有大佬能提示下么

把你这句话百度一下。我看有很多解决方案 ,你可以挨个试试

as4201 发表于 2022-5-31 12:47

点个赞先

终于注册来了 发表于 2022-5-31 12:54

提示不能在虚拟机里运行的程序怎么去调试?有大佬能提示下么

metoo2 发表于 2022-5-31 12:56

学习了,谢谢楼主{:1_921:}

qwe2323 发表于 2022-5-31 13:10

感谢分享,学习了

zouhuangfa 发表于 2022-5-31 13:12

学习了,感觉vm很难搞

Tangl 发表于 2022-5-31 13:15

学习了,谢谢楼主,感谢分享

0620zhao 发表于 2022-5-31 13:58

学习了,谢谢楼主

狄人3 发表于 2022-5-31 14:47

fkvmp我记得是vmp1x的吧,新的vmp肯定没法这么搞
页: [1] 2 3 4 5 6 7
查看完整版本: 小白入门破解教程:初识vm破解