我的目标是修改一些指令,并在ELF可执行文件或库中进行一些配置(例如,修改所有内存写入指令)。由于说明太多,我想自动找到它们并进行一些修改。有什么我可以利用的工具吗?

评论

@w s是指静态检测,我想修改elf文件。

它必须是静态的吗?有许多用于动态检测的工具,为什么您需要专门的二进制重写?

@IgorSkochinsky我想更改ELF文件,并在没有任何工具的情况下运行它们。

#1 楼

在研究本文期间,我只是提取了以下列表:


“可重新组装的拆卸”王帅,王培和吴定豪,
宾夕法尼亚州立大学>

以下列出了所有提到的工具(动态和静态),也许有用:


UROBOROS(静态,x86 / x64 ELF)

因此,本文本身介绍了UROBOROS。我认为这是最适合您的选择之一:

https://github.com/s3team/uroboros


“可拆卸组装”王帅,裴Wang和Wu Dinghao,
宾夕法尼亚州立大学

在本文中,我们介绍了UROBOROS,它是一种可以在生成的代码可以无需人工即可组装
回到工作二进制文件。 [...]

我们已经用OCaml和Python实现了UROBOROS的原型,总共有13,209行代码。我们的原型可用于x86和
x64 ELF二进制文件。 [...]

我们介绍了UROBOROS,它是一种可拆卸的
二进制文件并以完全
自动化的方式生成可重新组装的汇编代码的工具。我们称这种技术为可重新组装的
,并且已经开发出称为UROBOROS的原型。我们的
实验表明,重新组装的程序产生的执行开销很小,因此UROBOROS可以潜在地用作基于二进制的软件改造的基础。



Dyninst [10,20](静态+动态)


BUCK,B.和HOLLINGSWORTH,JK用于运行时代码修补的API。
Int 。 J.高绩效。计算应用14,4(2000),317–329。



Vulcan [16](静态,由特殊编译器编译的二进制文件,未剥离)


EDWARDS,A.,VO,H.,SRIVASTAVA,A.和SRIVASTAVA,A. Vulcan binary
分布式环境中的转换。科技Rep。
MSR-TR-2001-50,Microsoft Research,2001。



Alto [35](静态,由特殊编译器编译的二进制文件,未剥离)


MUTH,R.,DEBRAY,SK,WATTERSON,S。和DE BOSS-CHECHE,K。Alto:A
康柏Alpha的链接时间优化器。软。实践Exper。 31,1
(2001),67–101。



Diablo [13](静态,由特殊编译器编译的二进制文件,未剥离)


DE SUTTER,B.,DE BUS,B。和DE BOSSCHERE,K。链接时间二进制重写技术,用于程序压缩。 ACM Trans。程序。 Lang
Syst。 27,5(2005),882–945。



SecondWrite [3](静态)


ANAND,K. ,SMITHSON,M.,ELWAZEER,K.,KOTHA,A.,GRUEN,J.,GILES,
N.和BARUA,R。基于编译器级中间表示的二进制分析和重写系统。在第八届ACM会议记录
欧洲计算机系统会议上(2013),ACM,第295–308页。


LUK,C.-K.,COHN,R.,MUTH,R.,PATIL,H.,KLAUSER,A.,LOWNEY,G.,
华莱士,S.,REDDI,VJ和HAZELWOOD,K. Pin:使用动态仪器构建定制的程序分析工具。在《 2005年ACM SIGPLAN编程语言设计与实现会议》(2005)的会议记录中,ACM,第190–200页。



DynamoRIO [7](动态)


BREENNING,DL高效,透明和全面的运行时代码
操作。 Miasm是一种免费的开放源代码(GPLv2),它是麻省理工学院的博士学位论文,2004年。
工程框架。
Miasm旨在分析/修改/生成二进制程序。
https://github.com/cea-sec/miasm



VxStripper(动态)


塞巴斯蒂安Josse。 “恶意软件动态重新编译。”系统科学
(HICSS),2014年第47届夏威夷国际会议。 IEEE,2014年。


评论


Miasm2还能够重写二进制代码。

–恐怖
17 Mar 7 '17 at 13:34

我添加了miasm2和VxStripper。

–kn000x
17年7月7日在14:01

作者扩展了他们的工作UROBOROS,它还可以重写二进制代码。

–刘本溪
17-3-9在1:13



我昨天读了这篇论文,并将其添加到我的答案中。我认为这可能对您来说是个不错的选择。

–kn000x
17 Mar 9 '17 at 6:32