花名:白杨 | 职业:android app 加固 | qq:2597294287

#

[置顶] 【我的学习笔记】汇总

摘要: ilocker 的学习笔记汇总 阅读全文

posted @ 2015-07-12 20:21 ilocker 阅读(549) 评论(0) 推荐(0) 编辑

2015年11月26日 #

ELF Format 笔记(十五)—— 符号哈希表

摘要: 符号哈希表用于支援符号表的访问,能够提高符号搜索速度。 阅读全文

posted @ 2015-11-26 12:50 ilocker 阅读(2037) 评论(0) 推荐(0) 编辑

2015年11月24日 #

ELF Format 笔记(十四)—— 段内容

摘要: 一个段 (segment) 由一个或多个节 (section) 组成,但这对 android linker 是透明的,linker 在加载程序时没有用到节信息。所以对于一个 so 文件,修改 ELF Header 中和节有关的成员 (e_shoff、e_shentsize、e_shnum) 不会影响程序运行。 阅读全文

posted @ 2015-11-24 18:05 ilocker 阅读(900) 评论(0) 推荐(0) 编辑

ELF Format 笔记(十三)—— 段权限

摘要: 一个可被系统加载的程序至少拥有一个可加载段。当系统创建可加载段的内存映像时,会根据 p_flags 赋予一定的访问权限。 阅读全文

posted @ 2015-11-24 15:13 ilocker 阅读(925) 评论(0) 推荐(0) 编辑

ELF Format 笔记(十二)—— 段类型(segment types)

摘要: 如果段类型是 PT_NULL,那相应程序头结构体的其它成员都无意义,该程序头项可被忽略。 阅读全文

posted @ 2015-11-24 15:08 ilocker 阅读(2304) 评论(0) 推荐(0) 编辑

ELF Format 笔记(十一)—— 程序头结构

摘要: 程序头表 (program header table) 是一个结构体数组,数组中的每个结构体元素是一个程序头 (program header),每个程序头描述一个段 (segment)。 阅读全文

posted @ 2015-11-24 14:51 ilocker 阅读(3268) 评论(0) 推荐(0) 编辑

2015年10月25日 #

LLVM 笔记(五)—— LLVM IR

摘要: LLVM 的 IR (Intermediate Representation) 是其设计中的最重要的部分。优化器在进行代码优化时所进行的分析和转换都是针对 IR 的。 阅读全文

posted @ 2015-10-25 14:29 ilocker 阅读(3578) 评论(0) 推荐(0) 编辑

2015年10月24日 #

LLVM 笔记(四)—— three-phase 设计的收益

摘要: 采用 three-phase 的设计方式,便于编译器支持多种语言和多种目标平台。 阅读全文

posted @ 2015-10-24 10:57 ilocker 阅读(778) 评论(0) 推荐(0) 编辑

2015年10月23日 #

ELF Format 笔记(十)—— 重定位(relocation)

摘要: 重定位就是把符号引用与符号定义链接起来的过程,这也是 android linker 的主要工作之一。 阅读全文

posted @ 2015-10-23 16:31 ilocker 阅读(2011) 评论(0) 推荐(0) 编辑

2015年10月21日 #

LLVM 笔记(三)—— 了解传统编译器设计

摘要: 传统的静态编译器 (如大多数的 C 语言编译器) 通常将编译工作分为三个阶段,分别由三个组件来完成:前端、优化器和后端。 阅读全文

posted @ 2015-10-21 15:14 ilocker 阅读(1191) 评论(0) 推荐(0) 编辑

LLVM 笔记(二)—— PHI node

摘要: 所有 LLVM 指令都使用 SSA (Static Single Assignment,静态一次性赋值) 方式表示。意思是所有变量都只能被赋值一次,这样做主要是便于后期的代码优化。 阅读全文

posted @ 2015-10-21 11:33 ilocker 阅读(7734) 评论(0) 推荐(0) 编辑

导航