
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
ELF节区信息概述:节区名节区说明备注.rodata1和rodata类似,只存放只读数据.comment存放编译器版本信息,如字符串 "GCC:(GNU)4.2.0".debug存放调试信息.shstrtab..
一、术语解释:1.栈顶/栈底[1]: 栈中最后一个push,第一个被pop的位置是栈顶;栈中最后一个被pop,且pop后当前栈为空的位置是栈底;2.Current Function Frame Address[2]: 当前函数栈帧,在aarch64中是当前函数执行完prologue后的栈顶地址, 其可以通过__builtin_frame_address(0)函数获取.3.Canonical Fra
GCC的词法分析是在伴随语法分析完成的,当语法分析过程中找不到下一个token时,就会调用词法分析来解析后续的token。词法分析的代码在./gcc/c-family目录;而C语言语法分析的目录在./gcc/c目录下,词法分析是给所有C家族的语言共用的。GCC的词法分析的主要代码是从cc1(如./gcc/c-family/c-lex.c) => libcpp(如./gcc/libcpp/le
一、背景知识 ——aarch64的函数栈1. 栈生长方向与push/pop操作栈是一种运算受限的线性表,入栈的一端为栈顶,另一端则为栈底,其生长方向和操作顺序理论上没有限定.而在aarch64平台上:栈是向低地址方向增长的(STACK_GROWS_DOWNWARD)栈的PUSH/POP通常要先移动SP:PUSH操作为PRE_DEC,即 PUSH操作为 sp = sp -4; store;POP操作
写在前面的一些杂七杂八的东西ARM从ARMv8开始支持64位架构,当前的ARMv8只有A系列,ARMv8-A架构。新增一套arm64位指令集称为A64,之前的32位arm指令集称为A32, thumb指令集称为T32。定义AArch64/AArch32两套运行环境(称作Execution state)分别执行64/32位指令集。A64和A32指令集的每个指令都是固定4字节的。ARMv8的异
摘要Android是部署最广泛的终端用户操作系统,其覆盖的用例包括: 通信,导航,媒体消费,娱乐,财务,健康以及传感器,执行器,摄像头或麦克风,其基础安全模型需要在各种情况下解决许多实际的威胁。Android的安全模型模型需要在终端用户的安全性,隐私性,可用性,及在资源紧张的硬件配置下保证应用开发和系统性能之间取得平衡。虽然很多设计原则都隐含在了整个系统架构,访问控制机制和漏洞缓解技术中,但And







