基于虚拟机机的代码保护技术

news2024/11/13 15:32:41

虚拟机保护技术是基于x86汇编系统的可执行代码转换为字节码指令系统的代码,以达到保护原有指令不被轻易逆向和篡改的目的。

字节码(Byte-code)是一种包含执行程序,由一序列 op 代码/数据对组成的 ,是一种中间码。字节是电脑里的数据量单位。

虚拟机保护原理

虚拟机保护技术是基于x86汇编系统的可执行代码转换为字节码指令系统的代码,以达到保护原有指令不被轻易逆向和篡改的目的。

字节码是由指令执行系统定义的一套指令和数据组成的一串数据流

虚拟机执行时,VStartVM部分初始化虚拟机,VMDispatcher调度这些Handler。

如果将其看成一个CPU,字节码就是CPU中执行的二进制代码。

指令分类

按功能分为普通指令,栈指令,流指令,不可模拟指令4类

不可模拟指令就是无法再次模拟的指令,int3,sysenter,in,out

启动框架和调用约定

调度器

VStartVM将真实环境压入栈后会生成VMDispatcher的标签,当Handler执行完毕之后跳回到这里,形成一个循环,所以VStartVM也叫作“dispatcher”

esi指向字节码的起始地址,ebp指向VM栈顶,edi指向VMContext

Handler

不是Windows中的句柄,而是一段小程序或者一段过程

是由VM中的调度器来调用的

  • 辅助Handler(执行一些重要的,基本的指令)
  • 普通Handler(执行普通的x86指令)

辅助Handler主要是处理栈的Handler

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/352019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《第一行代码》 第五章:详解广播机制

如果你了解网络通信原理应该会知道,在一个 IP 网络范围中最大的IP 地址是被保留作为广播地址来使用的。比如某个网络的 IP 范围是 192.168.0XXX,子网掩码是255.255.255.0那么这个网络的广播地址就是 192.168.0255广播数据包会被发送到同-网络上的所有端口…

Spring Security OAuth2四种授权模式总结(七)

写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!如果我的博客对你有帮助,欢迎进行评论✏️✏️、点赞👍👍、收藏⭐️⭐️&#…

【MySQL】MySQL表的增删改查(CRUD)

✨个人主页:bit me👇 ✨当前专栏:MySQL数据库👇 ✨算法专栏:算法基础👇 ✨每日一语:生命久如暗室,不碍朝歌暮诗 目 录🔓一. CRUD🔒二. 新增(Creat…

将array中元素四舍五入取整的np.rint()方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将array中元素四舍五入取整 np.rint()方法 选择题 关于以下python代码说法错误的一项是? import numpy as np a np.array([-1.7, 1.5, -0.2, 0.3]) print("【显示】a\n",a) pr…

BI是报表?BI是可视化?BI到底是什么?

很多企业认为只要买一个前端商业智能BI分析工具就可以解决企业级的商业智能BI所有问题,这个看法实际上也不可行的。可能在最开始分析场景相对简单,对接数据的复杂度不是很高的情况下这类商业智能BI分析工具没有问题。但是在企业的商业智能BI项目建设有一…

数字化系统使用率低的原因剖析

当“数字化变革”成为热门话题,当“数字化转型”作为主题频频出现在一个个大型会议中,我们知道数字化时代的确到来了。但是,根据Gartner的报告我们看到一个矛盾的现象——85%的企业数字化建设与应用并不理想、但对数字化系统的需求多年来持续…

软件测试项目实战(附全套实战项目教程+视频+源码)

开通博客以来,我更新了很多实战项目,但一部分小伙伴在搭建环境时遇到了问题。 于是,我收集了一波高频问题,汇成本篇,供大家参考,避免重复踩坑。 如果你还遇到过其他坑和未解决的问题,可在评论区…

webpack安装步骤(一)

系列文章目录 安装步骤系列文章目录前言一、Webpack是什么?Webpack官网解释解释内容如下图二、Webpack的安装步骤第一步:检查本机是否已经安装过Webpack(全局)1.操作如下2.结果如下图第二步:安装webpack(非…

利用无线通讯技术构建工厂智能化立体仓储

立体仓库主要通过检测、信息识别、控制、通信、监控调度、大屏显示及计算机管理等装置组成。完成仓库各设备连接无线化,可大幅减少网线布防成本,缩短生产线调度时间,实现汽车装配生产线的柔性生产,提高汽车装配生产的自动化水平。…

短视频的素材在哪里找呢?推荐给你一个好办法

我刚刚在视频号做出了30万播放的小爆款,过去3年我做出了很多6位数播放的视频。在这里,我就大家分享20个我常用的素材渠道,其中一些渠道比较小众。除此之外,我也希望同时讲一下短视频的内容生产。为了方便大家浏览,我把…

使用web3连接Georli测试网络

文章目录1.使用geth方式在终端2.写成脚本2.1 通过metamask (现成的太复杂,搞不太来)2.2 通过自己的接口3.通过truffle方式连接 (不成功)目前的工作情况是,已在remix写好执行合约并部署在Georli测试网络中&a…

NJ 时钟自动调整功能(SNTP)

NJ 时钟自动调整功能(SNTP) 实验设备:NJ501-1300 实验目的:NJ使用ntp实现时钟自动调整 1. 实验概览 ​ 本次实验通过NJ的ntp功能,将PLC的时钟和阿里的ntp服务器时钟每隔1分钟同步一次。 阿里ntp服务器的域名为:ntp.aliyun.com…

Python fileinput模块:逐行读取多个文件

前面章节中,我们学会了使用 open() 和 read()(或者 readline()、readlines() )组合,来读取单个文件中的数据。但在某些场景中,可能需要读取多个文件的数据,这种情况下,再使用这个组合&#xff0…

力扣56.合并区间

文章目录力扣56.合并区间题目描述排序合并力扣56.合并区间 题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中…

windows上配置IIS全过程

文章目录1️⃣ 配置IIS1.1 从开始打开服务器管理1.2 添加角色和功能1.3 添加角色和功能向导1.4 按照如下步骤选择2️⃣ 问题:缺少源文件解决方案优质资源分享作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/1…

与感受野相关的几种网络结构

一、Inception 1. Inception v1 目的 通过设计一个稀疏网络结构,但是能够产生稠密的数据,既能增加神经网络表现,又能保证计算资源的使用效率。 结构 图1-1 Inception v1结构图 特点 共4个通道,其中3个卷积通道分别使用111111…

HashTable和HashMap的区别详解

一、HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashMap是非线程安全的,只是用于单线程环境…

Velocity实战笔记

基础准备 velocity模板语法简介 官方实例 版本环境 <dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version></dependency>标签介绍 <Workbook><DocumentPr…

STM32 DFU模式烧录代码

什么是DFU? dfu的本质是isp&#xff0c;usb接口的isp&#xff0c;在系统编程&#xff0c;进入isp的方式我们先了解 如下图 boot0为高电平 boot1为低电平即可进入isp模式。 熟悉的场景 在我们使用flymcu软件下载代码时&#xff0c;本质也是isp 串口接口的isp。 傻瓜使用方式…

RF电路的分布参数集中参数化

文章目录1.威尔金森功分器的集总参数设计例1&#xff1a;ADS仿真:设计一个工作在1GHz的威尔金森功分器2.分支线定向耦合器的集总参数设计例2&#xff1a;ADS仿真设计一个分支线的定向耦合器&#xff0c;中心频率&#xff1a;920MHz3.总结射频电路的分析会引入分布参数分析的理论…