OllyDbg完全教程 反汇编器[Disassembler]

转载 2006年06月10日 08:48:00
三,反汇编器[Disassembler]

反汇编器识别所有的标准80x86、保护、FPU、MMX和3DNow!指令集(包括Athlon扩展的MMX指令集)。但它不识别ISSI命令,尽管计划要在下个版本中支持这种命令。某些过时或者未公开的命令,像LOADALL,也不支持。

反汇编器可以正确解码16位地址。但它假设所有的段都是32位的(段属性使用32位)。这对于PE[Portable Executable]格式文件总是真的。OllyDbg不支持16位的NE
[New Executables]格式。

如果您熟悉MASM或者TASM,那么反汇编的代码对于您没有任何问题。但是,一些特例也是存在的。以下命令的解码与Intel的标准不同:


AAD (ASCII Adjust AX Before Division) -
该命令的解码后的一般形式为:AAD imm8

AAM (ASCII Adjust AX After Multiply) -
该命令(非十进制数)的一般解码形式为:AAM imm8

SLDT (Store Local Descriptor Table register) -
操作数总被解码为16位。这个命令的32位形式会在目的操作数的低16位中存储段选择器,并保留高16位不变。

SALC (Sign-extend Carry bit to AL, undocumented) -
OllyDbg 支持这个未公开指令。

PINSRW (Insert Word From Integer Register, Athlon extension to MMX) -
在AMD的官方文档中,这个命令的内存形式使用了16位内存操作数;然而寄存器形式需要32位寄存器,但只使用了低16位。为了方便处理,反汇编器解码寄存器为16
位形式。而汇编器两种形式都支持。

CVTPS2PI and CVTTPS2PI (Convert Packed Single-Precision Floating to Packed Doubleword, Convert with Truncation Packed Single-Precision Floating to Packed Doubleword) -

在这些命令中,第一个操作数是MMX寄存器,第二个或者是128位XMM寄存器或者是64位内存区域。为了方便处理,内存操作数也被解码为128位。


有些指令的助记符要依赖操作数的大小:


不分大小的形式 明确的16位形式 明确的32位形式
PUSHA PUSHAW PUSHAD
POPA POPAW POPAD
LOOP LOOPW LOOPD
LOOPE LOOPWE LOOPDE
LOOPNE LOOPWNE LOOPDNE
PUSHF PUSHFW PUSHFD
POPF POPFW POPFD
IRET IRETW IRETD
您可以改变解码大小敏感助记符[decoding of size-sensitive mnemonics].。根据选项,反汇编器从三种可能中选择之一进行解码。这个选项也会影响汇编器的默认处理方式。

解码MMX和3DNow!指令总是开启的,尽管您的处理器并不支持这些指令。


使用OllyDbg从零开始Cracking系列教程(非本人原创,但很精辟,胜于大部分视频教程)

看雪安全论坛 > 信息安全> 『外文翻译』 使用OllyDbg从零开始Cracking系列教程已翻译章节导航帖 用户名 记住 密...
  • ccstuck
  • ccstuck
  • 2014年10月14日 07:55
  • 7213

Hopper Disassembler初体验

一直想在Mac上安装一个逆向工具。然而尝试了很多次IDA Pro都发现已经过期了。于是不得不考虑尝试一下其他工具。在YouTube的某个直播CTF的视频中发现了po主推荐的Hopper,于是搜了一下,...
  • caiqiiqi
  • caiqiiqi
  • 2016年12月09日 16:59
  • 2055

MAC软件破解初探—Hopper Disassembler使用

Hopper Disassembler是一款适用于Mac操作系统的软件,Hopper是一款是32位和64位的二进制反汇编器,反编译和调试。你可以使用此工具拆开你想要的任何二进制。...
  • skylin19840101
  • skylin19840101
  • 2017年01月22日 17:59
  • 3342

OllyDbg完全教程

OllyDbg完全教程 一,什么是 OllyDbg? OllyDbg 是一种具有可视化界面的 32 位汇编-分析调试器。它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无...
  • Augusdi
  • Augusdi
  • 2011年04月01日 16:29
  • 2637

OllyDbg完全教程

OllyDbg完全教程一,什么是 OllyDbg?OllyDbg 是一种具有可视化界面的 32 位汇编-分析调试器。它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。V...
  • Tunix126
  • Tunix126
  • 2006年09月08日 09:40
  • 9004

[转载]OllyDbg完全教程

一,什么是 OllyDbg? OllyDbg 是一种具有可视化界面的 32 位汇编-分析调试器。它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。 Version...
  • J0y4n
  • J0y4n
  • 2008年02月03日 21:55
  • 1510

MAC下的反编译、反汇编和调试神器Hopper Disassembler

官网:http://www.hopperapp.com/ Hopper是一款运行在Mac、Windows和Linux下的调试(os x only)、反汇编和反编译的交互式工具。可以对32、64位的...
  • jinglijun
  • jinglijun
  • 2015年01月11日 12:18
  • 8038

OllyDbg完全教程 什么是 OllyDbg

OllyDbg完全教程一,什么是 OllyDbg?OllyDbg 是一种具有可视化界面的 32 位汇编-分析调试器。它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。V...
  • paste
  • paste
  • 2006年06月10日 08:47
  • 5541

ollydbg 教程

OllyDBG教程F图   2008-05-24 00:26:24|  分类: OD教程 |举报 |字号 订阅 OllyDBG教程 2008-04-16 00:03 ...
  • lizhuohuang1
  • lizhuohuang1
  • 2014年05月29日 13:36
  • 2073

OllyDbg完全教程 示例 不完整

在我们选择这个函数后,右边的消息框中会出现 Number of arguments: 4(有四个参数)的字样。OllyDbg 会根据函数尾部的RET 10语句来正确识别参数的数量。RET nnn 是使...
  • paste
  • paste
  • 2006年06月10日 09:05
  • 2430
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OllyDbg完全教程 反汇编器[Disassembler]
举报原因:
原因补充:

(最多只允许输入30个字)