您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > W32Dasm反汇编工具使用教程
W32Dasm反汇编工具使用教程W32Dasm是一个强大的反汇编工具,操作简单,使用方便。通常被程序员使用,当然也可被用来Crack软件了,很适合Cracker使用。我在这把与crack相关的功能简述如下:1.0开始2.0保存反汇编文本文件和创建方案文件3.0反汇编文本代码的基本操作4.0复制汇编代码文本5.0装载32位的汇编代码动态调试6.0运行,暂停或终止程序7.0单步跟踪程序8.0设置激活断点9.0偏移地址和虚拟地址转换1.0开始1.1运行W32Dasm,在这里以windows自带的计算器为例:calc.exe。1.2从Disassembler(反汇编)菜单选择DisassemblerOptions(反汇编程序选项)选项将出现如下对话框1.3在Disassembler(反汇编)菜单,选择OpenFile(打开文件)选项或按工具栏按钮1.4选择你要打开的文件就可。注意:你反汇编文件后,如字符己超过屏幕外,这时你要选择合适的字体(在Font字体选项中SelectFont选择字体),然后设为默认字体(SaveDefaultFont)即可。当然一般以默认值就可。2.0保存反汇编文本文件和创建方案文件(SaveTheDisassemblyTextandCreateAProjectFile)3.0反汇编源代码的基本操作3.1转到代码开始(GotoCodeStart)在工具栏按或从菜单的转到(Goto)选项选择转到代码开始(GotoCodeStart)或按CtrlS,这样光标将来到代码的开始处,用户可通过双击鼠标或用shift+上下光标键改变光标的位置。注:代码的开始处是反汇编代码列表清单汇编指令的开始,而不是代码运行的起点,程序运行的起点称为程序入口点(ProgramEntryPoint)3.2转到程序入口点(GotoProgramEntryPoint)在工具栏按或菜单的转到(Goto)选项选择转到程序入口点(GotoProgramEntryPoint)或按F10,这样光标将来到程序入口点(EntryPoint),这里就是程序执行的起始点,一般动态调试时LOAD时也就停在此处。3.3转到页(GotoPage)在工具栏按或菜单的转到(Goto)选项选择转到页(GotoPage)或按F11,这时跳出一对话框,输入页数可跳转到相关页面去3.4转到代码位置(GotoCodeLocation)在工具栏按或菜单的转到(Goto)选项选择转到代码位置(GotoCodeLocation)或按F12,一个对话框将出现,充许用户输入代码偏移地址,以跳转到此位置上去。3.5执行文本跳转(ExecuteTextJump)这功能是在ExecuteText(执行文本)菜单选项里的,执行跳跃(ExecuteJump)功能激活条件是光标在代码的跳转指令这行上(这时光条是高亮度的绿颜色)。此时工具条JumpTo按钮也激活。如图:此时按或菜单选项ExecuteJump(执行跳跃)或按右光标键,光条将来到跳转指令所指到的位置。在这例子里,将来到:004076CExoreax,eax这一行代码处:如要返回到上一次跳跃,请参考3.6.3.6返回到上一次跳跃ReturnFromLastJump这功能是在ExecuteText(执行文本)菜单选项里的,此指令仅仅是在执行文本跳转功能完成后才激活。当这条件成立时,按钮将激活。按或在菜单里选项返回到上一次跳跃(ReturnFromLastJump)或按左光标键,光条将返回到上一次跳跃位置处。3.7执行呼叫ExecuteTextCall这功能是在ExecuteText(执行文本)菜单选项里的,此功能激活的条件是光条在CALL指令一行。在这一行时光条将发绿,按钮将激活。执行时光条将会来到CALL所指的地址处。如下图:光条在0040751Dcall004073D4一行。此时按或在菜单的执行呼叫(ExecuteTextCall)或按右光标键,光条将来到CALL所指的地址004073D4这一行如要返回到刚才起点的0040751Dcall004073D4一行,参考3.8的返回呼叫。3.8返回呼叫(ReturnFromLastCall)这功能是在ExecuteText(执行文本)菜单选项里的,此指令仅仅是在执行呼叫ExecuteTextCall功能完成后才激活。当这条件成立时,按钮将激活。按或在菜单里选项返回呼叫(ReturnFromLastCall)或按左光标键,光条将返回到上一次呼叫位置处。3.9导入功能(Imported)在菜单功能选项里,其作用主要是查看import函数。按或在菜单功能选项里的导入(Imports)命令,执行后将列出当前文件的Import函数。如要返回到刚才起点的0040751Dcall004073D4一行,参考3.8的返回呼叫。3.8返回呼叫(ReturnFromLastCall)这功能是在ExecuteText(执行文本)菜单选项里的,此指令仅仅是在执行呼叫ExecuteTextCall功能完成后才激活。当这条件成立时,按钮将激活。按或在菜单里选项返回呼叫(ReturnFromLastCall)或按左光标键,光条将返回到上一次呼叫位置处。3.9导入功能(Imported)在菜单功能选项里,其作用主要是查看import函数。按或在菜单功能选项里的导入(Imports)命令,执行后将列出当前文件的Import函数。5.0装载32位的汇编代码动态调试5.1反汇编windows自带的计算器程序calc.exe.5.2选择菜单调试选项中的加载处理(LoadProcess),或按Ctrl+L.出现一个加载对话框,你可输入选项命令。现在你可按装载(load)按钮。Calc.exe现在被W32DASM动态调试,将出现左右两个调试窗口(如下图),在初始化calc.exe程序后,指令将停留在入口点(EntryPoint)处。左边的调试窗口列出各种状态器如:CPU寄存器,CPU控制寄存器,断点,活动的DLL,段寄存器等等;6.0运行,暂停或终止程序6.1在右调试窗口,按运行(RUN)按钮或按F9,calc.exe将运行起来。按暂停(PAUSE)按钮或空格键,程序将暂停,这在单步跟踪时经常用到。按终止(TERMINAT)按钮,程序将停止,退出动态调试环境。7.0单步跟踪程序7.1重新加载calc.exe7.2在程序加载后,停留在入口点,你可按F7或F8单步调试程序,这两个键所不同的是F7是跟进CALL里,F8是路过。7.3进入自动调试按(F5)和结束自动调试按(F6)。8.0设置激活断点8.1重新加载calc.exe8.2在W32DASM的菜单转到选项转到代码处(gotocode)功能,填上403198,按确定,你将在W32Dasm的主窗口(此时可能最小化了,把其还原即可)来到403198地址一行。光条在这一行显亮绿色,按F2或用鼠标左点击最左边(同时按住CTRL)设置断点。这时如断点设置成功,光条最左边有一小段黄条,显示此行为断点。如下图:如果断点不在这里,整行光条将是黄色的。当断点设置好后,在左调试窗口中的断点小窗口显示断点情况(右边有一*):此时按F2或(鼠标左键+CTRL),断点将取消。8.3此时按F9程序将运行到相关断点时停止。9.0偏移地址和虚拟地址转换W32DASM、SOFTICE和Hiew(Decode模式)显示的地址都是虚拟地址,但是在Hiew(Decode模式)下,F5功能键查找的地址是偏移地址,因此必须将虚拟地址转换成偏移地址,才能找到正确的地址。常用的方法是在W32DASM下将绿色的光条移到某一行代码上,在窗口底部有一行字指示其偏移地址,如虚似地址:CodeDaTa@0040534e而偏移地址为:@Offset0000474Eh.这就是偏移地址。
本文标题:W32Dasm反汇编工具使用教程
链接地址:https://www.777doc.com/doc-2855360 .html