这个拆解数组的开头和结尾是什么?
What is the beginning and the end of this disassembled array?
在反汇编的dll(通过IDA)中,我到达了一个数组,它被注释为int
的数组(但它可能是byte
):
.rdata:000000018003CC00 ; int boxA[264]
.rdata:000000018003CC00 boxA dd 0 ; DATA XREF: BlockPrepXOR+5FC↑r
.rdata:000000018003CC04 db 0Eh
.rdata:000000018003CC05 db 0Bh
.rdata:000000018003CC06 db 0Dh
.rdata:000000018003CC07 db 9
.rdata:000000018003CC08 db 1Ch
.rdata:000000018003CC09 db 16h
.rdata:000000018003CC0A db 1Ah
.rdata:000000018003CC0B db 12h
.rdata:000000018003CC0C db 12h
.rdata:000000018003CC0D db 1Dh
.rdata:000000018003CC0E db 17h
.rdata:000000018003CC0F db 1Bh
我可以将数据解释为
{000000h, E0B0D09h, 1C161A12h, ..}
或
{0, 90D0B0Eh, 121A161Ch, ...}
或
{00h,00h,00h,00h, 0Eh, 0Bh, ..}
?
根据评论(来自 IDA),您能否确认数组以 CC00h + 253*4 = D01Fh
结尾?我有另一个从 D020h
:
开始的数组
.rdata:000000018003D01D db 0F9h ; ù
.rdata:000000018003D01E db 0A2h ; ¢
.rdata:000000018003D01F db 3Fh ; ?
.rdata:000000018003D020 array4_1248 db 1 ; DATA XREF: BlockPrepXOR+39A↑o
.rdata:000000018003D021 db 2
.rdata:000000018003D022 db 4
.rdata:000000018003D023 db 8
这就是 this paper.
中描述的 AES 解密的 T8 矩阵
您可以通过查找 Google 上的 DWORD 值轻松识别它(例如 this is one of the results)。
所以这只是 AES 解密函数的数据。
另请注意,将字节序列解释为多字节数据序列(WORD、DWORD、QWORD 等)取决于体系结构。
对于 x86,只有 little-endian 解释是正确的(这是你的情况 2),但数据可能会受到任意操作(例如,它可以被 bswap
ped)所以,在查看 Google 时,始终使用两者数据的小端和大端版本。
还值得注意的是,IDA 可以将字节解释为 DWORD(键入 d
两次或使用上下文菜单),根据反汇编二进制的体系结构显示正确的值。
在反汇编的dll(通过IDA)中,我到达了一个数组,它被注释为int
的数组(但它可能是byte
):
.rdata:000000018003CC00 ; int boxA[264]
.rdata:000000018003CC00 boxA dd 0 ; DATA XREF: BlockPrepXOR+5FC↑r
.rdata:000000018003CC04 db 0Eh
.rdata:000000018003CC05 db 0Bh
.rdata:000000018003CC06 db 0Dh
.rdata:000000018003CC07 db 9
.rdata:000000018003CC08 db 1Ch
.rdata:000000018003CC09 db 16h
.rdata:000000018003CC0A db 1Ah
.rdata:000000018003CC0B db 12h
.rdata:000000018003CC0C db 12h
.rdata:000000018003CC0D db 1Dh
.rdata:000000018003CC0E db 17h
.rdata:000000018003CC0F db 1Bh
我可以将数据解释为
{000000h, E0B0D09h, 1C161A12h, ..}
或{0, 90D0B0Eh, 121A161Ch, ...}
或{00h,00h,00h,00h, 0Eh, 0Bh, ..}
?
根据评论(来自 IDA),您能否确认数组以 CC00h + 253*4 = D01Fh
结尾?我有另一个从 D020h
:
.rdata:000000018003D01D db 0F9h ; ù
.rdata:000000018003D01E db 0A2h ; ¢
.rdata:000000018003D01F db 3Fh ; ?
.rdata:000000018003D020 array4_1248 db 1 ; DATA XREF: BlockPrepXOR+39A↑o
.rdata:000000018003D021 db 2
.rdata:000000018003D022 db 4
.rdata:000000018003D023 db 8
这就是 this paper.
中描述的 AES 解密的 T8 矩阵
您可以通过查找 Google 上的 DWORD 值轻松识别它(例如 this is one of the results)。
所以这只是 AES 解密函数的数据。
另请注意,将字节序列解释为多字节数据序列(WORD、DWORD、QWORD 等)取决于体系结构。
对于 x86,只有 little-endian 解释是正确的(这是你的情况 2),但数据可能会受到任意操作(例如,它可以被 bswap
ped)所以,在查看 Google 时,始终使用两者数据的小端和大端版本。
还值得注意的是,IDA 可以将字节解释为 DWORD(键入 d
两次或使用上下文菜单),根据反汇编二进制的体系结构显示正确的值。