OllyDbg使用学习 笔记

1. 运行命令:
        F7 -- 单步执行,遇到Call跟进
        F8 -- 单步执行,遇到Call跳过,不进入
        F9 -- 运行起来,相当于Visual Studio的F5
        Ctrl+F9 -- 运行到本函数结束(Ret指令后)
        Alt+F9 -- 跳出系统调用,回到应用程序中
        
        Ctrl+F2 或者点击菜单中的 标记可以重新运行程序
        
        F12 -- 暂停程序,进入死循环后,可以按键 F12 停止运行
        
        F4 -- 执行到光标所在的行(其实相当于一次性断点)。

2. 断点设置:
        F2 -- 键可以设置一个断点,在断点上再次按F2键,取消断点。
                双击Hex dump栏 -- 也可以设置或取消一个断点

        Ctrl+G -- 打开追踪表达式的窗口,输入API,点OK,即可跳转到指定API起始处。
        Ctrl+N -- 打开程序输入表,找到要下断点的API函数,Enter或双击即可跳转到代码处。
        
        硬断点:
                在指定的代码行上,右键-> Breakpoint/Hardware on execution(断点/硬件执行)命令,即可下硬断点
                        删除:Debug/Hardware breakpoints,打开硬断点窗口,点击删除,即可删除硬断点。
                使用用命令设置硬断点:
                        hr address 例如: hr 0012FFA4  设置硬断点,在访问 0x0012FFA4内存时断下来。
        内存断点:
                在数据窗口(内存窗口),选中要下断点的地址区域,单击鼠标右键,执行Break/Memory,on write
                        删除:选中断点处,右键即可看到删除断点的命令。
                内存访问一次性断点:Alt+M,即内存窗口。可以看到很多段,在一个段上右键,可以当看到:
                        Set break-on-access(在访问上设置断点),或按键 F2,对整段内存设置一个访问断点
        条件断点:
                Shift+F2 -- 设置条件断点,弹出条件窗口,输入条件表达式

        节区断点:
                Alt+M,跳转到内存模板,选中一个节区,按F2设置断点,即对选中的整个节区设置断点
                节区被访问即可以断下来。

3. 查看内存:
        选中一个寄存器,右键-> Follw In Dump 在内存窗口查看内存内容
        
        Ctrl+G -- 输入表达式或地址值,可以查看相应地址的内容
        
        Alt+M -- 跳到内存窗口,查看模块在内存中的分布(节区的地址范围)。内存模板
        
4. 修改指令
        双击一行指令,或 选中一行,然后按Space键,打开Assemble窗口,几个将当前汇编指令修改。
        
        选中修改的指令,右键-> Copy to excecutable/Selection,将指令保存到PE中。

5. CmdBar 的使用:
        ? 表达式 计算表达式得知,? 34* 45-4
        D 表达式/内存地址 查看内存数据。
                DB,DW,DD等

        BP 表达式 设置断点,bp GetDlgItemTextA
        Hw 表达式 设置硬件写断点

6. 常见的问题处理:
        如果汇编代码被识别成了数据,可以右键 Analysis/Analyse code 或 Ctrl+A 强制OllyDbg重新分析代码
        

        双击 EIP 寄存器,可以回到当前按正执行的地方。


你可能感兴趣的:(OllyDbg使用学习 笔记)