野生ida食用指南
前言
关于ida的使用快捷键等教程有很多,这里就不多说了,一开始想给每个具体操作附上一份截图,但鄙人是懒狗,再加上很多功能需要自己实际遇到动手一番才会有印象,故这里只作简要介绍
常见问题报错
1.我的ida为什么打不开?
ida开发公司为国外的,切忌将ida置于中文目录下(剩下五花八门的问题自行上网搜索,注意提问的智慧,借助ai能事半功倍)
2.争对ida的python环境问题
ida所在文件目录下会有自带的python环境
但是也会有相关问题产生,主要利用idapyswitch.exe解决
参考链接:https://bbs.kanxue.com/thread-279989.htm
例子eg.
解决:
找到ida文件目录下的该应用程序
最直接方式./idapyswitch运行,如果有问题利用
./idapyswitch -s 指定路径\Python3\Python3.dll
指定路径安装
最最最基础ida使用
eg.打开一个exe分析
其实你可以在ida文件目录下观察到ida和ida64两个应用程序,分别对应于32位和64位程序,选择对应ida打开即可,在ida9版本后已将两种合并,自行分析位数反编译
初始ida打开exe进入的是程序入口点,对大部分程序一般是main函数入口,混淆操作另算
右边对应的是汇编代码执行流程,左边为函数窗口,可以在此处搜索对应函数,左下python可以直接简易pyshell使用
eg.
,也可以算成idc语言
同样的是这个刚进入显示的页面,按下空格键
可以看到汇编执行流窗口变成了完全的汇编代码段
会有人说,嘶,看的头疼,看不懂,溜之
咳咳,对应新手来说,未接触花指令以及混淆前,仅逆向反编译伪C代码即可
在这里对应操作就是按下f5转函数
此处可以看到快捷键对应具体操作
可以分析代码了
还有个操作shift+f12查看字符串
好的,到这一步,你的逆向已经初初初步入门,可以做题目了
进阶
剩下的关于ida的使用就是插件,远程动态调试,idapython等零碎东西,自行学习积累即可,主要提一嘴
其余快捷键:
x/ctrl + x : 交叉引用,例如,在某处变量位置点击X,可以查看是谁调用此变量,对于定位程序位置和分析逻辑有所帮助
shift + E : 提取数据
G 按地址查找
D 将字符串等元素转为数据
N 重命名(函数名、变量名等)
Y 修改变量类型等(比如int改char等等)
H decimal 数据的进制快速转换
A 将数据转变为字符串类型
C code(将数据转变为汇编代码,分为自动和强制执行)
U undefined(将字符串转变为原始数据)
X 交叉引用(反汇编页面)
P 选中位置识别为函数
远程动态调试
主要用于elf文件的调试,大多数人用的是windows系统,原理就是借助linux_server64连接一个linux系统从而远程调试
教程:
IDA远程动态调试(linux & Windows)_ida远程调试-CSDN博客
这里给出基础调试操作,跟dev和vscode差别不大
ida快捷键 | 功能 |
---|---|
F7 | 单步步进 |
F8 | 单步步过 |
F9 | 继续运行程序 |
F4 | 运行到光标所在行 |
Ctrl + F7 | 直到该函数返回时才停止 |
Ctrl + F2 | 终止一个正在运行的进程 |
F2 | 设置断点 |
插件
现阶段有用的就findcrypt,快捷键或者edit->plugin->findcrypt使用,主要用于找加密特征对应字样
此外还有个命令行执行窗口用于批量处理汇编代码
可导入相应文件或直接输入脚本