摘要: ARM中使用B,BL指令进行跳转,两者之间的差距在于:BL指令可以实现子程序的返回,B指令无法实现子程序的返回。 B指令机器码:0xEA BL指令机器码:0xEB 在反汇编之后,如果是大端的话,指令的第一字节为B/BL的机器码;如果是小端的话,指令的第四个字节为B/BL字节码。 A 偏移值计算方式如 阅读全文
posted @ 2020-09-29 21:26 From_Zero 阅读(3232) 评论(0) 推荐(0) 编辑
摘要: 因为项目的一些需求,需要查看一些汇编指令对应的机器码是什么,也需要查看一些机器码对应的汇编指令是啥,经过网上查找的一些资料,找到了一个比较轻量、方便、快捷的方法。 首先第一步需要配置arm-linux-gcc交叉编译环境;第二步将需要转换的机器码或者汇编指令写到一个.s文件中;第三步使用as和obj 阅读全文
posted @ 2020-09-29 17:36 From_Zero 阅读(6064) 评论(0) 推荐(0) 编辑
摘要: 两个链接,写的都非常的详细、易理解: (1)浅析ELF中的GOT与PLT (2)elf文件的GOT和PLT 链接(1)-- 偏重原理的解释: a. 基础部分 源代码经过编译器的编译以及链接器的链接过程才会生成可执行文件,仅经过编译生成的文件被称为目标文件(.o文件)。编译过程会将源代码使用的高级程序 阅读全文
posted @ 2020-09-29 17:00 From_Zero 阅读(1155) 评论(0) 推荐(0) 编辑
摘要: 参考:ELF文件格式解析 -- 做一个搬运,找起来比较方便 a. ELF32的Program Header Table typedef struct { Elf32_Word p_type; //此数组元素描述的段的类型,或者如何解释此数组元素的信息。 Elf32_Off p_offset; //此 阅读全文
posted @ 2020-09-29 10:53 From_Zero 阅读(983) 评论(0) 推荐(1) 编辑