修改完一个文件之后,点击保存到可执行文件就可以保存。
1.各窗口简单介绍
B: 即Breakpoints window,断点窗口,用来管理和查看用户的断点。
L:log window,日志窗口,用来显示程序的输入输出和一些断点之类的日志信息
E:Executable modules window,也就是可执行模块窗口,列出当前进程的所有可执行模块及其信息。
M窗口,Memory window,也就是内存窗口。可以查看内存信息,查看其中存储的数据之类。
R窗口,Registers window,寄存器窗口,显示有关寄存器的一些信息。
C窗口是最重要的窗口,记录的有汇编代码之类,可以在这里进行单步调试。ctrl+g会跳转到指定地址。双击C窗口会来到观赏性比较强的窗口
目前暂且记录这么多窗口,等待以后继续补充。
2.快捷键介绍
F2:设置断点
F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。
F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上
F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到 CALL 等子程序不进入其代码。
F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。
CTRL+F9:执行到返回。此命令在执行到一个 ret (返回指令)指令时暂停。好处就是当你不想具体看这个子程序的每一句代码执行的情况了,你就可以按键盘上的CTRL+F9直接运行到子程序的结尾的位置停下来
ALT+F9:当程序暂停在系统领空的时候,你按一下ALT+F9,程序就一下子就执行完当前系统领空的代码回到了程序领空。系统领空也就是代码属于系统方面的函数,比如弹窗什么的,特点是一般地址都很大。
3.实战
查壳发现是UPX,所以直接使用脱壳机脱壳。
这里发现已经没有壳了。因为只学习了od,这里采取OD进行逆向分析。
下一步,打开OD。
点击F9让程序运行起来,随便输入一个数字看看错误提示是什么。
进入OD,搜再试一次看看。
我认为关键代码在这里了。je的意思是相等则跳转,如果它跳转走了,那不可能执行破解成功这个函数。我们需要不让他跳转,除了jmp强制跳转的思路,我们还可以改为jne,让判断的条件反着来就行了。保存后执行,见下图,破解成功。
标签:窗口,入门,F9,跳转,window,使用,断点,子程序,Ollydbg From: https://blog.csdn.net/wlmt666/article/details/143925090