1 / 20
文档名称:

IDA-Pro使用技巧及大杂烩.doc

格式:doc   大小:30KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

IDA-Pro使用技巧及大杂烩.doc

上传人:在水一方 2019/10/25 文件大小:30 KB

下载得到文件列表

IDA-Pro使用技巧及大杂烩.doc

相关文档

文档介绍

文档介绍:IDAPro使用技巧及大杂烩IDAPro基本简介IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(outputWindow)。IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头默认为红色,蓝色表示默认下一个执行块。在寄存器窗口中显示着每个寄存器当前的值和对应在反汇编窗口中的内存地址。函数在进入时都会保存堆栈地址EBP和ESP,退出函数时恢复。选择菜单Debugger下的Startprocess(也可以按F9键)来开始调试。调试会让程序在电脑中执行,所以IDA会提示注意提防恶意程序、病毒和木马。,为进入IDA界面提供三种选项,分别是New(新建),Go(运行),Previous(上一个)。选择File菜单下的Open,打开想要逆向的可执行文件,会显示一个Loadanewfile的界面。这里可以选择:;;;;;;。默认选择PE文件就可以,对于一些网络数据包或者其他格式的文件,可以使用二进制加载,自己进行解析。工作区有多个子窗口,IDAView-A是反汇编窗口,HexView-A是十六进制格式显示的窗口,Imports是导入表(程序中调用到的外面的函数),Functions是函数表(这个程序中的函数),Structures是结构,Enums是枚举。IDAview:定位要修改的代码段在哪里。Hexview:用来修改我们的数据exportswindow:导出窗口importwindow:导入窗口nameswindow:函数和参数的命名列表functionswindow:样本的所有函数窗口stringswindow:字符串显示窗口,会列出程序中的所有字符串IDA很智能,鼠标移到某些标识符上会自动有适当的提示,双击还能自动跳到相应的位置。把一个函数逆向的方法很简单,只要按F5键就会出来逆向出的C语言程序了。退出IDA时,会进行文件保存确认,如果需要继续进行分析,将IDA中间数据库打包,下次继续打开就可以进行分析;如果不需要继续分析,选择不要打包,不要存储数据库。IDA打开应用程序时,会为其创建一个数据库,后缀为IDB。IDB由4个文件组成:后缀为id0的二叉树形式的数据库,后缀为id1的程序字节标识,后缀为nam的Named窗口的索引信息,后缀为til的给定数据库的本地类型定义的相关信息。一旦IDA为某个可执行程序创建数据库,它本身就不再需要访问这个可执行文件,除非使用IDA的Debug功能。跳转指令分三类:无条件跳转:JMP;根据CX、ECX寄存器的值跳转:JCXZ(CX为0则跳转)、JECXZ(ECX为0则跳转);根据EFLAGS寄存器的标志位跳转,[28]-跳转指令:JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP等—MOVSXMOVZX比如MOVSXEAX,BYTEPTR[00401000]或MOVZXEAX,BYTEPTR[00401000]在C语言中应该如何表达啊?比如定义一个全局变量BYTEbt=101;DWORDdw;?汇编语言与C语言的语言构件不同,并不是一定能转成完全等价的C语言的代码的。对于以上代码,可以这样理解:movsx====>dw=(DWORD)((signedchar)(bt))movzx====>dw=(DWORD)((unsignedchar)(bt))movzx是把高位全部用0填充,而movsx是把原来数的最高位扩展成超出的位。对于bt=101,也就是0x65,八位二进制是“01100101”,因为它的最高位是0,因此这两种情况,dw都等于0x00000065换一个,比如bt=247,也就是0xF7,八位二进制是“”它的最高位是1。经过movsx变换后,dw等于0xfffffff7;而经过movzx变换后,dw等于0x000000f7交叉参考通过交叉参考(XREF):.text:00401165loc_401165:;CODEXREF:sub_401120+B|j这句CODEXREF:sub_401120+B|j表示该调用地址是401120,“j”表示跳转(jump)“o”表示偏移值(offset)“p”表示子程序(procedure)双击这里或按回车键可以跳到调用该处的地方参考重命名:找到一段代码(一般为函数入口名),右键点击选择”Rename”:在菜单”Jump”中选择”MarkPositi