用户名:  密码:   
您当前的位置:首页 > 程序设计 >  汇编与密码学 > 

IDA使用说明

上次修改时间: 2017-12-14 15:52:18      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\assembly与反assembly\Win32汇编\      下一页

详细使用说明在鱼C的Win32汇编教程28讲有说明,该软件100M多点

1. 以IDA6.1为例,解压后目录里的idag.exe idag64.exe是windows下的,idaq.exe是多平台的据说是多平台的,如:linux下也可运行。
  //64表64位,idag64表64版本的
2. 用IDA打开一个可执行文件
 1)运行IDA目录里的idaq64.exe程序,new——Windows——PE Executable(PE格式的可执行文件),选择要逆向的程序后点打开。
 3)勾选Imported DLL options(s载入动态链接库)和Analysis option(自动分析)后点下一步
 4)勾选Create imports segment和Create resources segment后点下一步
 5)这步是选择DLL所在目录的,按默认C:\windows,后一路下一步即可
3. IDA使用说明
 1)按2中打开程序后,中间框里会显示程序Start到end Start编译后的汇编代码
 2)所以调用的函数和过程都可以左边的Functions window里找到,点这里sub_401089子程序就可右边跳到该子程序代码处
 3)可以该子程序_WinMain中用到的一些函数
 4)缩小后可看到程序的整个框架,可以看到循环的箭头,在左下有个Graph overview里的虚框表正在显示框架的那部分
 5)从框架图看到每个框代表一个功能模块,框与框之间用带箭头的线连接。按住Ctrl滚动鼠标滚轮可放大和缩小中间的代码块图
  //如:消息循环的代码,从后面的框指向前面的框
 6)Imports选项卡下是导入函数,这里是从win32汇编的include的那些文件导入的,在Library栏下可看到函数的母体dll
 7)Exports下是导出函数
 8)在View——Open subviews——Segments下能看到.text/.idata/.rdata/.data等段
  //在这里还可以看到各段是属性,R读,W写,X执行,双击这些段还可跳到段的代码处
  //.rdata是定义是字符串,.data段是局部定义的地方
4. IDA的动态调试,用IDA打开FirstWindow.exe ——详见鱼C的Win32汇编29讲
 1)用C+鼠标滚轮可使IDA View-A选项卡中的代码块框变大变小
 2)在工作区与工具栏中间有个一行高的长条,蓝色区表可执行,灰色表不到执行代码区
 3)IDA View-A选项卡默认按块是图形的方式显示,可右击要其显示代码的块——Text View可查看该块代码
  ;再右击——Graph View可跳回来
 4)要动态调试时要先选加载器,Debugger——Select debugger,选择Local Win32 debugger后点OK
 5)点工具栏的运行按钮(向右的三角),会弹出提示程序运行后会有伤害系统的操作等,点Yes即可。
 6)等程序运行后会打开Debugger(IDA View-RIP),Hex View-1(内存块),General rigisters,Stack view等窗口
  ;拖动Graph overview中的虚框可改变IDA View-RIP区显示内容
 7)点这里工具栏的方块能停止程序的运行。
 8)下断点,在还没运行程序时,点击一行按F2或右击一行。
  ;这里是左边的Functions window窗口点sub_401089,再在右边IDA View-A点call GetModuleHandleA这行断点
 9)下完断点后再运行就会停在断点处,单步按F8单步执行(跨过每个函数),按F7(进入函数里)执行到该函数结束
  ;ida是世界上最好的调试工具
 10)在调试程序后关闭调试时会提示是否Take memory snapshot,保存内存的整个状态
 11)关闭时的英语翻译:
  Don't pack database/Pack database(store)/Pack DataBase(Deflate)/Collect garbage
  不打包数据库/打包数据(存储)/打包数据(压缩)/收集垃圾
5. 用IDA查看验证模块句柄为它装入内存的起始地址
 1)先用IDA在sub_401089这个子程序的call GetModuleHandleA这行下断点
 2)然后点IDA工具栏的运行会停在call这行,然后按F8单步运行到mov hInstance,eax
 3)这时可在General registers寄存器的RAX为400000,动态链接库就是800000
  ;在IDA View-RIP区右击——Text View,滚动到最上面,在.text前几行可看到Imagebase : 400000这行即整个模块的句柄
注:鱼C下载的ida只有D:\soft\Hex-Rays.IDA.Pro.v6.1.Advanced..Tools\Hex-Rays.IDA.Pro.v6.1.Advanced..Tools\hri61pa\Hex-Rays IDA 6.1 Pro Andvanced\Hex-Rays.IDA.Pro.Advanced.v6.1.Windows.incl.Hex-Rays.x86.Decompiler.v1.5.READ.NFO-RDW下的rar包有用
 但不能在该路径解压,因为路径太长会提示错误