PUSHing 大量的十六进制数

逆向工程 艾达 部件 十六进制
2021-06-22 07:38:52

我有以下两行:

  ....
  push 401150h
  call sub_401253
  ....

所以,当我点击push 401150h IDA PRO 显示:

  seg0001 : 00401120 dword_401120  dd  6F662F3Ch, 3C3E746Eh, 3E702Fh, 253A4E52h, 54522073h
  dd 2073253Ah, 73253A55h, 253A5020h, 656C774h, 616223Dh, 72676B63h, 646E756Fh
  dd 0D73h, 7320703Ch, 335504h, 7265464h, 5484531h 55E4ADEh, A585B5448h, 
  .....(and so on)

所以,我的第一个问题是:这是什么?它可以是什么?

我自己的结果:我上面提到的那个东西是一个字符串,因为在函数 sub_401253 中,他们使用 lstrcpy() 将它复制到缓冲区中:

 ...
 lea eax, [esp+1FC + Buffer]
 ...
 mov edi, [esp+208+arg_0]
 push edi, 
 push eax, 
 call lstrcpy
 ...

之后,在下一个块中,缓冲区的内容(现在是十六进制数)在循环中进行异或运算。我假设他们加密或解密它(但现在这对我来说并不重要。)

我只想知道 IDA PRO 尝试用表示十六进制数的push 401150h来描绘什么而已。我希望你能帮助我。

最好的祝福,

1个回答

数据00401120是 ASCII 编码的文本:

3C 2F 66 6F 6E 74 3E 3C 2F 70 3E 00 52 4E 3A 25        </font></p>.RN:%
73 20 52 54 3A 25 73 20 55 3A 25 73 20 50 3A 25        s RT:%s U:%s P:%
77 6C 65 00 3D 22 62 61 63 6B 67 72 6F 75 6E 64        wle.="background
73 0D 00 00                                            s...

您可以通过单击数据00401120并按A告诉 IDA 将这些字节解码为文本