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为外部符号。



目录
相关文章
|
安全 Python Windows
[笔记]逆向工具IDA Pro之简单使用
[笔记]逆向工具IDA Pro之简单使用
1168 0
Win10 汇编工具 EMU8086安装教程
EMU8086是一种学习汇编工具,它结合了一个原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。下面的这一教程是 bs.aiesst.cn 专门为初学者入门而准备的一个安装教程,以及下载地址。
7428 1
|
5月前
|
Python Windows
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
|
1月前
|
安全 算法 数据可视化
ida使用基础
ida使用基础
|
1月前
|
Oracle Java 关系型数据库
JLink 使用教程:从入门到精通
本文提供了JLink工具的使用教程,包括入门、进阶和高级篇,涉及创建运行时镜像、添加模块、自定义启动器、压缩镜像、自定义运行时参数和配置文件等内容,旨在帮助用户创建独立的Java应用程序运行时环境。
197 0
|
编译器 C语言 计算机视觉
Qt+OpenCV配置教程(图解亲测)
Qt+OpenCV配置教程(图解亲测)
1494 0
Qt+OpenCV配置教程(图解亲测)
|
存储 Linux 开发工具
学习系统编程No.17【vscode实战】
学习系统编程No.17【vscode实战】
|
监控 Linux 数据库
IDA基本使用
IDA基本使用,零基础,新手友好,重点使用摘要。ida文件加载,IDA桌面简介,交叉引用,IDA动态调试,IDA脚本
684 0
IDA基本使用
|
计算机视觉 C++ Windows
OpenCV教程之4.1.0版与VisualStudio2015环境搭建☀️《❤️记得收藏❤️》
OpenCV教程之4.1.0版与VisualStudio2015环境搭建☀️《❤️记得收藏❤️》
201 0
OpenCV教程之4.1.0版与VisualStudio2015环境搭建☀️《❤️记得收藏❤️》
|
算法 Go C语言
[re入门]IDA和OD的基本使用(持续更新)(上)
[re入门]IDA和OD的基本使用(持续更新)
639 0
[re入门]IDA和OD的基本使用(持续更新)(上)