加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

GNU binutils里的优秀武器

发布时间:2021-06-06 02:09:59 所属栏目:教程 来源:互联网
导读:想象一下,在无法会见软件的源代码时,但如故可以或许领略软件的实现方法,在个中找到裂痕,而且更锋利的是还能修复错误。全部这些都是在只有二进制文件时做到的。这

想象一下,在无法会见软件的源代码时,但如故可以或许领略软件的实现方法,在个中找到裂痕,而且更锋利的是还能修复错误。全部这些都是在只有二进制文件时做到的。这听起来就像是超手段,对吧?

你也可以拥有这样的超手段,GNU 二进制适用措施(binutils)就是一个很好的出发点一个二进制器材集,默认环境下全部 Linux 刊行版中城市安装这些二进制器材。

二进制说明是计较机行业中最被低估的手艺。它首要由恶意软件说明师、反向工程师和行使底层软件的人行使。

本文切磋了 binutils 可用的一些器材。我行使的是 RHEL,可是这些示例应该在任何 Linux 刊行版上可以运行。

[~]#cat/etc/redhat-release

RedHatEnterpriseLinuxServer release 7.6(Maipo)

[~]#

[~]#uname-r

3.10.0-957.el7.x86_64

[~]#

请留意,某些打包呼吁(譬喻 rpm)在基于 Debian 的刊行版中也许不行用,因此请行使等效的 dpkg 呼吁更换。

软件开拓的基本常识

在开源天下中,我们许多人都专注于源代码情势的软件。当软件的源代码随时可用时,很轻易得到源代码的副本,打开喜好的编辑器,喝杯咖啡,然后就可以开始试探了。

可是源代码不是在 CPU 上执行的代码,在 CPU 上执行的是二进制可能说是呆板说话指令。二进制或可执行文件是编译源代码时得到的。纯熟的调试职员深谙凡是这种差别。

编译的基本常识

在深入研究 binutils 软件包自己之前,最好先相识编译的基本常识。

编译是将措施从某种编程说话(如 C/C++)的源代码(文本情势)转换为呆板代码的进程。

呆板代码是 CPU(或一样平常而言,硬件)可以领略的 1 和 0 的序列,因此可以由 CPU 执行或运行。该呆板码以特命名目生涯到文件,凡是称为可执行文件或二进制文件。在 Linux(和行使 的 BSD)上,这称为(可执行和可链接名目Executable and Linkable Format)。

在天生给定的源文件的可执行文件或二进制文件之前,编译进程将经验一系列伟大的步调。以这个源措施(C 代码)为例。打开你喜好的编辑器,然后键入以下措施:

#include<stdio.h>

 

int main(void)

{

printf("Hello Worldn");

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读