《Android软件安全权威指南》原生程序分析 阅读笔记
工具
NDKToolchain
是一套工具集,比如elf,READELF -l/-S可以查看Program Header Table与Section Header Table。-e参数为查看elf所有的文件头信息。
OBJDUMP -p查看Program Header Table,-x查看所有文件头信息。-d命令用于反汇编ELF并查看汇编代码。-t查看符号表,-r查看重定位。
ida的view->open subview->proximity xxx,可以看到函数大致流程比如:
然后修改文件可以使用给文件打补丁的方式,edit->patch program->assemble,因为IDA pro不支持AArch64架构汇编,要使用插件,Keypatch插件。
编译原生C程序
for循环
通常,for循环语句开始处调整指令的比较条件是for循环的终止条件,跳转指令与跳转地址之间的指令为for循环的循环体。
一种快速分析for循环的方法是查看函数末尾无条件跳转指令,它的跳转目的地址就是for循环的开头。
C++逆向
下面是一段经过f5的代码。
方法指针转换成void*指针,占用字节数与平台相关,ARM中4字节,AArch64为8字节,var_type1与var_type2表示各种类型的字段。
通过C++对象模型代码知道,开头指针是类的方法指针列表。保存雷电虚方法列表,在代码中用vtable表示,下面则是雷电方法与字段。
C++类遵循以下准则。
- 由new()完成类大小字节的内存空间申请。
- 执行当前类初始化方法。
- 如果由父类,则在初始化方法中对基类的vtable与成员变量初始化。
- 入宫父类包含父类,进一步初始化,知道所有父类被初始化。
- 初始化当前类的vtable与成员变量。
- 初始化完成后,访问vtable中指针调用当前类的虚方法。
所以:
C++的RTTI
RTTI是Run-Time Type Identification,运行时类型信息。提供:
typeid操作符:返回指针和引用所指的实际类型。
dynamic_cast操作符:将基类类型的指针或引用安全地转换为派生类型的引用或者指针。
《Android软件安全权威指南》原生程序分析 阅读笔记相关推荐
- android软件安全权威指南 pdf_AV-TEST 发布 2019 最佳 Android 安全软件榜单
AV-TEST 近日评测了市场上常见的 21 款 Android 安全软件,发现各产品的恶意软件平均实时检出率达到 97.2%,对过去四周新发现的 Android 恶意软件的实时检出率达到 97.5% ...
- JavaScript 权威指南--第七版--阅读笔记--number 部分
Number 数字类型 JavaScript 的主要数字类型 Number 用于表示整数和近似实数. 当一个数字直接出现在 JavaScript 程序中时,它被称为 数字文字.JavaScript 支 ...
- Android开发权威指南(第2版)新书发布
<Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...
- Android开发权威指南(第2版)新书发布(免费下载随书光盘内容,包括Android源代码)
光盘内容下载 光盘内容下载(新浪微盘) Android4.2.2(CM ROM)源代码下载 如果需要虚拟环境的,这里提供了ubuntu10.04 LTS版本,不需要CPU支持虚拟化(VirtualBo ...
- 《Android编程权威指南》-读书笔记(七) -处理旋转设备
<Android编程权威指南>-读书笔记(七) -处理旋转设备 旋转设备会改变设备配置(device configuration).设备配置是用来描述设备当前状态的一系列特征.这些特征包括 ...
- 读书笔记--Android Gradle权威指南(上)
本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 最近看了一本书<Android Gradle 权威指南>,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所 ...
- 《Android编程权威指南》PhotoGallery应用梳理
PhotoGalley是<Android编程权威指南>书中另外一个重要的应用. github:https://github.com/xurui1995/PhotoGaller ...
- Android Gradle权威指南
作者新书<Android Gradle权威指南>指南发布,如果你还在如何入门Android Studio发愁,如何从原来的基于Ant的打包转向基于Gradle的打包,那么这本书就是你需要的 ...
- android编程权威指南(第2版)的PhotoGallery项目的练习
最近在看<<android编程权威指南(第2版)>>这本书,里面有一个叫PhotoGallery的项目,需要用到Flickr的储存图片功能, 但是Flickr不能访问,所以我修 ...
最新文章
- 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇
- 大型互联网网站架构心得之二:并、换和其它(转)
- 小技巧2 - 负边距居中法
- maven进阶:一个多模块项目
- php留言板实战,PHP留言本,非常适合新手实战操作!
- JavaScript数组常用的方法总结
- 关于头文件是否参与编译的讨论
- cmd命令不识别exp_cmd 命令行exp 命令导出数据库文件
- ROR no such file to load -- sqlite3 错误解决方法
- linux shell学习问题部分记录
- 支付宝钱包流量电量优化实践
- java与eclipse不匹配_【JAVA小白】 用eclipse输入格式不匹配的问题
- 【深度学习中的数学】高维矩阵乘法规则
- 瀑布流效果Demo总结(4)之基于jquery+masonry.js的实现
- C语言的printf输出格式
- 支持断点续传的大文件传输协议
- 基于Bluemix云平台的一个文本转语音应用
- SHOGUN toolbox的一些使用心得
- java对接微信分享_Java编程调用微信分享功能示例
- 读《漂亮女上司》有感