当前位置: 首页 > news >正文

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

虚拟机保护技术是基于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.lryc.cn/news/11061.html

相关文章:

  • Win10耳机有声音麦不能说话怎么办?麦克风说话别人听不到解决方法
  • The 22nd Japanese Olympiad in Informatics (JOI 2022/2023) Final Round 题解
  • openEuler RISC-V 成功适配 VisionFive 2 单板计算机
  • 2005-2022中国企业对外直接投资、OFDI海外投资明细、中国全球投资追踪数据CGIT(含非建筑施工类问题投资)
  • PCB学习笔记——使用嘉立创在线绘制原理图与PCB
  • 【C++】类型转化
  • Mybatis -- resultMap以及分页
  • Linux之进程
  • 结构体——“C”
  • CCNP350-401学习笔记(51-100题)
  • C语言学习_DAY_4_判断语句if_else和分支语句switch_case【C语言学习笔记】
  • 实验07 赫夫曼编码及综合2022(带程序填空)
  • 分布式 CAP BASE理论
  • 三调地类筛选器,Arcgis地类筛选
  • 华为OD机试 - 密室逃生游戏(Python)
  • 白话C#之委托
  • jsp高校教职工管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • 2023年数学建模美赛A题(A drought stricken plant communities)分析与编程
  • Delphi 中自定义鼠标指针图像
  • 【计算机网络】物理层
  • 华为OD机试 - 最少停车数(Python)
  • 面试题-前端开发JavaScript篇上(答案超详细)
  • 【计算机网络】运输层
  • 20222023华为OD机试 - 基站维修工程师(Python)
  • 21. 合并两个有序链表
  • 产品经理知识体系:5.如何做好产品数据分析?
  • 详解垃圾回收算法,优缺点是什么?|金三银四系列
  • Android 虚拟 A/B 详解(七) SnapshotManager 之标识文件
  • LA@生成子空间@范数@衡量矩阵大小@正交化
  • MT2012_竹鼠的白色季节