/note

arm汇编学习_linker学习笔记_Android逆向学习笔记

note

Arm64汇编学习(站在编译器的角度学习)

01.Arm寄存器

02.Arm32读PC寄存器

03.Arm数据访问指令

04.Arm读取状态寄存器

05.Arm整数移位除法

06.Arm调用约定

07.Arm条件指令

08.Arm64堆栈保护机制

09.Arm IF Switch对应实现

10.NZCV标志位

11.ForWhile汇编解析

12.堆栈对齐stack_aligin汇编解析.md

13.数组array汇编解析.md

14.结构体struct汇编解析.md

15.指针pointer汇编解析.md

16.移位位运算汇编解析.md

17.逻辑位运算汇编解析.md

Arm64相关文档

Arm64官方手册_查阅C6.2

ELF文件解析与自己编写linker

https://github.com/nzcv/note/tree/master/linker/00elf.md

https://github.com/nzcv/note/tree/master/linker/01elfheader.md

https://github.com/nzcv/note/tree/master/linker/02mmap.md

https://github.com/nzcv/note/tree/master/linker/05symtab.md

https://github.com/nzcv/note/tree/master/linker/06import_dyn.plt.md

https://github.com/nzcv/note/tree/master/linker/07hasthtable.md

https://github.com/nzcv/note/tree/master/linker/08dyn.rel.md

https://github.com/nzcv/note/tree/master/linker/09section.md

代码实现:

https://github.com/nzcv/note/releases/download/note_books/mylinker.zip

NDK对应clang版本号

android-ndk-r20  -> clang version 8.0.7
android-ndk-r21e -> clang version 9.0.9
android-ndk-r22b -> clang varsion 11.0.5 (match https://godbolt.org/)

其他帮助学习网站

https://yifengyou.gitbooks.io/learn-c/content/

https://www.one-tab.com/page/KxuI8ZPrQh66sloC1hb0gg

https://github.com/keystone-engine/keypatch