个人原创,转帖请注明来源:cnblogs.com/jailbreaker[iOS逆向实战]这个系列的帖子,会涉及到arm汇编,以及调试工具的使用,加上实战解析一步步逆向,深入浅出。这是第一篇帖子,简要说下arm的各个寄存器的功能。R0-R3:用于函数参数及返回值的传递R4-R6, R8,R10-R1...
分类:
移动开发 时间:
2014-12-13 21:48:44
阅读次数:
246
在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。 在 ARM...
分类:
其他好文 时间:
2014-12-03 21:14:18
阅读次数:
270
create_page_table完成了3种地址映射的页表空间填写:
(1)turn_mmu_on所在1M空间的平映射
(2)kernel image的线性映射
(2)bootparams所在1M空间的线性映射...
分类:
系统相关 时间:
2014-11-24 19:21:27
阅读次数:
441
ARM处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令6大指令。一、跳转指令跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转。Ⅰ.使用专门的跳转指令;Ⅱ.直接向程序计数器PC写入跳转地址值,通...
分类:
其他好文 时间:
2014-11-17 11:58:56
阅读次数:
209
ARM伪指令在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。在A...
分类:
其他好文 时间:
2014-10-31 01:13:59
阅读次数:
311
ARM的汇编编程,本质上就是针对CPU寄存器的编程,所以我们首先要弄清楚ARM有哪些寄存器?这些寄存器都是如何使用的?ARM寄存器分为2类,普通寄存器和状态寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R...
分类:
其他好文 时间:
2014-10-09 18:25:57
阅读次数:
251
ARM 汇编与C之间的函数调用需要符合ATPCS,建议函数的形参不超过4个,如果形参个数少于或等于4,则形参由R0,R1,R2,R3四个寄存器进行传递;若形参个数大于4,大于4的部分必须通过堆栈进行传递。 R0 用来存放函数的第一个参数,R1用来存放第二个参数,R2用来存放第三个参数,R3用来存放第...
分类:
其他好文 时间:
2014-10-09 16:23:27
阅读次数:
168
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点 (www.gnu....
分类:
其他好文 时间:
2014-08-19 16:04:44
阅读次数:
322