ELF分析 实践

分析ELF文件:

首先编写一个.c文件,并使用gcc -c xx.c -o xx.o 对其进行编译。

我在这个实践中是ELF_1.o文件。

接下来输入ls -l ELF_1.o 查看重定位文件的信息。

接下来以十六进制来查看该文件信息。输入:hexdump -x ELF_1.o

显示信息的最左一列表示的是偏移地址的16进制表示。

查看ELF文件头定义的规范。打开elf.h查看各部分内容的定义。

我们可以看出,32位的系统与64位的系统的ELF头部分结构大致相同。只是个别字段所占用的字节个数有不同罢了。

分析一下ELF头:

第二行中的第三、四个字节为0x003e 表示是x86-64的处理器。后四个字节0x00000001,表示的是当前版本。后八个字节表示程序的入口点,当前为0.

第三行的前八个字节表示程序头表,当前为0.后八个字节为段表的偏移地址:0x00000000000003f0.

第四行中,第七、八个字节表示段头大小为64字节,第九、十字节表示段表的入口有13个。最后两个字节是表示段名串表(符号表)在段表中的索引号为10.

段表的分析:

32位系统的段表定义每个段头大小是28H字节,而64位系统则变成了64字节(40H)。

40H*13=340H,ELF文件头数据结构存储在位偏移为0x0000000000000000-0x0000000000000039之间,而段表存储在0x00000000000003f0-0x0000000000000340之间。

符号表的分析:

32位系统的符号表结构体大小是16字节,而64位系统符号表结构体的大小为22个字节。

由图可知,一共15 个段表。

text.section 起始位置、大小如图所示。

text.section是可执行指令的集合,offset=0x00000040,size =74H.

data.section是初始化后数据的集合,offset=0x000000b4,size=4H.

symtab.section是存放所有section名字的集合。offset=0x00000140,size=150H.

strtab.section是存放所有符号的名字的集合。offset=0x00000290,size=1eH.

时间: 2024-10-27 11:51:31

ELF分析 实践的相关文章

OSSIM平台安全事件关联分析实践

OSSIM平台安全事件关联分析实践 在<开源安全运维平台OSSIM最佳实践>一书中叙述到,事件关联是整个OSSIM关联分析的核心,对于OSSIM的事件关联需要海量处理能力,主要便于现在需要及时存储从设备采集到的日志,并能关联匹配和输出,进而通过Web UI展示.从实时性上看,关联分析的整个处理过程不能间断,这对系统的实时性要求较高,另外Ossim系统是基于规则的,Ossim内部具有多套高速规则分析引擎,以实现模式匹配和对关联分析结果调用.所以系统的关联引擎是一个典型数据处理系统,必须依靠强大的

日志分析实践与应用

日志分析实践与应用 这个场景是,日志系统平时为了系统处理能力,我们使用INFO级别或ERROR级别,当发现问题时,我们需要不停服务的动态的将日志级别变更为DEBUG以便在执行细节发现问题,下面列举了动态变更的操作,需要借助代码.定时和配置中心服务. 在微服务的场景,日志是散落在各个服务集群节点中,不方便查看,所以我们需要通过集中收集到一处保存.查看和分析. 应用程序中日志的配置 logback.xml 1.在configuration中配置include,引用defaults.xml.conso

Rada分析实践

一.实验选题背景: 北京大学网络攻防技术与实践课程--Rada分析(北京大学计算机研究所信安中心) 二.实验操作 0X01 确认文件完整性 或是在linux 下使用md5sum工具进行计算哈希值. 确认文件格式 使用命令:strings RaDa.exe | less 查看程序可以打印的字符串 发现呈现乱码,推测程序加壳. 0X02 目标运行测试 注意:目标程序运行测试请勿在工作环境下进行 运行filemon.wireshark.regmon监控工具,然后再执行样本rada.exe,使用上述三个

使用GoAccess分析Nginx日志以及sed/awk手动分析实践

前言 使用Nginx的网站可能会遇到访问流量异常.被友情检测.程序出现Bug等各种突然情况,这时大家的反应想必都是第一时间分析日志,然后发现日志有几十GB之多,又需要按照时间.错误类型或者关键字段检索信息时会不会有种醍醐灌顶.菊花一紧的错觉.文中介绍的方法不管是GoAccess还是sed/awk虽然可以解决一时的问题但未必能够治本,也许ELK(Logstash+ElasticSearch+Kibana)对我们大多数人来说是更合理的集中化日志管理解决方案. 日志固然重要,但努力建设适合业务发展的集

loadrunner提高篇-结果分析实践

分析图合并 一.分析图合并原理 选择view->merge graphs,弹出如图1所示对话框 图1(设置合并图) 1.选择要合并的图.选择一个要与当前活动图合并的图,注意这里只能选择X轴度量单位相同的图. 2.选择合并类型. 1)叠加:查看共用同一X轴的两个图的内容.合并图左侧的Y轴显示当前图的Y轴值,右边的Y轴显示合并进来的图的Y轴值,如图2所示 图2(叠加合并分析图) 2)平铺:在平铺布局查看,共用同一个X轴,合并进来的图显示在当前图的上方,如图3所示 图3(平铺合并分析图) 3)关联:合

SAS-&gt;关联分析实践

SAS系统被誉为国际上的标准软件系统,本文将详细介绍如何在SAS/EM模块中进行关联规则数据挖掘,使用的软件版本是SAS 9.1.3下的Enterprise Miner 4.3: 从SAS顶端的[解决方案(S)]菜单下调出企业数据挖掘(也可以通过在命令行输入miner): SAS/EM的初始界面如下: 接下来,将数据挖掘外接程序示例数据集中的Associate表导入SAS逻辑库.先将xlsx文件另存为xls文件,再双击SAS资源管理器中的逻辑库,从[文件(F)]菜单下调出[导入数据]对话框: 点

转://Oracle数据库补丁分析实践

小弟我最近做了几次补丁分析,最开始分析补丁,感觉挺痛苦的,因为补丁数量多,且涉及的知识点非常非常的广,客户的要求又非常高.挺伤不起的.不过随着分析的深入,我慢慢的掌握了一些小方法.也在support网站上找到了一些相关性的文章.现在进步了很多.所以想写篇文章,帮助那些受此困扰的兄弟们. 早在几年前,我的一个客户朋友告诉我一件事情,他们升级数据库到最新版本,结果上线后发现一条SQL运行错误,返回的结果集和以前版本返回的结果集不一致,他们紧急开了SR,申请了新补丁开发,可是这个过程需要一定的时间.最

20199325 2019-2020-2 实践三网络嗅探与协议分析实践

目录 实验三: 任务一:根据教材参考代码,编写有个简单网络抓包工具,要求核心代码和运行结果截图1-2张.代码push到码云 任务二找一个网站或者搭建一个本地网站,登录网站,并嗅探,分析出账号和密码,结果截图1-2张.(3分) 任务三: 抓取手机App的登录过程数据包,分析账号和密码.可以用邮箱.各类博客.云班课. 实验三: 任务一:根据教材参考代码,编写有个简单网络抓包工具,要求核心代码和运行结果截图1-2张.代码push到码云 #coding:UTF-8 from scapy.all impo

20135327--linux内核分析 实践二

内核模块编译 1.实验原理 Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合.之所以提供模块机制,是因为Linux本身是一个单内核.单内核由于所有内容都集成在一起,效率很高,但可扩展性和可维护性相对较差,模块机制可弥补这一缺陷. Linux模块可以通过静态或动态的方法加载到内核空间,静态加载是指在内核启动过程中加载:动态加载是指在内核运行的过程中随时加载. 一个模块被加载到内核中时,就成为内核代码的一部分.模块加载入系统时,系统修改内核中的符号表,将新加载的模块提供的资源和符号添