OllyDBG 1.10 OllyDBG.exe
OllyDBG SoftICE文件->打开 (快捷键是 F3)F2 断点 F9F8 步过 F10F7 步入 F8F4 运行到位置 F7F9 运行 F5CTR+F9 执行到返回ret F12ALT+F9 执行到用户代码 F11调试选项->CPU 标签中把“显示跳转路径”及其下面的两个“如跳转未实现则显示灰色路径”、“显示跳转到选定命令的路径”
查壳工具有 PEiD 和 FI
运行反汇编窗口中右击,出来一个菜单查找->所有参考文本字串 /超级字串参考+ 插件会更方便,现在出来另一个对话框,我们在这个对话框里右击,选择“查找文本”菜单项,输入“Wrong Serial, try again!”的开头单词“Wrong”(注意这里查找内容要区分大小写)来查找,找到一处:在我们找到的字串上右击,再在出来的菜单上点击“反汇编窗口中跟随”为了看看是否还有其他的参考,本行选择右键菜单查找参考->立即数,会出来一个对话框:堆栈 SS:[0012F9AC]=00D44DB4, (ASCII "CCDebuger") 这条内容上左击选择一下,再点右键,在选择“数据窗口中跟随数值”,你就会在下面的数据窗口中看到你刚才输入的内容。而 EAX=00000009 指的是你输入内容的长度
在菜单 查看->断点 上点击一下,打开断点窗口(也可以通过组合键 ALT+B 或点击工具栏上那个“B”图标打开断点窗口PEiD 检测一下,结果为 MASM32 / TASM32
反汇编窗口中右击鼠标, 查找->当前模块中的名称 (标签), CTR+N 此操作时要在 OllyDBG 中保证是在当前被调试程序的领空CPU - 主线程, 模块 - CrackHeaGetDlgItemText 及 GetWindowText 函数上右击,在弹出菜单上选择“在每个参考上设置断点/
函数上右击,在弹出菜单上选择“查找输入函数参考”(或者按回车键)跑到系统领空 ALT+F9 组合键调试选项的“命令”标签中勾选“使用 RET 代替 RETN”来更改返回指令的显示方式左键选择信息窗口中的 ESI=E6B5F2F9,再按右键,在弹出菜单上选“修改寄存器ESI 寄存器值点击一条,信息窗口点击右击选择数据窗口中跟随地址
调试->重新开始,或者按 CTR+F2 组合键内存访问和内存写入断点数据窗口中左键点击一下,再右击,转到->表达式 CTR+G 组合键输入我们想查看内容的内存地址硬件断点最多只能选 4 个字节。选中部分会显示为灰色。选好以后松开鼠标左键,在我们选中的灰色部分上右击:断点-内存写入断点->删除内存断点F2 设置一个断点,现在我们按 CTR+F2 重新载入程序,载入后按 F9 键运行基本算法是这样的:先用 GetDriveTypeA 函数获取磁盘类型参数,再用 GetVolumeInformationA 函数获取这个 crackme 程序所在分区的卷标消息断点及 RUN 跟踪
菜单 查看->窗口(w) 右键ClassProc 调试选项->跟踪中设置:DLL RUN击菜单调试->打开或清除 RUN 跟踪(m) 内存映射窗口右键 在访问上设置中数断 设好访问断点后我们按 F9 键按 F9 键(或者按 CTR+F12 查看->RUN 跟踪统计模块