IDA. x86. Как переместить (не копировать) сегмент данных.
Загрузил файл.
Создал сегмент 0xf000
Запустил макрос
Код:
++
// Listing 2.2. IDA Pro Code Relocation Script
#include <idc.idc>
// Relocate one segment
static relocate_seg(src, dest)
{
auto ea_src, ea_dest, hi_limit;
hi_limit = src + 0x10000;
ea_dest = dest;
for(ea_src = src; ea_src < hi_limit ; ea_src = ea_src + 4 )
{PatchDword( ea_dest, Dword(ea_src));
ea_dest = ea_dest + 4;
}
Message("segment relocation finished(inside relocate_seg function)...\n");
}
static main()
{Message("creating target segment(inside entry point function main)...\n");
AddSeg([0xF000, 0], [0x10000, 0], 0xF000, 0, 0, 0);
RenameSeg([0xF000, 0], "_F000"); // Give a new name to the segment.
relocate_seg([0x0000, 0x00000], [0xF000, 0]);
}
- Копировал сегмент 0 в 0xf000.
Из выпадающего меню view->segments удалил сегмент 0.
Данные из сегмента осались и видны серым в окне IDA (слева адрес без указания сегмента).
Как удалить данные, что были в сегменте 0, чтобы они остались в сегменте f000?