当前位置: 首页 > 软件库 > 开发工具 > 编译器 >

McSema

将机器码翻译成 LLVM IR
授权协议 AGPL
开发语言 C/C++ Python
所属分类 开发工具、 编译器
软件类型 开源软件
地区 不详
投 递 者 计光赫
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

MC-Semantics (或者 mcsema, 发音 'em see se ma') 是一个用来将机器码翻译成 LLVM IR 的库,包括如下几个子项目:

  • Control Flow Recovery

  • Instruction Semantics

  • Binary File Parsing

  • Semantics Testing

示例:

C:\dev\llvm-new\mc-sema\tests>demo2
 Could Not Find C:\dev\llvm-new\mc-sema\tests\demo_test2.cfg
 getFunc: Starting at 0x1
 1:      movl    %eax, %ecx
 3:      xorl    %eax, %eax
 5:      incl    %eax
 6:      xorl    %ebx, %ebx
 8:      cmpl    %ecx, %ebx
 a:      je      5
 c:      addl    %eax, %eax
 e:      incl    %ebx
 f:      jmp     -9
 8:      cmpl    %ecx, %ebx
 a:      je      5
 11:     ret
 getFunc: Function recovery complete for  func at 1
 Adding entry point: demo2_entry
 demo_driver2.c
 0x100
  • Windows环境下将x86指令转换为LLVM 运行环境 Win7 64 bit IDA Pro 6.8+ Git地址 https://github.com/trailofbits/remill https://github.com/trailofbits/mcsema 目标 由于对LLVM不甚了解,还不知道输出的是什么东西,应该是LLVM字节码 方法 由于McSema基于Remill实现,所以先

  • mcsema中python文件是放在/usr/local/lib/python2.7/dist-packages/mcsema_disass-2.0-py2.7.egg/mcsema_disass/目录下,所以一些ida接口也在/usr/local/lib/python2.7/dist-packages/mcsema_disass-2.0-py2.7.egg/mcsema_disass/下,在普通

 相关资料
  • 机器翻译是指将一段文本从一种语言自动翻译到另一种语言。因为一段文本序列在不同语言中的长度不一定相同,所以我们使用机器翻译为例来介绍编码器—解码器和注意力机制的应用。 读取和预处理数据 我们先定义一些特殊符号。其中“<pad>”(padding)符号用来添加在较短序列后,直到每个序列等长,而“<bos>”和“<eos>”符号分别表示序列的开始和结束。 import collections impo

  • 我们完全是socket.io和表达的新手。我们遵循这个教程来学习socket.iohttps://www.valentinog.com/blog/socket-react/ 现在我们要翻译这行代码(旧样式): const index = require("。/routes/index”)。系统默认值 到 ES6,如下所示: 从“./routes/index”导入路由器 app.use('/',路由

  • 问题内容: 我有包含以下代码的python代码。 不幸的是,对python中的所有键进行循环并不能达到我的目的,因此我想将此代码转换为C 。对于以元组为键的python词典,最佳的C 数据结构是什么?以上代码的C ++等价物是什么? 我在boost库中查看了稀疏矩阵,但是找不到简单的方法来仅在非零元素上循环。 问题答案: 字典将是c ++中的std :: map,具有两个元素的元组将是std ::

  • 有人能把它翻译成python代码吗,例如,我知道第一行和第二行将是 我只是想不出其他的

  • 下面的groovy代码在脚本构建中运行良好。格拉德尔: 我不能成功地将它的语法翻译成kotlin build.gradle.kts。有人能给我正确的翻译吗?

  • 据我所知,JIT将字节码编译成运行速度更快的本机代码。因此,根据我的信念,我的问题的答案应该是1。翻译成机器代码2。解释字节码。因为解释代码意味着执行代码。但我发现答案恰恰相反!谁能解释一下。。。提前感谢

  • 我有一个用Django编写的应用程序,我正在尝试在Digital Ocean droplet上的docker中运行它。目前我有两个文件。 有人能建议如何摆脱docker compose吗。yml文件并集成Dockerfile中的所有命令??? 文档文件 docker编写。yml公司 我运行我的应用程序和docker映像,如下所示: docker compose运行web python jk/man

  • 所有编程语言都被翻译成机器代码,然后由硬件解释器执行。但是什么翻译译码器的代码,例如编译器代码和解释器代码?编译器翻译源代码,但编译器也用某种语言编写,那么什么翻译编译器代码/代码呢? 谢谢