ODbgScript与OllyScript:脚本语言详解及示例
5星 · 超过95%的资源 需积分: 9 198 浏览量
更新于2024-07-30
收藏 203KB PDF 举报
"ODbgScript脚本是一种基于OllyScript语言的工具,用于控制ODbg(Olly Debugger)的脚本执行。它采用类似于汇编的语法,支持多种数据类型和操作,包括十六进制和十进制常数、变量、寄存器、内存地址、标志位、字符串以及通配符字符串。此外,脚本还提供了保留变量、版本信息检查、指令包含、日志记录等功能,便于在调试过程中实现自动化和自定义操作。"
在ODbgScript中,你可以使用不同的操作数类型进行计算和控制流程。这些操作数包括:
1. **常数**:可以是无前缀和后缀的十六进制数(如00FF),或带点的十进制数(如100.128,甚至浮点数如128.56)。
2. **变量**:需通过`Var`关键字定义后才能使用。
3. **寄存器**:涵盖32位(EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP)、16位(AX, BX, CX, DX, SI, DI, BP, SP)以及8位(AL, AH, DL, DH)寄存器。
4. **内存地址**:可以是直接的内存地址(如[401000])或基于寄存器的地址(如[ecx])。
5. **标志位**:前缀为感叹号的标志,如(!CF, !PF, !AF, !ZF, !SF, !DF, !OF)。
6. **字符串**:以#开头和结束的序列,如#6A0000#,或包含通配符的字符串,如#6A??00#。
ODbgScript提供了几个特殊的保留变量:
- **$RESULT**:用于存储函数返回值,例如FIND函数的结果,可以在调试窗口中查看和修改。
- **$VERSION**:表示ODbgScript的版本信息,可用于版本比较,确保脚本兼容性。
ODbgScript的一些关键指令包括:
- **#INC"文件名"**:将另一个脚本文件包含进来,类似子程序调用,但两脚本内变量名不可重复。
- **#LOG**:开启日志记录,所有记录的指令将在OllyDbg的日志窗口中显示,前面会有"-->"标记。
例如,以下脚本片段展示了如何使用这些元素:
```odbgscript
Var myVar = 0x1234
#log "Starting script..."
cmp $VERSION, "1.47"
jne version_not_supported
#INC "additional_script.txt"
mov eax, [ebx + 4]
#LOG "eax value is now: " + eax
```
这个例子中,首先定义了一个变量`myVar`,然后检查版本信息,如果版本不满足条件,则跳转到`version_not_supported`标签。接着包含外部脚本,并移动内存中 ebx+4 的值到 eax 寄存器,最后记录 eax 的当前值。
2010-11-27 上传
2023-07-31 上传
2019-08-20 上传
2011-05-16 上传
2008-08-26 上传
liaoyl888
- 粉丝: 0
- 资源: 1
最新资源
- 天池大数据比赛:伪造人脸图像检测技术
- ADS1118数据手册中英文版合集
- Laravel 4/5包增强Eloquent模型本地化功能
- UCOSII 2.91版成功移植至STM8L平台
- 蓝色细线风格的PPT鱼骨图设计
- 基于Python的抖音舆情数据可视化分析系统
- C语言双人版游戏设计:别踩白块儿
- 创新色彩搭配的PPT鱼骨图设计展示
- SPICE公共代码库:综合资源管理
- 大气蓝灰配色PPT鱼骨图设计技巧
- 绿色风格四原因分析PPT鱼骨图设计
- 恺撒密码:古老而经典的替换加密技术解析
- C语言超市管理系统课程设计详细解析
- 深入分析:黑色因素的PPT鱼骨图应用
- 创新彩色圆点PPT鱼骨图制作与分析
- C语言课程设计:吃逗游戏源码分享