信息来源:CCG
这课目的是要了解W32DASM和HIEW工具的用法。
一、W32DASM简单介绍
W32DASM目前是8.93版,能很方便地反汇编程序,利用它可静态分析软件也可动态分析。其使用也简单,参照下面的范例很快能掌握。这里只介绍一下如何截取W32DASM部分代码,这样方便写破解心得。
你将鼠标移到W32DASM最左边,点一下,将有一红点出现,再按住shift键,移到你需要的下一行,再按鼠标一下,将选中一段,按CTRL+C复制,CTRL+V粘贴到你的记事本或其它编辑处。
二、HIEW使用
是一个十六进制工具,它除了普通十六进制的功能外,它还有个特色,能反汇编文件,并可以汇编指令修改程序,是不是够酷的! 用它修改程序,方便快捷!
①启动 使用也简单,其是DOS界面程序,你可在windows下双击Hiew.exe启动它,或在windows的DOS窗口下执行它。
②打开文件 回车是打开一文件,或返回上一级目录(在最上一行::.. >UP--DIR< ,光标到这一行,按回车返回上一目录)。
③模式选择 打开文件后,按F4出现一选择框:TEXT文本、HEX十六进制、DECODE反汇编。
④编辑 在任一模式下按F3进行编辑(注意此时你己打开不能被其它应用程序调用,如己用W32DASM打开或己运行,不然不能编辑),如在DECODE模式下,此时按回车将可直接修改汇编代码,否则只能修改左边机器码。修改完成,按F9存盘,或按ESC放弃。
⑤偏移地址和虚拟地址转换
在HIEW中DECODE模式下的地址是偏移地址(File offset),而W32DASM和SOFTICE下显示的地址完全一样,是内存地址(memory offset)或称虚拟地址。 在W32DASM下将绿色的光条移到某一行代码上 , 在窗口底部有一行字指示这 命令的偏移地址 , 如 @Offset 00003DCDh. 这就是HIEW代码偏移地址 .
它们之间关系:虚拟地址=偏移地址+基址(ImageBase )
基址在Windows NT中,缺省的值是10000h;对于DLLs,缺省值为400000h。在Windows 95中,缺省基地址为400000h。
其实你用W32DASM打开文件,在开始处就会有一句 Imagebase = 00400000h ,这就是基址,有可能部分应用软件的基址不是00400000h。
了解它们的关系后,可利用此公式快速换算偏移地址和虚拟地址。
⑥更多的功能参考其帮助说明。