ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:621.04KB ,
资源ID:15309696      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15309696.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IDA学习笔记文档格式.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

IDA学习笔记文档格式.docx

1、学习一下,顺便做点笔记。从零开始吧!希望大家指正。(原来只要找,IDA的资料还是很多的,推广有效!)【详细过程】用最简单的CM做实验。首先帮助里说了:If you are starting to use IDA for the very first time, there are some commands you will find very useful: - convert to instruction(转换成指令) : 热键是 C - convert to data (转换成数据): 热键是D在IDA View-A窗口的指令或数据上按上述按键进行指令和数据的转换,算是学习的第一步。第一

2、次交锋:根据OD的使用情况,查找字符串。(快捷键:shift +F12)。IDA中的菜单命令位置如下图:或者菜单上的按钮:在String窗口中找到关键字符串:双击,来到IDA View-A代码窗口:这句:data:00403020 aFail db fail!,0 ; DATA XREF: .text:004016A6_o双击后面的004016A6地址,来到使用fail数据的代码处(这样就是方便哦!鼠标单击loc_4016A2:标签,所有的都会高亮显示。(这个功能very good!第二次交锋:更改代码,爆破有两处地方跳到了注册失败。OK,改掉他就算爆破了!可是怎么改了?用OD,Ultraed

3、it,WinHex都可以改。但是强大的IDA不会没有这个功能吧?不知道怎么办?学习第一招:查帮助或者手册(Help-Help Index),如果E文不好,看雪有中文版的。更改指令的菜单位置为:Main Menu Bar - Edit - Patch Program功能。高兴啊!结果发现我的IDA中没有这个子菜单。无语。学习第二招:搜索引擎XX搜索:“IDA 没有 patch program 菜单”,看到这篇:原来要设置IDA的配置文件。修改IDA的cfg目录下的idagui.cfg文件:DISPLAY_PATCH_SUBMENU = NO改为DISPLAY_PATCH_SUBMENU = YE

4、S更改配置文件之后,选中要更改的那行指令,然后选择Main Menu Bar - Patch Program -change byte弹出对话框:把74 15改为 90 90,这条指令是两个字节的,通过如下方法可以在IDA中看到:当然经过如下设置,可以和OD一样看到指令的机器码:Options - general - numberofopcodebytes 设定一个数(显示几个字节的机器码) 但是个人觉得,显示上之后没有原来的样子好看了。(*_*) 嘻嘻(这里有个功能,记忆之前改的数据,个人反而觉得不好用。第二次敲90 直接把第一次改的那串数据放进去了,这样还得把整行的数据都敲一遍。如何保存更

5、改后的程序?据说 File - Product file - Create EXE file是这个功能,可惜:帮助:IDA produces executable files only for: - MS DOS .exe - MS DOS .com - MS DOS .drv - MS DOS .sys - general binary - Intel Hex Object Format - MOS Technology Hex Object FormatFor other file formats please create a difference file.难道PE文件不是genera

6、l binary?不明白。File - Create Diff file有效。生成的dif文件的内容如下:This difference file is created by The Interactive DisassemblermyEasyCM.exe00001675: 75 9000001676: 2B 900000168B: 74 900000168C: 15 90直接用UltraEidt安照如上内容更改数据程序就告破。但是IDA中为啥就找不到这个功能呢?Baidu上没有找到解决的办法,到Google上用E文搜索:发现相关的说法都是下面的意思(IDA只是对内存中数据的修改,没有写入硬盘

7、。如果需要更改请用HEX Editer。)暂时先放弃用IDA更改了。(留下个问题:1是如何用IDA更改代码)when you use the patch feature during a debug session it simply patchesthe processes memory only and also only the database disassembly, noinformation is written back to disk, so when you relaunch the process theorignal bytes are once again in me

8、mory.You really need to also patch the executable with a hex editor, at worseperhapes the IDA write exe might work. If you do patch with a hex editoryou can choose from the ida file menu to simply reload the input file, i thinkthis shouldnt destroy your database and notes.DataRescue aims the product

9、 at the analysis market and this is the simplereason why features such as code modification are actively developed upon./yates. 第三次交锋:分析代码IDA分析代码的能力很强。现在知道的方法有:1、IDA的Text View2、IDA 的Graph view3、Hex-Rays.Decompiler插件的反编译功能,可以生成类C的代码,大大增加易读性 安装这个插件之后,光标定位在函数上,按F5,即会生成源代码。其他的高级功能我不知道了,另外还有一个教程专门说的他的数据功

10、能的,也学习一下,看看能有什么收获。好了,MFC生成的代码不仔细看了(水平有限),只针对自己写个判断序列号的函数看一下。比较比较。看5种代码:1、OD生成的汇编代码(字符串查找下断或者F12中断法都可以定位关键代码)2、IDA生成的汇编代码(Text View)IDA有两个有点,一是循环和跳转比较明确,用了不同的箭头表示(粗箭头表示的是循环);二是进行了代码的分析,生成了一些变量,如arg_4,这样可以便于分析。3、IDA生成的图形代码(Graph View) 当光标定位在函数上时,和Text View-A通过右键菜单切换或者空格键切换。流程看上去更直观。4、IDA的Hex-Rays.Deco

11、mpiler插件生成的类C语言源代码 对于一般人(习惯高级语言的),这个源代码要容易读懂。当然对于习惯于看汇编代码的高手就另当别论了。仅对于本程序而言,第一次看这样生成的代码有些别扭,有些地方不理解,和自己写的方式也有出入。但如果了解了这种代码的特点,对理解代码应该是有帮助的。这段代码里有些地方不明白:(似乎好好看看编译原理会明白些)一是*(_BYTE *)v3是什么意思?应该是取a1v3,但是对这句不理解。二是strlen(a1) = 1的时候就表示成功,为什么不是零?更改*(_BYTE *)v3为a1v3;strlen(a1) 为 strlen(a1)+1和原始的代码结果相同。函数用如下方

12、式调用。sub_401590(serial, (name - serial) ) 参看汇编代码,可以更清楚的理解为什么会这样5、我自己写的代码(供参考)第四次交锋:用IDA运行程序据说IDA动态调试程序的功能还不强大(不然OD就该下岗了)。但他还是有动态调试功能的,尝试一下。首先说明一下之前在IDA View-A窗口中更改的代码对调试状态的代码没有影响(最初尝试运行更改后的程序,希望可以看到效果,结果发现无效。或许是我不会设置吧)。需要在调试器运行的状态下更改代码(F1键说:如果在调试器处于活动状态引用这条命令patch program,IDA会修改内存和数据库。如果数据库不包含修改的字节,那

13、么进程内存将会被修改。打开调试器窗口,运行代码。这时候会有几个新窗口。IDA View-EIP,IDA View-ESP,Thread等,在IDA View-EIP中找到关键跳,改掉。单击sign(注册),输入任意用户名和序列号都提示成功了。F2依然是下断点,依然可以查找字符串和函数,基本的调试还是没有问题的。点击黑色的箭头窗口会显示相应的地址或堆栈的内容,当然选择EIP后的黑色箭头回到代码位置。有个问题是如果我关闭了IDA View-EIP和IDA View-ESP窗口,不知道如何再次打开。尝试Open - View subviews - Disassembly,在不停止调试的状态下可以同样

14、使用,但如果重新开始调试之后,再用如上方式打开IDA View-A,则无法显示代码。在IDA View-EIP或ESP窗口右键更改synchronize with选项,依然会导致下次不能正常运行,应该是运行设置的问题,但没找到设置的地方第五次交锋:不识别的函数注册按钮单击后的代码如下,IDA没有认出这是一个函数,因此图形视图(Graph View)和F5反编译源码功能都不能用。Align的作用是指令对齐,应该是伪指令。.text:004015DC align 10h004015E0 sub esp, 0C8h00401672 cmp ecx, edx00401674 pop ebx00401675 jnz short loc_4016A2 ;关键跳00401677 lea eax, esp+00040167B lea e

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1