工具

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软件安全权威指南》原生程序分析 阅读笔记相关推荐

  1. android软件安全权威指南 pdf_AV-TEST 发布 2019 最佳 Android 安全软件榜单

    AV-TEST 近日评测了市场上常见的 21 款 Android 安全软件,发现各产品的恶意软件平均实时检出率达到 97.2%,对过去四周新发现的 Android 恶意软件的实时检出率达到 97.5% ...

  2. JavaScript 权威指南--第七版--阅读笔记--number 部分

    Number 数字类型 JavaScript 的主要数字类型 Number 用于表示整数和近似实数. 当一个数字直接出现在 JavaScript 程序中时,它被称为 数字文字.JavaScript 支 ...

  3. Android开发权威指南(第2版)新书发布

    <Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...

  4. Android开发权威指南(第2版)新书发布(免费下载随书光盘内容,包括Android源代码)

    光盘内容下载 光盘内容下载(新浪微盘) Android4.2.2(CM ROM)源代码下载 如果需要虚拟环境的,这里提供了ubuntu10.04 LTS版本,不需要CPU支持虚拟化(VirtualBo ...

  5. 《Android编程权威指南》-读书笔记(七) -处理旋转设备

    <Android编程权威指南>-读书笔记(七) -处理旋转设备 旋转设备会改变设备配置(device configuration).设备配置是用来描述设备当前状态的一系列特征.这些特征包括 ...

  6. 读书笔记--Android Gradle权威指南(上)

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 最近看了一本书<Android Gradle 权威指南>,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所 ...

  7. 《Android编程权威指南》PhotoGallery应用梳理

    PhotoGalley是<Android编程权威指南>书中另外一个重要的应用.        github:https://github.com/xurui1995/PhotoGaller ...

  8. Android Gradle权威指南

    作者新书<Android Gradle权威指南>指南发布,如果你还在如何入门Android Studio发愁,如何从原来的基于Ant的打包转向基于Gradle的打包,那么这本书就是你需要的 ...

  9. android编程权威指南(第2版)的PhotoGallery项目的练习

    最近在看<<android编程权威指南(第2版)>>这本书,里面有一个叫PhotoGallery的项目,需要用到Flickr的储存图片功能, 但是Flickr不能访问,所以我修 ...

最新文章

  1. 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇
  2. 大型互联网网站架构心得之二:并、换和其它(转)
  3. 小技巧2 - 负边距居中法
  4. maven进阶:一个多模块项目
  5. php留言板实战,PHP留言本,非常适合新手实战操作!
  6. JavaScript数组常用的方法总结
  7. 关于头文件是否参与编译的讨论
  8. cmd命令不识别exp_cmd 命令行exp 命令导出数据库文件
  9. ROR no such file to load -- sqlite3 错误解决方法
  10. linux shell学习问题部分记录
  11. 支付宝钱包流量电量优化实践
  12. java与eclipse不匹配_【JAVA小白】 用eclipse输入格式不匹配的问题
  13. 【深度学习中的数学】高维矩阵乘法规则
  14. 瀑布流效果Demo总结(4)之基于jquery+masonry.js的实现
  15. C语言的printf输出格式
  16. 支持断点续传的大文件传输协议
  17. 基于Bluemix云平台的一个文本转语音应用
  18. SHOGUN toolbox的一些使用心得
  19. java对接微信分享_Java编程调用微信分享功能示例
  20. 读《漂亮女上司》有感

热门文章

  1. 迅雷专用链接原理及转换
  2. 解决高铁WiFi上网问题,中兴新支点ICG与高铁强强联手
  3. OSChina 周五乱弹 —— 那地图上的点到底去哪儿
  4. DELL服务器 R740的风扇设置
  5. 基于MPC的移动机器人轨迹跟踪控制qpOASES例程
  6. 新浪微博--分享到微博的简单使用
  7. windows防火墙是干什么的_请教个人防火墙是做什么用的,
  8. 不讨老婆之“不亦快哉”(三十三则)(李敖)
  9. 手持无刷云台三轴全角度到底有多少坑
  10. 计算机网络----数据交换方式虚电路