反编译器生成的数据类型
在之前的一篇文章中,我们讨论了如何编辑伪代码中使用的函数和变量的类型。在大多数情况下,您可以使用标准 C 类型: char
、int
、long
等等。
但是,在某些情况下,您可能需要更具体的类型。
反编译器也可能自己生成类型,因此识别它们很有用。
以下自定义类型可能出现在伪代码中或用于变量和函数类型:
明确大小的数值类型
-
__int8
– 1字节整数(8位) -
__int16
– 2字节整数(16位 -
__int32
– 4字节整数(32位) -
__int64
– 8 字节整数(64 位) -
__int128
– 16 字节整数(128 位)
明确大小的布尔类型
-
_BOOL1
– 具有明确大小规范的布尔类型(1 个字节) -
_BOOL2
– 具有明确大小规范的布尔类型(2 个字节) -
_BOOL4
– 具有明确大小规范的布尔类型(4 个字节)
对于布尔类型,无论大小,0 都表示 False,非 0 表示 True。
未知类型
-
_BYTE
– 类型未知;唯一已知信息是其大小:1 字节 -
_WORD
– 类型未知;唯一已知信息是其大小:2 个字节 -
_DWORD
– 类型未知;唯一已知信息是其大小:4 个字节 -
_QWORD
– 类型未知;唯一已知信息是其大小:8 个字节 -
_OWORD
– 类型未知;唯一已知信息是其大小:16 字节 -
_TBYTE
– 10 字节浮点(x87 扩展精度 80 位值) -
_UNKNOWN
– 没有关于类型或大小的信息(通常仅出现在指针中)
请注意,这些类型并不等同于看起来类似的 Windows 数据类型,并且可能出现在非 Windows 程序中。
交流群
添加小助手微信加入: OxCSorder
更多文章
立即关注【二进制磨剑】公众号
原文始发于微信公众号(二进制磨剑):IDA 技巧(45) 反编译器生成的数据类型
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论