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

典型二进制翻译系统---用户级翻译

目录

QEMU

补充

Valgrind

包括

CrossBit

补充

Strata-ARM

Box86

HQEMU

SymQEMU


QEMU

是一个开源的多平台的虚拟器,能够在软件中模拟一台机器

KVM(Kernel-based Virtual Machine)是 Linux 内核的一个模块,使 Linux 成为一个虚拟机监控器。它允许用户在 Linux 系统上创建和管理虚拟机

QEMU可以与Xen和KVM管理程序集成,以提供仿真硬件,同时允许管理程序管理CPU

当QEMU直接模拟cpu时,它能够在不同的机器(例如x86_64 PC板)上运行为一台机器

QEMU还能够为Linux和BSD内核接口提供用户空间API虚拟化。这使得针对一种体系结构ABI(例如Linux PPC64 ABI)编译的二进制文件可以在使用不同体系结构ABI(例如Linux x86_64 ABI)的主机上运行。这不涉及任何硬件仿真,只涉及CPU和系统调用仿真。

补充

Xen 和 KVM 是两种流行的虚拟化技术,它们允许在单一物理硬件上同时运行多个虚拟机(VM)

Xen 是一个开源的虚拟机监控器(hypervisor)

API(应用程序编程接口,Application Programming Interface)是一组定义了软件应用程序之间交互的规则和协议。API 允许不同的软件组件之间进行通信,简化了软件开发的过程
 

Valgrind

基于VEX IR(VEX Intermediate Representation)中间表达式转换, 重量级代码插桩与分析工具

是一个用于构建动态分析工具的框架

使用平台:

- X86/Linux
- AMD64/Linux
- PPC32/Linux
- PPC64/Linux
- ARM/Linux
- x86/MacOSX
- AMD64/MacOSX
- S390X/Linux
- MIPS32/Linux
- MIPS64/Linux

包括


The Valgrind distribution currently includes six production-quality
tools:
a memory error detector, (内存错误检测器)
two thread error detectors,(两个线程错误检测器)
a cacheand branch-prediction profiler, (一个缓存分支预测分析器)
a call-graph generating cache abdbranch-prediction profiler, (一个调用图生成缓存分支预测分析器)
a heap profiler. (堆分析器)

It also includes three experimental tools:
a heap/stack/global array overrun detector, (堆/堆栈/全局数组溢出检测器)
a different kind of heap profiler, (一种不同类型的堆分析器)
a SimPoint basic block vectorgenerator.(SimPoint基本块矢量生成器)

CrossBit

源平台:MIPS, x86, Sparc

目标平台: Power, x86, Sparc

是一个与逆向工程漏洞分析(动态分析和静态分析)相关的工具或框架,帮助分析和理解二进制文件(如可执行文件和库)

支持多平台(如 x86、ARM 等)

有GUI界面,减少命令行依赖

多线程翻译, 基于Vlnst低层次的虚拟中间表示层

补充

Vlnst(Vulnerability Instantiation)是一个专注于漏洞分析的工具或框架,通常用于帮助安全研究人员和开发者识别、分析和修复软件中的安全漏洞

Strata-ARM

源平台:ARM ARM

目标平台:IA-32 D

动态翻译应用于嵌入式系统, 间接跳转优化

Box86

在非x86 Linux系统上运行x86 Linux程序(比如游戏),比如ARM(主机系统需要是32位小端)

大多数x86游戏都需要OpenGL,所以在ARM平台上,像gl4es这样的解决方案可能是必要的。

应该安装ccache并用它来构建Box86

您应该安装ccache并用它来构建Box86。(以ccmake为例。)要启用TRACE(即转储所执行的所有单个x86指令,并转储寄存器),您还需要在系统上提供Zydis库。

If you are serious about developing Box86, you should install ccache and build Box86 with it. (Use ccmake for example.) To enable TRACE (i.e. dumping to stdout all individual x86 instructions executed, with dump of registers), you'll also need Zydis library available on your system.

源平台:x86, x86-64 

目标平台:ARM64, RISC-V

HQEMU

是一个多核可重目标的多线程动态二进制转换器

它集成了QEMU和LLVM作为其构建块

HQEMU可以实现较低的翻译开销和良好的翻译代码质量。

HQEMU支持进程级仿真和全系统虚拟化。它提供了在一个进程中运行QEMU转换器和LLVM优化器的转换模式,或者将LLVM优化器作为独立的优化服务器运行

SymQEMU

一个基于QEMU和SymCC的纯二进制符号执行器

灵活性强

源平台:x86-64, AArch64

目标平台:x86-64, AArch64

接受指向SymCC源代码和二进制文件的指针

相关文章:

  • NAND Flash 的 SDR、ONFI、DDR 接口
  • deepseek-vl 论文阅读笔记
  • ubuntu在命令行输出里查找内容,dmesg
  • OSPF概述
  • 【cuda】在老服务器上配置CUDA+cmake开发环境
  • 内网渗透—内网穿透工具NgrokFRPNPSSPP
  • Linux进程——环境变量之二
  • 【计算机网络】WireShark和简单http抓包实验
  • 软考:软件设计师 — 5.计算机网络
  • Git 从入门到精通:全面掌握版本控制(IntelliJ IDEA 中 Git 的使用指南)
  • 【LeetCode 随笔】C++入门级,详细解答加注释,持续更新中。。。
  • 【ESP32 IDF 软件模拟SPI驱动 W25Q64存储与读取数组】
  • 二、【Python】入门 - 【PyCharm】安装教程
  • C语言程序设计(二)
  • 疫情居家办公OA系统
  • [deviceone开发]-do_Webview的基本示例
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 〔开发系列〕一次关于小程序开发的深度总结
  • C++11: atomic 头文件
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • HTML5新特性总结
  • MD5加密原理解析及OC版原理实现
  • nfs客户端进程变D,延伸linux的lock
  • node和express搭建代理服务器(源码)
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • quasar-framework cnodejs社区
  • 初探 Vue 生命周期和钩子函数
  • 关于for循环的简单归纳
  • 官方解决所有 npm 全局安装权限问题
  • 利用DataURL技术在网页上显示图片
  • 什么软件可以剪辑音乐?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用common-codec进行md5加密
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 正则学习笔记
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​一些不规范的GTID使用场景
  • # include “ “ 和 # include < >两者的区别
  • #php的pecl工具#
  • #pragma pack(1)
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $.each()与$(selector).each()
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (3)nginx 配置(nginx.conf)
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (第30天)二叉树阶段总结
  • (二)WCF的Binding模型
  • (分布式缓存)Redis分片集群
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (力扣)1314.矩阵区域和
  • (强烈推荐)移动端音视频从零到上手(上)
  • (五)网络优化与超参数选择--九五小庞