11、反编译器设计全解析

反编译器设计全解析

1. 通用反编译器概述

在反编译领域,有一种简单的方法试图枚举任意属性语法的所有有效短语,然后将这些短语与它们的原始源代码进行反向匹配。但这种方法并不实用,不能简单地使用Lex和Yacc来恢复代码。

Cristina Cifuentes的反编译器dec是一个在1993 - 1994年由昆士兰科技大学编写的不完整反编译器。它与早期的反编译器不同,它是从二进制文件而不是部分编译的对象中恢复源代码。虽然Cifuentes和她的同事遇到了一些障碍,但他们引入了一些有趣的概念,特别是在处理类似于对象的字节码时。

dec由三个模块组成:
- 前端加载器/解析器 :模拟操作系统加载器,解析输入流并生成更高级的中间代码。
- 通用反编译机(UDM) :进行程序的流分析,构建控制流图(CFG),并将高级程序拆分为一系列基本块。
- 后端代码生成器 :将高级语言映射到目标语言,在dec中目标语言是C。

下面是dec的工作流程mermaid图:

graph LR
    A[前端加载器/解析器] --> B[通用反编译机(UDM)]
    B --> C[后端代码生成器]
2. 前端模块详解

前端模块的主要功能是模拟操作系统加载器,解析输入流并生成中间代码。具体步骤如下:
1. 解析输入流 :从虚拟加载器确定的入口点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值