b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ollydbg_ollydbg入门教程_ollydbg破解注册码(30)

电脑杂谈  发布时间:2017-04-17 05:02:23  来源:网络整理

大多断API函数都会从栈中移除参数并保护寄存器EBX, EBP, ESI 和 EDI。声明这样的函数为STDFUNC,以告诉分析器该函数做了这样的事情。否则请其描述为FUNCTION。

万一某个参数由多个域及比特组成,比如上面提到的fdwPitchAndFamily ,我们该怎么办?请看下面这个例子:

TYPE FF_PITCH

MASK 03

IF 00 "DEFAULT_PITCH"

IF 01 "FIXED_PITCH"

IF 02 "VARIABLE_PITCH"

ELSEHEX

TEXT "—>"

MASK 0C

BIT 04 "4—>"

BIT 08 "8—>"

MASK FFFFFFF0

IF 00 "FF_DONTCARE"

IF 10 "FF_ROMAN"

IF 20 "FF_SWISS"

IF 30 "FF_MODERN"

IF 40 "FF_SCRIPT"

IF 50 "FF_DECORATIVE"

ELSEHEX

END

前两个比特位(第0和等1位)表示倾斜度,必须一起解码。我们使用 MASK 03 来提取这两个比特并通过IF序列来解码。增加了连接符“—>”,分别提取第2和第3个比特位,并分别单独解码。最后提取剩余部分并进行解码。

OllyDbg 会移除生成串尾部的连接符“—>”、空、冒号、逗号、分号和等号。

目前版本的分析仅能够解码32位参数。如你不能解码双精度浮点或长双精度浮点的函数参数。

2、式描述

自定义解码信息由函数描述和类型描述两部分组成。函数描述部分非常的简单:

FUNCTION|STDFUNC [模块名]函数名

<第一个参数的名称> <第一个参数的类型>

……

<最后一个参数的名称> <最后一个参数的类型>

END

如果函数从栈中移除参数并保护寄存器EBX, EBP, ESI 和 EDI,请使用关键字STDFUNC。大多少函数都遵循这样的规则。其他情况则声明为FUNCTION。模块(EXE 或 DLL)名是可选的。如果模块名被忽略,OllyDbg会对尝试匹配任何模块。模块名不区分大小写。

函数名称总是区分大小写的。有针对UNICODE的函数必须使用后缀 A 或 W 加以区分,比如SetWindowTextA.。

参数的顺序又C风的参数使用惯例一致。而16位Windows和32位API函数也是按惯例使用。如果参数名由多个字组成,或者包含特殊字符,那么请将其用两个单引号引起来。与在C语言中一样,省略号()是一个特殊的记录用于表示参数数目可变。它必须在函数描述的最后。OllyDbg不会尝试解码这样的参数。如果函数的参数为空,则按functionname(void)对待。

OllyDbg 仅支持32位的参数。某些参数已经预定义好了:

INT 以十六进制和带符号整数两种式显示

UINT 以十六进制和无符号整数两种式显示

HEX 以十六进制式显示

BOOL TRUE或 FALSE

CHAR ASCII字符

WCHAR UNICODE字符


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-41789-30.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...