窗口
反汇编窗口
- 显示程序的反汇编代码(机器码 → 汇编指令),直观展示程序执行流程
- 支持设置断点:点击指令行左侧按
F2可设置软件断点(显示为红色背景) - 高亮关键指令(如跳转、调用),并通过颜色区分代码类型(如系统
API调用为绿色)
寄存器窗口
- 实时显示
CPU寄存器的当前值(如EAX、EBX、ECX、EDX等通用寄存器) - 包含指令指针
EIP(指向下一条待执行指令地址)和状态寄存器EFLAGS(标志位如零标志ZF) - 双击寄存器值可直接修改(如修改
EAX为特定数值测试程序行为) - 支持查看扩展寄存器(如
MMX、FPU浮点单元),适用于多媒体或加密算法分析
数据窗口
- 显示内存数据的十六进制和字符(
ASCII/Unicode)格式,用于查看变量、字符串或二进制结构 - 支持内存断点:监控指定地址的读写操作(右键 →
Breakpoint→Memory on access) - 按
Ctrl+G输入地址可跳转到指定内存位置(如查看全局变量) - 右键菜单支持数据编辑、搜索特定字节序列(如查找加密密钥)
堆栈窗口
- 显示当前线程的调用堆栈(函数返回地址、参数、局部变量)
- 记录函数调用顺序(如
main()→funcA()→funcB()),帮助理解程序执行上下文
初始静态分析
入口点
- 加载程序后,
OllyDbg自动暂停在 程序入口点(通常显示为Entry Point of [模块名]),反汇编窗口会展示入口函数的汇编指令(如PUSH EBP)。此处是分析起点,需观察初始化逻辑
导入表检查
- 按
Alt+E打开模块窗口,双击test.exe查看其导入函数表(如KERNEL32.dll、USER32.dll)
字符串与资源搜索
- 右键菜单选择
Search for → All referenced text strings,查找硬编码字符串(如错误提示、密钥、URL)。双击结果跳转到代码位置,定位关键逻辑
动态调试阶段(运行程序)
断点
API断点- 对关键函数设断(如
MessageBoxA):右键 →Breakpoint → On import→ 选择API
- 对关键函数设断(如
- 条件断点
- 在数据访问点设内存断点(如监控全局变量):选中内存地址 → 右键 →
Breakpoint → Memory on access
- 在数据访问点设内存断点(如监控全局变量):选中内存地址 → 右键 →
单步
F7- 步入
F8- 步过
- 观察寄存器窗口
堆栈分析
- 堆栈窗口(
Alt+K)显示函数调用链。检查:- 参数传递:
[EBP+8]通常是第一个参数 - 返回地址:确认函数执行后返回到哪条指令
- 参数传递:
声明:本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ MASM:概述一08/04
- ♥ C++程序高级调试与优化_第一篇07/20
- ♥ x86_64汇编学习记述一08/06
- ♥ 汇编记述三08/07
- ♥ x86_64汇编学习记述二08/07
- ♥ 相关指令05/06
热评文章
- x86_64汇编学习记述一 0
- 汇编记述二 0
- 汇编记述三 0
- 标志寄存器 0
- x86_64汇编学习记述二 0
- 相关指令 0