ida入门教程

简介: ida入门教程

ELF

image.png

ELF64:Executable and Linkable Format

DWARF

image.png

DWARF 第一版发布于 1992 年, 主要是为UNIX下的调试器提供必要的调试信息,例如PC地址对应的文件名及行号等信息,以方便源码级调试,  其包含足够的信息以供调试器完成特定的一些功能, 例如显示当前栈帧(Stack Frame)下的局部变量, 尝试修改一些变量, 直接跳到函数末尾等。

有足够的可扩展性,可为多种语言提供调试信息: 如: Ada, C, C++ , Fortran, Java, Objective C, Go, Python, Haskell ... ,  除了编译/调试器外,还可用于从运行时地址还原源码对应的符号|行号的工具(如: atos)

ida的自动分析过程和阶段

ida分析so的过程是异步的,

自动分析会先后有多个阶段,其中阶段的名称是2个字母的缩写,可以在左下角看到

具体阶段和含义是:

  • FL:<address> execution FLow is being traced
  • PR:<address> a function (=PRocedure?) is being created
  • TL:<address> a function TaiL is being created
  • SP:<address> the Stack Pointer is being traced
  • AC:<address> the Address is being analyzed
  • LL:<number> a signature file is being loaded
  • L1:<address> the first pass (Level 1) of FLIRT
  • L2:<address> the second pass (Level 2) of FLIRT
  • L3:<address> the third pass (Level 3) of FLIRT
  • TP:<address>TPpe information is being applied
  • FI:<address> the FInal pass of autoanalysis
  • WF:<address>Weak execution Flow is being traced
  • AU: idleAutoanalysis is finished

image.png


一般我们没有必要等待全部分析完毕,除非我们观察到的地址ida没有分析到

快捷键

使用tab键在text view和Pseudo之间快速切换

查找引用

image.png

快捷键为X,在结果列表中列出来调用这个函数的所有地方,offset可以认为是函数内的某一行

image.png

ida的引用列表还展示了前后关系

Imports窗口是导入表(so调用到外面的函数)

image.png

Exports窗口是导出表(so中能让外部调用的函数)

image.png

ida 会智能还原出pseudo code(伪代码)

image.png

导入jni头文件更加智能还原代码

image.png

报错

vbnet
复制代码
Error G:\sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\jni.h:26: Can't open include file 'stdarg.h'
Total 1 errors

意思是找不到stdarg.h这个头文件,这个文件在

makefile

复制代码

G:\sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\12.0.8\include\stdarg.h
stdarg.h和jni.h不在同一个目录,可以设置下头文件目录

Options/Compiler中设置include directories,两个路径间用”;”分隔。

image.png

又提示

vbnet
复制代码
Error G:\sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\12.0.8\include\stdint.h:20: Syntax error near: <END>
  included from G:\sdk\ndk\23.1.7779620\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\jni.h:27
Total 1 errors

G:\sdk\ndk\23.1.7779620\sources\cxx-stl\llvm-libc++\include\stdint.h

image.png

感觉像是识别不了语法导致的,我们不编译,将jni.h复制出来,单独注释掉这2个行,在让ida加载就正常了

arduino
复制代码
// #include <stdarg.h>
// #include <stdint.h>

动态调试

www.52pojie.cn/thread-7426…

线性视图

image.png

  • library function为库函数
  • data为数据
  • regular function为规则函数
  • unexplored为未查过的
  • instruction为指令
  • external symbol为外部符号。



目录
相关文章
|
6月前
|
安全 Python Windows
[笔记]逆向工具IDA Pro之简单使用
[笔记]逆向工具IDA Pro之简单使用
340 0
|
2月前
|
网络协议 Shell Linux
安卓逆向 -- IDA动态调试
安卓逆向 -- IDA动态调试
24 0
|
3月前
|
开发工具 Python Windows
基于Python开发的飞机大战小游戏彩色版(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
基于Python开发的飞机大战小游戏彩色版(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
|
6月前
|
安全 Android开发
[笔记]安卓逆向之动态调试
[笔记]安卓逆向之动态调试
|
监控 Linux 数据库
IDA基本使用
IDA基本使用,零基础,新手友好,重点使用摘要。ida文件加载,IDA桌面简介,交叉引用,IDA动态调试,IDA脚本
554 0
IDA基本使用
|
安全 JavaScript Shell
Frida-Dexdump 脱壳工具下载使用以及相关技术介绍
Spider、App逆向,本案例使用的App是:引力播.apk,涉及到查壳、脱壳、反编译;
2197 0
Frida-Dexdump 脱壳工具下载使用以及相关技术介绍
|
算法 Go C语言
[re入门]IDA和OD的基本使用(持续更新)(上)
[re入门]IDA和OD的基本使用(持续更新)
534 0
[re入门]IDA和OD的基本使用(持续更新)(上)
|
Python
[re入门]IDA和OD的基本使用(持续更新)(下)
[re入门]IDA和OD的基本使用(持续更新)
311 0
[re入门]IDA和OD的基本使用(持续更新)(下)