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. LIVE 预告 | TransGAN:丢弃卷积,纯Transformer构建GAN网络
  2. SpringMVC 课纲
  3. 【EASYDOM系列教程】之创建页面元素
  4. php多图片上传封装类,php----图片上传封装类:单张,多张图片上传,生成缩略图...
  5. Python多线程及其使用方法
  6. ASP.NET Core知多少(7):对重复编译说NO -- dotnet watch
  7. 写在自己工作六年:转载《软件工程师六年心得体会》
  8. [转载] Java中的abstract关键字
  9. java 通过eclipse编辑器用mysql尝试 连接数据库
  10. BZOJ2286 [Sdoi2011]消耗战
  11. WinNT无盘Win95维护经验
  12. 2022-08-01 网工进阶(二十四) STP进阶知识
  13. R语言survival包coxph函数构建cox回归模型、ggrisk包ggrisk函数可视化Cox回归的风险评分图、使用cutoff包基于最小p值法方法计算最佳截断值(基于LIRI基因数据集)
  14. 农产品商铺商城小程序(JavaSSM+微信小程序)
  15. springboott整合mybatis-plus和sharding-jdbc实现分库分表和读写分离(含完整项目代码)
  16. 搭建ntp时间同步服务器,解决cm时间问题
  17. CDQ分治——学习笔记
  18. SAP 物料的最小订购量、及舍入值的测试
  19. 浅谈SAML, OAuth, OpenID和SSO, JWT和Session
  20. 屏蔽无法验证发行者,你确实要运行此软件吗?的提示

热门文章

  1. ArcMap合并多个图层
  2. python字典对象的方法返回字典的值列表_python对象转字典的两种实现方式示例
  3. 她与父亲的小故事(我支持你)
  4. 亚派科技与涂鸦智能签署深度合作协议,携手深耕智能化领域产业升级
  5. PMP考试技巧汇总(第六版)
  6. springBoot之 Redis 实例
  7. cloudsim4.0中CloudSimExample2分析
  8. ajax upload file.js,jquery.ajaxfileupload.js
  9. 小尺寸2.4G/5.8G 双频内置SMD天线方案 OverAir OA-W01天线
  10. 虞美人.听雨 - 蒋捷