系统与软件安全研究(九)

本文提出了一个关于C语言反编译器忠实度问题的全面分类法,涉及15个一级问题类别和52个问题。通过分析开源函数的反编译输出,研究发现尽管反编译器在恢复变量名和类型方面取得进展,但仍然存在多种可读性和正确性问题。这些问题影响逆向工程师的生产力,尤其是在理解和应对恶意软件时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A Taxonomy of C Decompiler Fidelity Issues

Usenix security 2024
Carnegie Mellon University

Intro

反编译是分析编译程序并恢复表现相同行为的源代码程序的过程,是计算机安全领域中的关键工具。它使安全从业者能够更快速地深入了解编译程序的行为,尤其在分析恶意软件和商业现成软件(COTS)等安全场景中,源代码可能不可用的情况下。通过将可执行文件转换为可读的类C代码,反编译使安全从业者能够更有效地理解和应对恶意软件等威胁[36]。例如,在ˇDurfina等人的研究中,分析人员使用反编译器分析Psyb0t蠕虫,这是一种感染路由器以构建僵尸网络的恶意软件。

分析和理解可执行代码的行为比分析源代码困难得多,因为在编译过程中会删除信息。高级编程语言包含有助于人类编写和理解代码的抽象和结构,如变量名、类型、注释和控制流结构[34],而可执行程序则没有这些。这些抽象对于可执行程序运行并不是必需的,因此它们被编译器丢弃、简化或优化,以减小可执行文件的大小并最大化执行速度。
----编译过程会丢弃非必需信息

这意味着当分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西杭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值