20.IDA-修改二进制文件、显示修改点

来源:互联网 发布:淘宝网男鞋货到付款 编辑:程序博客网 时间:2024/05/30 22:43

原文地址::http://blog.csdn.net/hgy413/article/details/50650232


相关文章

1、IDA学习笔记----http://wenku.baidu.com/link?url=8LEGhV6t5xQtGSJFk8CurjSVl8EgZ0zg6o1BztiZvIBlH2P-M22N8vRuWdjqpoSYopA2KI3epBGWIsV3DjJvELKLlWGKm8UTtblfjtiLDSm


1.功能选项

Edit▶Patch Program菜单是GUI版本的IDA的一项隐藏功能,用户需要编辑idagui.cfg配置文件才能激活该菜单 
这里写图片描述

可用选项如图所示 
这里写图片描述

1.1.Change byte

用于编辑IDA数据库中的字节值。相关的字节编辑对话框如图所示 
这里写图片描述 
这个对话框显示了从光标所在位置开始的16个字节的值。你可以更改显示的部分或全部字节。 
同时,Address表示了虚拟地址,File offset表示了文件偏移量。

实际上,Hex View可以直接改字节,右键Edit即可

1.2.Change word

功能更有限,感觉没必要介绍了

1.3.Assemble

利用“汇编”选项可以输入使用一个内部汇编器汇编的汇编语言语句。然后,IDA会将得到的指令字节写入当前的屏幕位置 
这里写图片描述 
但不如人愿: 
这里写图片描述 
点击最右边的Help,我们可以找到答案:

<code class="hljs applescript has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">This command allows you <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> assemble instructions. Currently, only <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> IBM PC processors provide an assembler, nonetheless, plugin writers can extend <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">or</span> totally replace <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> built-<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> assembler <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> writing their own. The assembler requires <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> enclose all memory references <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">into</span> square brackets. For example:         mov ax, [counter]Also, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> keyword '<span class="hljs-command" style="box-sizing: border-box;">offset</span>' must <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> be used. Instead <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span>         mov eax, <span class="hljs-command" style="box-sizing: border-box;">offset</span> <span class="hljs-property" style="box-sizing: border-box;">name</span>you must <span class="hljs-command" style="box-sizing: border-box;">write</span>         mov eax, <span class="hljs-property" style="box-sizing: border-box;">name</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li></ul>

所以写成push aQqres就OK了

1.4.Apply patches to input file

把改动更新到二进制文件中 
这里写图片描述

2.DIF显示被修改的地方

Produce file▶Create DIF file 
DIF文件是一个纯文本文件,其中列出了一个IDA数据库中所有被修改的字节。 
这个文件的第一行是注释,第一行是最初的二进制文件的名称,随后则是文件中被修改的字节列表。每一行都指出被修改的字节的文件偏移量(而非虚拟地址)、字节的原始值以及字节在数据库中的当前值。 
这里写图片描述


0 0
原创粉丝点击