网上可以找多许多讲解IDA pro的使用教程,想着自己能写一个尽量全一点的,于是补写了本片文章(本篇文章只讲解使用,默认大家都会下载与安装)
参考:
IDA | Lazzaro
IDA Pro 使用技巧总结 - CharyGao - 博客园
页面介绍
静态分析界面
动调分析界面
常用快捷键
Shift+F12:查看所有字符串
F5:查看伪代码
Alt+T:查找字符串
空格:切换图形视图&汇编视图
/:在反编译后伪代码的界面中写下注释
x:对着某个函数、变量按该快捷键,可以查看它的交叉引用
n:改变量名
y:改变量类型
c:强转为汇编代码
d:改变数据类型,如:db,dw,dd
ctrl+F:查找函数
p:定义函数
u:取消定义
Shift+E:提取数据
Alt+T:文本搜索
g:跳转地址
IDA-Python
三种在IDA中使用脚本的方法:
第一种,直接按Shift+F2快捷键调出界面,也可以直接在菜单中选择命令脚本(File -> Script command);
第二种,写一个脚本文件直接进行引用(File -> Script file);
第三种,直接在IDA底部写命令。
IDAPython的三个独立模块:
idc: idc函数的兼容模块,包含IDA内置函数声明和内部定义
idautils: 实用函数模块
idaapi: 用于访问更多底层数据的模块
指令操作
python
import idc import idaapi import idautils ea = idc.here(); print("当前模块基址为: {}".format(hex(idaapi.get_imagebase()))) print("当前的汇编语句为: {}".format(idc.GetDisasm(ea))) print("当前的汇编指令为: {}".format(idc.print_insn_mnem(ea))) print("当前的操作数为: {}".format(idc.print_operand(ea,0))) print("当前的操作数值为: {}".format(idc.get_operand_value(ea,0)))
段操作
用于查看程序段的划分
p