版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.\IDAPro使用技巧及大杂烩IDAPro基本简介IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(outputWindow)。谢谢阅读IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头默认为红色,蓝色表示默认下一个执行块。谢谢阅读在寄存器窗口中显示着每个寄存器当前的值和对应在反汇编窗口中的内存地址。函数在进入时都会保存堆栈地址EBP和ESP,退出函数时恢复。精品文档放心下载选择菜单Debugger下的Startprocess(也可以按F9键)来开始调试。调试会让程序在电脑中执行,所以IDA会提示注意提防恶意程序、病毒和木马。谢谢阅读打开IDAPro6.5,为进入IDA界面提供三种选项,分别是谢谢阅读.\New(新建),Go(运行),Previous(上一个)。精品文档放心下载选择File菜单下的Open,打开想要逆向的可执行文件,会显示一个Loadanewfile的界面。这里可以选择:感谢阅读程序的类型;处理器的类型;加载的段地址和偏移量;是否允许分析;一些加载选项;内核和处理器的一些选项;windows系统dll所在的目录。.\默认选择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寄存器的标志位跳转,这个太多了.精品文档放心下载Win32汇编[28]-跳转指令:JMP、JECXZ、JA、JB、JG、感谢阅读JL、JE、JZ、JS、JC、JO、JP等—MOVSXMOVZX比如MOVSXEAX,BYTEPTR[00401000]感谢阅读.\或MOVZXEAX,BYTEPTR[00401000]精品文档放心下载在C语言中应该如何表达啊?比如定义一个全局变量BYTEbt=101;DWORDdw;应该如何把bt赋值到dw中.并且功能与MOVSX/MOVZX相同?谢谢阅读汇编语言与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,八位二进制是“11111110”它的最高位是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”中选择”MarkPosition”将会打开标记当前位置功能,输入一个名称,在菜单”Jump/Jumptomarkedposition”中或按”Ctrl+M”键双击想要调转的名称,便会到达制定的代码位置.精品文档放心下载.\进制的转换:选择快捷键的#可以转换进制,选择”Toggleleadingzeroes”功能是用0填补数据前的空位.精品文档放心下载cqd,为ConvertDoubletoQuad的缩写,意为将双字数据扩展为四字。谢谢阅读该指令先把edx的每一位置成eax的最高位(若eax>=0x80000000,则edx=0xFFFFFFFF;若eax精品文档放心下载该指令常用于扩展被除数,很久前,指令集规定除数必须是被除数的一半长,这个规定一直被沿用。使用IDIV执行除法时,如果除数是32位,这就要求被除数是64位,即EDX:EAX,所以扩展一下EAX以满足除法指令的条件并且得到正确的结果。精品文档放心下载DIV和IDIVDIV和IDIV两个都是算术除法操作指令。DIV是无符号数除法DIVs;完成两个无符号数相除。谢谢阅读IDIV是有符号数除法指令,完成两个有符号数相除。被除数、商、除数、余数存放位置及对s的规定与DIV指令相同。感谢阅读.\修改程序的指令或者数据,并进行保存如何修改数据HexView窗口下,[S1]双击要修改的地方[S2]使用F2捷方式修改当前字节[S3]再按下F2快捷方式应用修改。如何改变执行流程[1]修改跳转指令。[2]修改内存数据。[3]IDAView中使用下面的命令JumptoIP,SetIP,Runtocursor。谢谢阅读.\保存修改使用下面的主菜单命令,直接把修改保存到输入文件中,即可。精品文档放心下载[IDAMainMenu]->[Edit]->[PatchProgram]->[Applypatchesto感谢阅读inputfile…]。OD中右键-保存到文件-选择我的OD是这样的,只能修改一条,通过选择,保存一条重新载入再修改再保存.精品文档放心下载如何对DLL文件进行动态跟踪用[F2]在IDAView中当前代码行切换断点。精品文档放心下载启动装载DLL的EXE文件。使用[Debugger]->[Attachtoprocess]把当前二进制代码attach到正在运行的进程中去。谢谢阅读现在应该进入断点。[F7]Stepinto。[F8]Stepover。[F9]continue。Cursor移到内存位置后双击就可以查看到具体内存中的值,右击快捷菜单[JumptoIP]项,可以回到你刚才指令的地方。IDAView中有很多行代码,可以使用[;]快捷键对当前行进行感谢阅读.\注释。为了观察具体指令的二进制表示你还需要[IDAView]->[右击谢谢阅读快捷菜单]->[Synchronizewith]->[HexView1]这样HexView谢谢阅读会和你的IDAView中光标位置同步。IDAView中为函数改名,用[N]快捷键。观察内存(变量)[Toolbar]->[Openthewatchlistwindow],[Toolbar]->[Addavariabletowatch]。谢谢阅读如果作者混淆了二进制代码,你需要IDAView在频繁使用精品文档放心下载[D]ata快捷键,[C]ode快捷键,强制IDA,解析指定数据块为数据(Data)或代码(Code)。谢谢阅读这些32位寄存器有多种用途,但每一个都有“专长”,有各谢谢阅读自的特别之处。EAX是”累加器”(accumulator),它是很多加法乘法指令的感谢阅读缺省寄存器。EBX是”基地址”(base)寄存器,在内存寻址时存放基地址。感谢阅读ECX是计数器(counter),是重复(REP)前缀指令和LOOP指令的内定计数器。感谢阅读.\EDX则总是被用来放整数除法产生的余数。ESI/EDI分别叫做”源/目标索引寄存器”(source/destinationindex),因为在很多字符串操作指令中,DS:ESI指向源串,而ES:EDI指向目标串.感谢阅读EBP是”基址指针”(BASEPOINTER),它最经常被用作高级语言函数调用的”框架指针”(framepointer).在破解的时候,经常可以看见一个标准的函数起始代码:精品文档放心下载pushebp;保存当前ebpmovebp,esp;EBP设为当前堆栈指针精品文档放心下载subesp,xxx;预留xxx字节给函数临时变量.精品文档放心下载…这样一来,EBP构成了该函数的一个框架,在EBP上方分别是原来的EBP,返回地址和参数.EBP下方则是临时变量.函精品文档放心下载.\数返回时作movesp,ebp/popebp/ret即可.感谢阅读ESP专门用作堆栈指针,被形象地称为栈顶指针,堆栈的顶部是地址小的区域,压入堆栈的数据越多,ESP也就越来越小。在32位平台上,ESP每次减少4字节。谢谢阅读汇编中的ASSUME经常用来将寄存器当作结构体指针来用ASSUMEedx:ptrSTRUCT;edx定义为STRUCT指针变量把STRUCT结构体的起始地址给edx谢谢阅读leaedx,STRUCT这个时候可以用[edx].调用STRUCT的字段精品文档放心下载ASSUMEedx:nothing;取消定义这个时候edx不是指针.\[edx].不能调用字段了如果是8086的那么将段REGASSUMEDS:(某个数据段)感谢阅读这样程序在使用这个数据段会用DS做段Code段是不能指定段REG的必须是CS:IP(EA)精品文档放心下载快捷键按空格键切换反汇编窗口(列表视图《=====》图形视图)谢谢阅读反汇编窗口有两种显示格式:面向文本的列表视图和图形视图。不同视图在不同的场景下各有所长,按空格键可以快速切换。感谢阅读2.翻页esc和Ctrl+Enter当执行跳转功能后,需要返回时,只要在工具栏中点击或按”Ctrl+Enter”键.精品文档放心下载注释“;”和”:”按;号输入的注释,所有交叉参考处都会出现,.\按:号键输入的注释只在该处出现使用小键盘“-”,“+”查看函数之间的关系IDAView下使用小键盘“-”,“+”快捷方式可以在代码同关系图之间切换。感谢阅读使用[X]查看符号引用IDAView下使用[X]快捷方式,定位引用了当前符号的代码。感谢阅读快捷键F5显示C伪代码如果有[Mainmenu]->[View]->[OpenSubViews]->[Pseudocode谢谢阅读F5]菜单,说明你已经安装了HexRaysdecompiler插件,可谢谢阅读以在查看汇编的时候,按[F5]打开伪代码子窗口。使用快捷键”*”把变量重定义为数组。快捷键Ctrl+S,打开搜索类型选择对话框–>双击Strings,感谢阅读跳到字符串段–>菜单项“Search
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产后出血护理措施
- 山东工业职业学院《基础生物学实验(生工)》2024-2025学年第一学期期末试卷
- 上海工程技术大学《跨文化传播》2024-2025学年第一学期期末试卷
- 遵义医科大学《建筑与城市研究方法》2024-2025学年第一学期期末试卷
- 浙江建设职业技术学院《特殊儿童心理辅导》2024-2025学年第一学期期末试卷
- 上海浦东新区2025-2026学年高二化学第一学期期末综合测试模拟试题含解析
- 2025-2030中国汽车拆解资质审批收紧与正规回收率提升
- 内蒙古阿拉善盟卫生健康类事业单位医疗卫生专业技术人员招聘笔试真题2024
- 租赁转让合同书10篇
- 医美管理与运营数据
- 水电系统安装施工方案
- 荒山承包合同补充协议
- 2025高三思想政治高考一轮复习资料
- 从探索到深化:基于可信数据空间的公共数据运营报告2025
- 2025年医学检验副高职称答辩题库及答案
- 安徽省合肥市46中学2026届九年级物理第一学期期中调研模拟试题含解析
- 2025年中华人民共和国治安管理处罚法知识竞赛题库及答案(共50题)
- 村干部考公务员试题及答案
- 市属国企后备干部选拔试题(附答案)
- 2025年公开招聘教师简章
- 高血压患者中医食疗指南及方案
评论
0/150
提交评论