我正在学习如何在 IDA 中使用 IDC Scripting 或 IDAPython 来反转二进制文件。有一天我遇到了这个问题:
给你一个随机整数数组(4字节整数)位于内存中。随机数只在调试时计算。
任务是:从该数组中提取每个 4 字节整数并将它们放入一个新数组中,在控制台上打印新数组。
根据我所了解的,IDA 十六进制视图在内存中为每个地址仅显示 1 个十六进制数。
例如:在地址 00791A00 包含一个整数 1134,00791A04 包含一个迭代器 4567。在十六进制视图中它会是这样的
00791A00 : 34
00791A01 : 11
00791A02 : 00
00791A03 : 00
00791A04 : 67
00791A05 : 45
00791A06 : 00
00791A07 : 00
假设新数组名为“arr”。所以 arr[0] = 0x1134,arr[1] = 0x4567。这就是我想要的!所以,我想知道如何使用 IDAPython 或 IDC 做到这一点?到目前为止,我所知道的关于 IDC 或 IDAPython 的唯一一件事就是编写一个脚本来将内存转储到一个文件中。
这是我学习转储内存的链接:https : //stackoverflow.com/questions/42744445/how-in-ida-can-save-memory-dump-with-command-or-script
如果有人能给我一个提示或引导我了解如何解决这个问题的基本想法,我将不胜感激。



