【问题标题】:How to identify data type from opcode?如何从操作码中识别数据类型?
【发布时间】:2022-01-05 11:25:32
【问题描述】:

假设我在 IDA 中打开的 PE 文件的 .data 段中有以下字节:

32 A2 DF 2D 99 2B 00 00  CD 5D 20 D2 66 D4 FF FF
01 00 D2 8B 0A 35 60 BD  F1 C9 D6 5D 6C 59 51 D5
24 FD 02 F5 43 26 29 79  53 3E B0 FB 2B 97 BF 5E

我想知道如何从上面识别数据类型(即 INT、浮点等)。

从外观上看,你可以看出它不是字符串,因为它包含不在 ASCII 表中的字节,除非它是 Unicode 字符。

我尝试创建一个包含具有不同值的浮点数和整数的 C 程序,以查看是否存在定义数据类型的模式,但不幸的是,我找不到任何模式。当您更改浮点值时,字节会完全改变。

我想知道您能否帮助我们如何识别上面的数据类型?

【问题讨论】:

  • 我会查看 .text 部分,看看内存是如何被访问的。
  • 有一些明显的迹象。例如,看到连续的FFs 让我觉得存储了一个负数。

标签: c reverse-engineering opcode


【解决方案1】:

我想知道您是否可以帮助我们如何识别上面的数据类型?

一般来说,你不能。

据你所知,这是用于播种 PRNG 的一串随机字节,或用于验证某些签名的公钥,或压缩 ASCII 字符串的一部分。

只有对程序有所了解,才能做出一些猜测。

【讨论】:

  • 根据字节的外观,您如何判断“用于播种某些 PRNG 或公钥”?只是想知道
  • @neehack 你不能(这是这个答案的重点)。
猜你喜欢
  • 2016-08-17
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
相关资源
最近更新 更多