随笔分类 - 二进制Binary
二进制相关~
摘要:概要 本篇博客主要包括两个方面的内容: 整理栈涉及到的一些基本概念、ARM架构下栈相关的操作指令; 分析一个函数调用实例。 * 栈的基本知识 栈的概念 栈 首先,栈是一种先进后出(FILO)的数据结构,栈底是第一个进栈数据所在的位置,栈顶是最后一个进栈数据所在的位置。 其次,栈也是内存中的一段特殊空
阅读全文
摘要:前情提要 在学习《家用路由器0day漏洞挖掘技术》一书中修复二进制仿真环境部分的时候,书中采用动态库劫持的方式,重新实现了二进制中仿真失败的函数,并将源文件使用交叉编译链编译为目标架构下的动态库文件。我按照此链接中的方式安装了arm-linux-gnueabi之后,编译生成的so文件无法使用,经过分
阅读全文
摘要:换种方式理解 ELF 文件格式 ← 文章链接在这里 作者以公司结构类比ELF文件格式,用一种全新的方式讲解ELF格式每一部分存在的必要性,非常的生动形象。 所以在此记录。
阅读全文
摘要:ARM中使用B,BL指令进行跳转,两者之间的差距在于:BL指令可以实现子程序的返回,B指令无法实现子程序的返回。 B指令机器码:0xEA BL指令机器码:0xEB 在反汇编之后,如果是大端的话,指令的第一字节为B/BL的机器码;如果是小端的话,指令的第四个字节为B/BL字节码。 A 偏移值计算方式如
阅读全文
摘要:因为项目的一些需求,需要查看一些汇编指令对应的机器码是什么,也需要查看一些机器码对应的汇编指令是啥,经过网上查找的一些资料,找到了一个比较轻量、方便、快捷的方法。 首先第一步需要配置arm-linux-gcc交叉编译环境;第二步将需要转换的机器码或者汇编指令写到一个.s文件中;第三步使用as和obj
阅读全文
摘要:两个链接,写的都非常的详细、易理解: (1)浅析ELF中的GOT与PLT (2)elf文件的GOT和PLT 链接(1)-- 偏重原理的解释: a. 基础部分 源代码经过编译器的编译以及链接器的链接过程才会生成可执行文件,仅经过编译生成的文件被称为目标文件(.o文件)。编译过程会将源代码使用的高级程序
阅读全文
摘要:参考:ELF文件格式解析 -- 做一个搬运,找起来比较方便 a. ELF32的Program Header Table typedef struct { Elf32_Word p_type; //此数组元素描述的段的类型,或者如何解释此数组元素的信息。 Elf32_Off p_offset; //此
阅读全文
摘要:使用工具:IDA pro v7.0,安装时自动安装Python 2.7.13(win32) 1. 首先使用IDA打开一个项目 2. File选项下 “Script file...”选项可选择idc或py文件,打开即运行,运行结果显示在界面下方的Output window中; “Script comm
阅读全文
摘要:本篇为转载,原链接如下:http://bdxnote.blog.163.com/blog/static/8444235201532911597959/ 主要是做一个个人的资料收集,以后可以快速找到。Ps.如果不喜欢被我转载,可以联系我删掉,谢谢! 1、ELF文件内容解析readelf : 可解析EL
阅读全文
摘要:+以下内容摘抄自:ELF文件系列第三篇ELF文件静态结构中的节 +【附声明和链接如下】 版权声明:本文为CSDN博主「广敏」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/u011298001/java/arti
阅读全文
摘要:• Section Header ELF文件中的Section Header定义如下(32位): /* Section header. */ typedef struct { Elf32_Word sh_name; /* Section name (string tbl index) */ Elf3
阅读全文
摘要:ELF文件包含文件头(ELF Header)、程序头表(Program Head Table)、节(Sections)或段(Segments)、节头表(Section Header Table)四个部分。ELF文件提供了两种视图,分别是链接视图和执行视图。其中,节是链接视图的基本单位,在文件进行链接
阅读全文

浙公网安备 33010602011771号