软件介绍
ollydbg中文版是一款非常实用的反汇编工具软件界面采用BoOMBoX/TSRh2004制作的美化界面,是目前为止最流行的调试解密工具之一。它可以识别所有Borland和Microsoft格式的调试信息,包括源代码、函数名、标签、全局变量、静态变量。而且该软件本身附带了脱壳脚本和各种插件,能够支持Windows平台下的32/64位系统上使用是反汇编工作必备的调试工具,基本已经完全取代了SoftICE。如果用户想要进行破解工作,想要免费使用一些软件,或者学习如果进行破解以防止他人破解自己的软件,那么这款软件是不错的试手软件,需要的开发者不要错过哦。
PS:进入小编给大家带来的是ollydbg中文版,已经汉化完成,无需安装解压后即可使用,如果大家要想要修改的版本的话,推荐使用freecat兄弟制作的AutoPath,我已经把这个插件放在FixOD目录下,我把freecat兄弟发布时所用的说明也放在同一目录下,大家可以根据说明来使用这个插件改造你的OllyDBG。
2、允许用户定义标签、注释和功能描述
3、调试多线程应用程序
4、解码对1900多个标准api和400多个c函数的调用
5、设置条件、日志记录、内存和硬件断点
6、动态跟踪堆栈帧
7、查找对常量或地址范围的引用
2、支持AVS指令
3、调用堆栈窗口
4、SEH和VEH链条
5、多字节字符转储
6、在转储中搜索整数和浮点数
7、使用int1、hlt、cli、sti或insb而不是int3的软件断点
8、对ntfs流的有限支持
9、支持重复计数
10、立即数据语句的汇编(db xx等)
11、突出显示运行中跟踪
12、更复杂的代码序列
13、显示可用内存。
您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到软件中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。支持即时调试,根本不需要安装,可直接在软盘中运行!
线程
可以调试多线程程序。因此您可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误(就像调用 GETLASTERROR 返回一样)。
调试DLLs
您可以利用软件调试标准动态链接库(DLLs)。软件会自动运行一个可执行程序。这个程序会加载链接库,并允许您调用链接库的输出函数。
源码级调试
可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构。
代码高亮
反汇编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的操作数(常规[general]、FPU/SSE、段/系统寄存器、在栈或内存中的操作数,常量)。您可以定制个性化高亮方案。
名称
可以根据 Borland 和 Microsoft 格式的调试信息,显示输入/输出符号及名称。扫描器可以识别库函数。其中的名称和注释您可任意添加。如果DLL中的某些函数是通过索引号输出的,则您可通过挂接输入库[import library]来恢复原来的函数名称。不仅如此,还能识别大量的常量符号名(如:窗口消息、错误代码、位域[bit fields]…)并能够解码为已知的函数调用。
已知函数
可以识别 2300 多个C 和Windows API 中的常用函数及其使用的参数。您可以添加描述信息、预定义解码。您还可以在已知函数设定 Log断点并可以对参数进行记录。
函数调用
可以在没有调试信息或函数过程使用非标准的开始部分[prolog]和结尾部分[epilog]的情况下,对递归调用进行回溯。
配置
有多达百余个选项用来设置OllyDbg 的外观和运行。
数据格式:数据窗口能够显示的所有数据格式:HEX、ASCⅡ、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。
运行环境
可以以在任何采用奔腾处理器的 Windows 95、98、ME、NT 或是 XP(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。还有,该软件是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。
支持的处理器
支持所有 80x86、奔腾、MMX、3DNOW!、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。
1.1、基础使用
该软件是Windows平台下Ring3级的程序调试利器。程序调试有静态调试和动态调试两种。静态调试是指将程序源代码编译成可执行程序之前,用手工或编译程序等方法对程序源代码进行测试,来查找和修正程序中的语法错误和逻辑错误。动态调试则是在可执行程序的运行过程中,来查找和修正程序中的语法错误和逻辑错误。随着系统安全与逆向工程的不断发展,程序调试已经成为信息安全爱好者所必备的一种技术。OD结合了静态调试和动态调试的方法,功能强大,已经成为了Windows平台下普通应用程序的调试利器。
1.2、PE文件
PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件
1.3、寄存器
EAX 是”累加器”(accumulator), 它是很多加法乘法指令的缺省寄存器。
EBX 是”基地址”(base)寄存器, 在内存寻址时存放基地址。
ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。
EDX 则总是被用来放整数除法产生的余数。
ESI/EDI分别叫做”源/目标索引寄存器”(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串。
EBP是”基址指针”(BASE POINTER), 它最经常被用作高级语言函数调用的”框架指针”(frame pointer)。
二、OD的各个窗口
2.1、反汇编窗口
2.2、信息窗口
2.3、数据窗口
用于显示内存或文件的内容。可以从以下预处理格式中选择一种显示方式:字节[byte]、文本[text]、整数[integer]、浮点数[float]、地址[address],反汇编[disassembly]、PE头[PE Header]。
2.4、寄存器窗口
用于显示和解释当前所选线程的CPU寄存器中的内容。该窗口同样允许修改寄存器,并可以跟进地址到其它CPU窗口。
2.5、堆栈窗口
用于显示当前线程的堆栈。当被调试程序暂停运行时,堆栈窗口一般会自动滚动将当前ESP指向的地址放在窗口的第一条。并且这个地址被高亮显示。在某些情况下禁止滚动会更方便一些,可以通过在堆栈窗口右键单击[锁定堆栈]来禁止堆栈自动滚动。
2.6、其他窗口
L -> 日志窗口
E -> 显示程序运行使用的模块
M -> 显示我们程序映射到内存的信息
T -> 显示程序的线程窗口
W -> Windows显示程序窗口
H -> 句柄窗口
C -> 回到主窗口,CPU窗口
P -> 如果程序经过了修改,这里显示修改的信息
K -> 显示调用堆栈的窗口信息
B -> 显示程序普通断点的列表窗口
R -> Reference 参考窗口,显示我们在软件中搜索的结果。
… -> 显示 RUN TRACE(RUN 跟踪)命令的结果
三、OD的各种初始设置及快捷键
3.1、怎样设置实时调试
当然,我们不一定会用到实时调试,除非特殊情况。因为如果我们运行的程序出现崩溃时。
选项 -> 实时调试设置
3.2、在 软件中关联插件
允许你使用插件,这样会对解决问题有所帮助
首先下载插件,解压插件文件夹,为插件建立一个文件夹(可以在任意位置)
选项->界面选项
我们看到作为插件路径的目录已被指定,即 OllyDbg.exe 所在的目录,可以把插件放在那里
3.3、最常用的快捷键
F7 执行一行代码,遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条 指令上。
F8 执行一行代码,遇到 CALL 等子程序不进入其代码。
这两个键的功能有所不同,以后将会看到。
F2 在显著行设置断点,再次按 F2 删除断点。
PS:进入小编给大家带来的是ollydbg中文版,已经汉化完成,无需安装解压后即可使用,如果大家要想要修改的版本的话,推荐使用freecat兄弟制作的AutoPath,我已经把这个插件放在FixOD目录下,我把freecat兄弟发布时所用的说明也放在同一目录下,大家可以根据说明来使用这个插件改造你的OllyDBG。
软件特点
1、代码分析-跟踪寄存器、识别过程、循环、API调用、开关、表、常量和字符串2、允许用户定义标签、注释和功能描述
3、调试多线程应用程序
4、解码对1900多个标准api和400多个c函数的调用
5、设置条件、日志记录、内存和硬件断点
6、动态跟踪堆栈帧
7、查找对常量或地址范围的引用
软件优势
1、多语言图形用户界面2、支持AVS指令
3、调用堆栈窗口
4、SEH和VEH链条
5、多字节字符转储
6、在转储中搜索整数和浮点数
7、使用int1、hlt、cli、sti或insb而不是int3的软件断点
8、对ntfs流的有限支持
9、支持重复计数
10、立即数据语句的汇编(db xx等)
11、突出显示运行中跟踪
12、更复杂的代码序列
13、显示可用内存。
软件功能
启动您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到软件中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。支持即时调试,根本不需要安装,可直接在软盘中运行!
线程
可以调试多线程程序。因此您可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误(就像调用 GETLASTERROR 返回一样)。
调试DLLs
您可以利用软件调试标准动态链接库(DLLs)。软件会自动运行一个可执行程序。这个程序会加载链接库,并允许您调用链接库的输出函数。
源码级调试
可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构。
代码高亮
反汇编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的操作数(常规[general]、FPU/SSE、段/系统寄存器、在栈或内存中的操作数,常量)。您可以定制个性化高亮方案。
名称
可以根据 Borland 和 Microsoft 格式的调试信息,显示输入/输出符号及名称。扫描器可以识别库函数。其中的名称和注释您可任意添加。如果DLL中的某些函数是通过索引号输出的,则您可通过挂接输入库[import library]来恢复原来的函数名称。不仅如此,还能识别大量的常量符号名(如:窗口消息、错误代码、位域[bit fields]…)并能够解码为已知的函数调用。
已知函数
可以识别 2300 多个C 和Windows API 中的常用函数及其使用的参数。您可以添加描述信息、预定义解码。您还可以在已知函数设定 Log断点并可以对参数进行记录。
函数调用
可以在没有调试信息或函数过程使用非标准的开始部分[prolog]和结尾部分[epilog]的情况下,对递归调用进行回溯。
配置
有多达百余个选项用来设置OllyDbg 的外观和运行。
数据格式:数据窗口能够显示的所有数据格式:HEX、ASCⅡ、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。
运行环境
可以以在任何采用奔腾处理器的 Windows 95、98、ME、NT 或是 XP(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。还有,该软件是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。
支持的处理器
支持所有 80x86、奔腾、MMX、3DNOW!、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。
Ollydbg使用教程
一、基础知识1.1、基础使用
该软件是Windows平台下Ring3级的程序调试利器。程序调试有静态调试和动态调试两种。静态调试是指将程序源代码编译成可执行程序之前,用手工或编译程序等方法对程序源代码进行测试,来查找和修正程序中的语法错误和逻辑错误。动态调试则是在可执行程序的运行过程中,来查找和修正程序中的语法错误和逻辑错误。随着系统安全与逆向工程的不断发展,程序调试已经成为信息安全爱好者所必备的一种技术。OD结合了静态调试和动态调试的方法,功能强大,已经成为了Windows平台下普通应用程序的调试利器。
1.2、PE文件
PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件
1.3、寄存器
EAX 是”累加器”(accumulator), 它是很多加法乘法指令的缺省寄存器。
EBX 是”基地址”(base)寄存器, 在内存寻址时存放基地址。
ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。
EDX 则总是被用来放整数除法产生的余数。
ESI/EDI分别叫做”源/目标索引寄存器”(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串。
EBP是”基址指针”(BASE POINTER), 它最经常被用作高级语言函数调用的”框架指针”(frame pointer)。
二、OD的各个窗口
2.1、反汇编窗口
2.2、信息窗口
2.3、数据窗口
用于显示内存或文件的内容。可以从以下预处理格式中选择一种显示方式:字节[byte]、文本[text]、整数[integer]、浮点数[float]、地址[address],反汇编[disassembly]、PE头[PE Header]。
2.4、寄存器窗口
用于显示和解释当前所选线程的CPU寄存器中的内容。该窗口同样允许修改寄存器,并可以跟进地址到其它CPU窗口。
2.5、堆栈窗口
用于显示当前线程的堆栈。当被调试程序暂停运行时,堆栈窗口一般会自动滚动将当前ESP指向的地址放在窗口的第一条。并且这个地址被高亮显示。在某些情况下禁止滚动会更方便一些,可以通过在堆栈窗口右键单击[锁定堆栈]来禁止堆栈自动滚动。
2.6、其他窗口
L -> 日志窗口
E -> 显示程序运行使用的模块
M -> 显示我们程序映射到内存的信息
T -> 显示程序的线程窗口
W -> Windows显示程序窗口
H -> 句柄窗口
C -> 回到主窗口,CPU窗口
P -> 如果程序经过了修改,这里显示修改的信息
K -> 显示调用堆栈的窗口信息
B -> 显示程序普通断点的列表窗口
R -> Reference 参考窗口,显示我们在软件中搜索的结果。
… -> 显示 RUN TRACE(RUN 跟踪)命令的结果
三、OD的各种初始设置及快捷键
3.1、怎样设置实时调试
当然,我们不一定会用到实时调试,除非特殊情况。因为如果我们运行的程序出现崩溃时。
选项 -> 实时调试设置
3.2、在 软件中关联插件
允许你使用插件,这样会对解决问题有所帮助
首先下载插件,解压插件文件夹,为插件建立一个文件夹(可以在任意位置)
选项->界面选项
我们看到作为插件路径的目录已被指定,即 OllyDbg.exe 所在的目录,可以把插件放在那里
3.3、最常用的快捷键
F7 执行一行代码,遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条 指令上。
F8 执行一行代码,遇到 CALL 等子程序不进入其代码。
这两个键的功能有所不同,以后将会看到。
F2 在显著行设置断点,再次按 F2 删除断点。
用户评论
共0条评论