ODbgScript与OllyScript:脚本语言详解及示例
5星 · 超过95%的资源 需积分: 9 139 浏览量
更新于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 上传
2024-11-10 上传
2024-11-10 上传
2024-10-30 上传
2024-10-30 上传
2024-11-10 上传
2024-10-30 上传
liaoyl888
- 粉丝: 0
- 资源: 1
最新资源
- Python库 | seeq-0.46.8.166-py3-none-any.whl
- ScreenShot:对你的屏幕进行屏幕截图-matlab开发
- 行业分类-设备装置-不同移动终端的双字节字符数据备份及转换方法.zip
- Bunnings代码技能挑战
- kishanteli.github.io:投资组合网站
- Coolorus v2.5.15 WinMac.zip
- Cinder-Osc:基于liblo的Cinder的Osc块
- opencv+python 人脸识别的xml文件
- 2017-2021年南京理工大学620公共管理考研真题
- rosDSFASF sdic彻底的士大夫
- serialTerminal.com:基于浏览器的串行终端。没有插件。香草javascript
- 微积分 2:微积分 2 示例的实时编辑器解决方案-matlab开发
- next.js-amp-story
- 学习:学习项目存储库
- Malware_Detection_ANFIS
- html5手机端信息筛选条件特效代码