如何学习OD调试软件啊?
我想从事病毒分析工作,但是这个工作对调试能力要求比较高,我不会OD调试软件,应该如何学习呢?从破解中学习还是从逆向中学习?...
我想从事病毒分析工作,但是这个工作对调试能力要求比较高,我不会OD调试软件,应该如何学习呢?从破解中学习还是从逆向中学习?
展开
展开全部
一、OD入门
1.OD简介
OD默认功能
1. 汇编代码对应的地址窗口(虚拟地址,一般情况下,同一程序的同一条指令在不同系统环境下此值相同。)
2. 汇编代码对应的十六进制机器码窗口
3. 反汇编窗口
4. 反汇编代码对应的注释信息窗口
5. 寄存器信息窗口
6. 当前执行到的反汇编代码的信息窗口
7~9. 数据所在的内存地址,十六进制,ASCII码
10~12.栈地址,存放的数据,对应说明信息
2.OD快捷键
F2 下断点,也就是指定断点的地址
F3 加载一个可执行程序,进行调试分析
F4 程序执行到光标处
F5 缩小、还原当前窗口
F7 单步步入
F8 单步步过
F9 直接运行程序,遇到断点处,程序暂停
Ctrl+F2 重新运行程序到起始处,一般用于重新调试程序
Ctrl+F9 执行到函数返回处,用于跳出函数实现
Alt+F9 执行到用户代码处,用于快速跳出系统函数
Ctrl+G 输入十六进制地址,快速定位到该地址处
二、关于寄存器
EAX:扩展累加寄存器
EBX扩展基址寄存器
ECX扩展计数寄存器
EDX扩展数据寄存器
ESI扩展来源寄存器
EDI扩展目标寄存器
以下三个不可随便用,他们的范围是(0--ffffffff)
EBP扩展基址指针寄存器,主要用于栈和栈帧
ESP扩展堆栈指针寄存器,指向当前进程的栈空间地址
EIP:扩展的指令指针寄存器,总是指向下一条被被指向的命令
三、调试技巧总结
调试技巧总结
1.F2下断点,Alt+b打开断点编辑器,可编辑所有下过的断点,空格键可快速切换断点状态。
2.当位于某个CALL中,这时想返回到调用这个CALL的地方时,可以按“Ctrl+F9”快捷键执行返回功能。
这样OD就会停在遇到的第一个返回命令(如RET、RETF或IRET)。
3.如果跟进系统DLL提供的API函数中,此时想返回到应用程序领空里,可以按快捷键“Alt+F9”执行返回到用户代码命令。
4.所谓领空,实际上就是指在某一时刻,CPU执行的指令所在的某段代码的所有者。
5.如004013F7这类地址一般是可执行文件领空,7C8114AB这类大地址一般是系统DLL所在的地址空间。
6.程序通常读取文本框内容的字符串用的是以下两个函数:
GetDlgItemTextA(GetDlgItemTextW)
GetWindowTextA(GetWindowTextW)
7.一般我们要结合经验通过猜测的方式多尝试几遍设陷阱,找出相关的函数。
8.按“Ctrl+G”键打开跟随表达式的窗口。
9.也可以通过“Ctrl+N”键打开应用程序的导入表(输入表),然后查看应用程序总共导入了哪些函数来以此推断需要在哪里挖坑下陷阱!
10.关于返回值,汇编代码的返回值约定是存放在eax这个寄存器里边的,如果32位的eax不够存放返回值,系统会将返回值放在内存某个位置并把该位置的地址放在eax返回。
1.OD简介
OD默认功能
1. 汇编代码对应的地址窗口(虚拟地址,一般情况下,同一程序的同一条指令在不同系统环境下此值相同。)
2. 汇编代码对应的十六进制机器码窗口
3. 反汇编窗口
4. 反汇编代码对应的注释信息窗口
5. 寄存器信息窗口
6. 当前执行到的反汇编代码的信息窗口
7~9. 数据所在的内存地址,十六进制,ASCII码
10~12.栈地址,存放的数据,对应说明信息
2.OD快捷键
F2 下断点,也就是指定断点的地址
F3 加载一个可执行程序,进行调试分析
F4 程序执行到光标处
F5 缩小、还原当前窗口
F7 单步步入
F8 单步步过
F9 直接运行程序,遇到断点处,程序暂停
Ctrl+F2 重新运行程序到起始处,一般用于重新调试程序
Ctrl+F9 执行到函数返回处,用于跳出函数实现
Alt+F9 执行到用户代码处,用于快速跳出系统函数
Ctrl+G 输入十六进制地址,快速定位到该地址处
二、关于寄存器
EAX:扩展累加寄存器
EBX扩展基址寄存器
ECX扩展计数寄存器
EDX扩展数据寄存器
ESI扩展来源寄存器
EDI扩展目标寄存器
以下三个不可随便用,他们的范围是(0--ffffffff)
EBP扩展基址指针寄存器,主要用于栈和栈帧
ESP扩展堆栈指针寄存器,指向当前进程的栈空间地址
EIP:扩展的指令指针寄存器,总是指向下一条被被指向的命令
三、调试技巧总结
调试技巧总结
1.F2下断点,Alt+b打开断点编辑器,可编辑所有下过的断点,空格键可快速切换断点状态。
2.当位于某个CALL中,这时想返回到调用这个CALL的地方时,可以按“Ctrl+F9”快捷键执行返回功能。
这样OD就会停在遇到的第一个返回命令(如RET、RETF或IRET)。
3.如果跟进系统DLL提供的API函数中,此时想返回到应用程序领空里,可以按快捷键“Alt+F9”执行返回到用户代码命令。
4.所谓领空,实际上就是指在某一时刻,CPU执行的指令所在的某段代码的所有者。
5.如004013F7这类地址一般是可执行文件领空,7C8114AB这类大地址一般是系统DLL所在的地址空间。
6.程序通常读取文本框内容的字符串用的是以下两个函数:
GetDlgItemTextA(GetDlgItemTextW)
GetWindowTextA(GetWindowTextW)
7.一般我们要结合经验通过猜测的方式多尝试几遍设陷阱,找出相关的函数。
8.按“Ctrl+G”键打开跟随表达式的窗口。
9.也可以通过“Ctrl+N”键打开应用程序的导入表(输入表),然后查看应用程序总共导入了哪些函数来以此推断需要在哪里挖坑下陷阱!
10.关于返回值,汇编代码的返回值约定是存放在eax这个寄存器里边的,如果32位的eax不够存放返回值,系统会将返回值放在内存某个位置并把该位置的地址放在eax返回。
力控科技
2024-08-19 广告
2024-08-19 广告
ForceSCADA是力控科技信创产品的重要组成部分,具备完全自主知识产权,支持部署在Linux桌面版、服务器版、嵌入式等系统架构下。使用ForceSCADA可以搭建创新性高、扩展性佳、融合度强的SCADA平台,进而构建高效、智能化的监控中...
点击进入详情页
本回答由力控科技提供
2013-07-18
展开全部
只要是程序OD都可以调试。首先你先得学会汇编。一般都只用来破解和逆向工程的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-18
展开全部
OD是破解软件的,一般的是用于易语言软件的破解,破解病毒没有那么容易的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询