IDA编译头文件

打开菜单中Options ->Compiler…

按 Ctrl+F9 载入头文件(例如jni.h)

IDA拍摄快照

拍摄快照:快捷键Ctrl + Shift + W
管理快照:快捷键Ctrl + Shift + T

IDA创建结构体

参考:https://thinkycx.me/2019-07-15-how-to-create-structs-in-IDA.html

方式1:通过Structures Subview手动创建

(感觉不是很方便,还是编译头文件更好用)
选择Structures选项卡
按Insert新建结构体(对ROG而言是Fn+Delete)

第一个复选框:决定新结构体在结构体窗口中的显示位置
第二个复选框:是否在窗口中显示新结构体
第三个复选框:是否创建联合体

创建完成后:

方式2:通过头文件

IDA还原结构体

参考:https://blog.seeflower.dev/archives/173/

IDA中,32位的指针类型是int*,64位的指针类型是__int64*
__int64如果看着不太顺眼,可以使用int64_t来代替。IDA中没法直接找到int64_t这个类型,但是如果使用了这个写法IDA会自动关联

示例:

struct nameserver {int socket;int64_t *connection;_BYTE address[128];socklen_t addrlen;int failed_times;int timedout;_BYTE event[200];
};

IDA修改函数声明

右键函数名 → Set item type

IDA修改函数调用处的函数定义

右键函数名 → Set call type

IDA修改函数参数类型

右键参数 → Set Ivar type

IDA 处理伪代码JUMPOUT指令

函数被IDA错误合并

IDA分析so时,可能会遇到反编译结果不准确的情况,如下:

这里的两个JUMPOUT其实解析有问题,如下:

例如loc_18B27B0被解析成了HEN_WriteBlock函数的一个分支中的代码:

Tab查看结果如下:

但是其实loc_18B27B0处是一个独立的函数。

函数重新识别

Undefine HEN_WriteBlock函数(找到HEN_WriteBlock函数的函数名,按U)

然后再回到HEN_ReadBlock函数,进而找到loc_18B27B0:

在loc_18B27B0处create function(右键→Create Function,或者按p):

回到HEN_ReadBlock

按F5,发现loc_18B27B0处的函数已经被识别出来了:

同法处理另一个函数loc_18B2868后:

(如果伪代码更新不过来,就先进入sub_18B2868的伪代码,然后再重新进入HEN_ReadBlock的伪代码,再按F5)

(如果更上层的函数的伪代码更新不过来,也是同法,先进入下层函数伪代码,再回到上层函数伪代码并按F5)

【Android安全】IDA使用技巧相关推荐

  1. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  2. Android Studio使用小技巧:提取方法代码片段

    今天,讲讲android studio使用的小技巧.把代码直接提取一个函数. 有些时候我们在一个方法内部写了过多的代码,然后想要把一些代码提取出来再放在一个单独的方法里,通常我们的做法是复制粘贴,现在 ...

  3. android 字体加粗有阴影,Android TextView高级显示技巧实例小结

    本文实例总结了Android TextView高级显示技巧.分享给大家供大家参考,具体如下: 1. 自定义字体 可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而And ...

  4. Android课程---Android Studio使用小技巧:提取方法代码片段

    这篇文章主要介绍了Android Studio使用小技巧:提取方法代码片段,本文分享了一个快速复制粘贴方法代码片段的小技巧,并用GIF图演示,需要的朋友可以参考下 今天来给大家介绍一个非常有用的Stu ...

  5. Android 源码编译技巧--模块清理

    参考之前的 Android 源码编译技巧–模块编译_南国樗里疾的博客-CSDN博客 https://blog.csdn.net/weixin_44021334/article/details/1069 ...

  6. Android studio 试用小技巧

    本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本文将这62 ...

  7. Android STB 高效调试技巧

    文章目录 一.编译 1.1 版本全编 1.2 模块单编 1.3 芯片特有单编模块 1.3.1 Uboot 1.3.2 boot.img&dt.img 二.调试 2.1 文件替换 2.1.1 常 ...

  8. Android应用商店上架技巧(企业版)

    Android应用商店上架技巧(企业版) 说老实话,这些年随着Android系统的逐渐成熟,各大应用市场对Android应用的上架审核也越加严格,因此在上架应用之前,还是要做好准备工作的,不然审核被打 ...

  9. s7如何让android系统省电,Android五大省电技巧 让你告别省电软件

    类型:iPhone|iPad大小:11.5M语言:中文 评分:1.3 标签: 立即下载 对于智能手机来说,待机时间过短一直是广大用户的烦恼,即便是搭载了超大容量的电池,也难逃一天一充电的尴尬局面.近日 ...

  10. android studio 热部署,Android Studio 你不知道的调试技巧

    原标题:Android Studio 你不知道的调试技巧 (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者 - weishu http://android.jobbole.com/83282/ ...

最新文章

  1. tensorflow tf.py_func
  2. [题解]洛谷P1119 灾后重建
  3. 数据库的几种联结,union,union all ,inner jion ,left jion,right jion ,cross jion
  4. javascript函数调用的几种方式
  5. 网易云信获中国IM云服务领域首个CSA STAR认证
  6. VTK:可视化之FrogSlice
  7. mysql返回值_mysql_query的返回值
  8. OBS bit rate推流比特率最佳设置
  9. redis通配符批量删除keys——del
  10. linux网站权限恢复,RMAN异机恢复——备份集权限问题
  11. linux skyeye,在Ubuntu 10.04上安装SkyEye及测试
  12. 注册时要求获取手机短信码的实现(java)
  13. Android通过浏览器打开App并传递参数
  14. 第七章、绘制3D图表和统计地图
  15. kubernetes原生ci/cd工具tekton版本升级至v0.18.1
  16. Python语言程序设计(嵩天老师)-期末考试3.2-站队顺序输出
  17. 成功解决: 支付宝报错钓鱼网站
  18. Learning Local Search Heuristics for Boolean Satisfiability 2020-04-30
  19. OpenXml开发-基本环境
  20. 博客嵌入可以自适应的b站视频

热门文章

  1. ASUS电脑显示未连接扬声器(英特尔智音技术版),声卡驱动修复,Realtek修复
  2. 利用 Python 一键下载网易云音乐 10W+ 乐库
  3. 网页版github上新建文件夹
  4. java sql 练习
  5. ie浏览器使用pdf时需要先安装软件Adobe Reader 9
  6. Qt开发Gif播放器
  7. tiledmap瓦片地图使用
  8. (翻译)Attacking Interoperability(攻击互操作性)in Black Hat 2009 研究报告
  9. App打开小程序,无法跳转回App的问题
  10. ES学习(四)拼音插件分词elasticsearch-analysis-pinyin