为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言常见问题及笔记 正文

总结vmp壳的一些基础原理

三叶资源网 2018-05-04 13:00:54 易语言常见问题及笔记 5585 ℃ 52 评论

1.与传统的加壳工具不同,不是简单的把目标进行压缩、内存解压运行,而是修改目标源码,让目标的部分指令在vmp创建的虚拟环境下运行,虚拟环境中无操作数比较指令、条件跳转和无条件跳转指令;

2.被修改替换的目标指令最终形成的字节码有前后相关性,即你改变其他任意一个字节会影响到所有被vm虚拟化的指令

3.vmp的虚拟机其实是一个字节码解释器,循环的读取指令并执行,并且只有一个入口和一个出口

4.虚假跳转和垃圾指令, vmp会使用大量的虚拟跳转和垃圾指令将原有简单的代码变得复杂

5.vmp是基于堆栈的虚拟机,虚拟机指令不是显示的读取参数,而是把要使用的参数压入堆栈,而后直接从堆栈中读取

6.vmp指令

  1)算数运算和移位运算

  2)堆栈操作

  3)系统相关

  4)逻辑运算,这个最复杂,vmp中只有一个逻辑运算指令nor, 它可以模拟not and or xor 四个逻辑运算指令

6.vmp寄存器轮转

  mvp将所有的寄存器都放在一个堆栈的结构vm_context中, 结构中的每一项代码一个寄存器或临时变量

  在程序运行过程中, vm_context结构中保存的寄存器不是固定的,每当执行完一个操作或一个指令结构中的项与真实寄存器之间的映射关系会发生变化,就像一个齿轮随机的转动了一下, 转动过后原有的映射关系全部改变了

7.字节码加密和随机效验

  随机效验比较牛B, vmp会在编译好的字节码中加入自己的一些指令(专属于vmp自动的指令), 每一次执行都会对一段代码随机生成hash值, 然后与另一个随机数相加, vmp要求相加的结果必须为0, 否则会出错. 


来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有52位网友发表了看法:

  • 娱乐网

    娱乐网  评论于 [2019-05-19 09:21:08]  回复

    vmp壳+虚拟+变异

  • yiyuyan

    yiyuyan  评论于 [2019-06-01 17:06:36]  回复

    易语言vmp加se双壳

  • eyuyan

    eyuyan  评论于 [2019-06-01 17:17:03]  回复

    vmp+狗壳

  • 源码例子

    源码例子  评论于 [2020-02-02 18:23:01]  回复

    为什么挺多人加vmp.壳不用se壳

  • fiddler

    fiddler  评论于 [2022-03-02 19:24:07]  回复

    vmp 原理

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
QQ授权登陆快速启动百度API系统服务优化向导E2EE支持库bilibili直播Sign计算文件拖拽58t同城TencentFTP服务器CHM帮助文档PugiXml字节数CSS仿QQ音乐播放器图像处理吃鸡辅助网页分析工具Android面试宝典6.0
最新评论