但是他的VM有些漏洞,一般情况下,我们写代码是这样添加标志位的——用易语言举例
![](upload/attach/202008/14/193525wbruttf8rdy8juxz.png)
然后放到VMP里,她会自动识别
![](upload/attach/202008/14/193525jgekqsbssgswrwks.png)
编译结束后,就已经对关键代码进行保护了,我们下Megbox找按钮事件对比下:
![](upload/attach/202008/14/193526x4u7uofe1o7u1kzc.png)
F8走出来,可以看到区别
加密前,简单明了
![](upload/attach/202008/14/193527os14tneunednwdh8.png)
加密后,V的亲妈都不认识
![](upload/attach/202008/14/193526z0m6piwk6gqq1456.png)
是不是这样就束手无策了呢?并不是,VM是有缺点的,像刚刚那种写法(图1),VM的地方是不全的。
所以,我们跳到地址00401000,然后在几个RETN出下断点。
![](upload/attach/202008/14/193527jflryjpppxglj8pl.png)
然后点击按钮
![](upload/attach/202008/14/193528io1orsu1utoy8ti1.png)
程序断下来后,把寄存器EAX的值改成0,判断就过了
![](upload/attach/202008/14/193528rcv2mp3l393rrzwj.png)
这样,就破开了加了VM的软件了。(当然,这种只是比较简单的)
PS:请问怎么写补丁来改EAX的值啊,在线求解答。