• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2025-08-05 19:17 Aet 隐藏边栏 |   抢沙发  3 
文章评分 2 次,平均分 5.0

窗口

反汇编窗口

  1. 显示程序的反汇编代码(机器码 → 汇编指令),直观展示程序执行流程
  2. 支持设置断点:点击指令行左侧按 F2 可设置软件断点(显示为红色背景)
  3. 高亮关键指令(如跳转、调用),并通过颜色区分代码类型(如系统API调用为绿色)

寄存器窗口

  1. 实时显示 CPU 寄存器的当前值(如 EAXEBXECXEDX 等通用寄存器)
  2. 包含指令指针 EIP(指向下一条待执行指令地址)和状态寄存器 EFLAGS(标志位如零标志 ZF
  3. 双击寄存器值可直接修改(如修改 EAX 为特定数值测试程序行为)
  4. 支持查看扩展寄存器(如 MMXFPU 浮点单元),适用于多媒体或加密算法分析

数据窗口

  1. 显示内存数据的十六进制和字符(ASCII/Unicode)格式,用于查看变量、字符串或二进制结构
  2. 支持内存断点:监控指定地址的读写操作(右键 → BreakpointMemory on access
  3. Ctrl+G 输入地址可跳转到指定内存位置(如查看全局变量)
  4. 右键菜单支持数据编辑、搜索特定字节序列(如查找加密密钥)

堆栈窗口

  1. 显示当前线程的调用堆栈(函数返回地址、参数、局部变量)
  2. 记录函数调用顺序(如 main()funcA()funcB()),帮助理解程序执行上下文

初始静态分析

入口点

  1. 加载程序后,OllyDbg 自动暂停在 程序入口点(通常显示为 Entry Point of [模块名]),反汇编窗口会展示入口函数的汇编指令(如 PUSH EBP)。此处是分析起点,需观察初始化逻辑

导入表检查

  1. Alt+E 打开模块窗口,双击 test.exe 查看其导入函数表(如 KERNEL32.dllUSER32.dll

字符串与资源搜索

  1. 右键菜单选择 Search for → All referenced text strings,查找硬编码字符串(如错误提示、密钥、URL)。双击结果跳转到代码位置,定位关键逻辑

动态调试阶段(运行程序)

断点

  1. API断点
    1. 对关键函数设断(如 MessageBoxA):右键 → Breakpoint → On import → 选择 API
  2. 条件断点
    1. 在数据访问点设内存断点(如监控全局变量):选中内存地址 → 右键 → Breakpoint → Memory on access

单步

  1. F7
    1. 步入
  2. F8
    1. 步过
  3. 观察寄存器窗口

堆栈分析

  1. 堆栈窗口(Alt+K)显示函数调用链。检查:
    1. 参数传递:[EBP+8] 通常是第一个参数
    2. 返回地址:确认函数执行后返回到哪条指令

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享