您的位置:首页 > 其它

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

2016-10-13 17:23 190 查看
原文地址:

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">This command allows you <span class="hljs-keyword">to</span> assemble instructions. Currently, only <span class="hljs-keyword">the</span> IBM PC processors provide an assembler, nonetheless, plugin writers can extend <span class="hljs-keyword">or</span> totally replace <span class="hljs-keyword">the</span> built-<span class="hljs-keyword">in</span> assembler <span class="hljs-keyword">by</span> writing their own.
The assembler requires <span class="hljs-keyword">to</span> enclose all memory references <span class="hljs-keyword">into</span> square brackets. For example:

mov ax, [counter]

Also, <span class="hljs-keyword">the</span> keyword '<span class="hljs-command">offset</span>' must <span class="hljs-keyword">not</span> be used. Instead <span class="hljs-keyword">of</span>
mov eax, <span class="hljs-command">offset</span> <span class="hljs-property">name</span>

you must <span class="hljs-command">write</span>
mov eax, <span class="hljs-property">name</span></code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li></ul><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li></ul>

所以写成push aQqres就OK了

1.4.Apply patches to input file

把改动更新到二进制文件中



2.DIF显示被修改的地方

Produce file▶Create DIF file

DIF文件是一个纯文本文件,其中列出了一个IDA数据库中所有被修改的字节。

这个文件的第一行是注释,第一行是最初的二进制文件的名称,随后则是文件中被修改的字节列表。每一行都指出被修改的字节的文件偏移量(而非虚拟地址)、字节的原始值以及字节在数据库中的当前值。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: