командная строка будет выглядеть так:
} printf("\n");
}
Листинг 1 простая утилита fck.c для сравнения дампов
Компилируем программу любым Си-компилятором (например, в случае Microsoft Visual C++ командная строка будет выглядеть так: "cl.exe /Ox fck.c") и запускаем свежеиспеченный файл на выполнение: "fck dump_1.exe dump_2.exe dump_3.exe dump_4.exe>o". Полученный результат (перенаправленный в файл "o") должен выглядеть так:
raw offset dumped_2.exe dumped_3.exe dumped_4.exe
000A2FB0h: B2h 2Bh B6h
000A2FB6h: C6h 00h 63h
000A2FC0h: 40h 00h 01h
000A2FC2h: AEh 00h 46h
000A2FC8h: 16h 00h 65h
000A2FCAh: 18h 00h 56h
000A2FCCh: 60h 00h 65h
000A2FCEh: 15h 00h 72h
000A2FD0h: EEh 00h 73h
000A2FD2h: EEh 00h 69h
000A2FD4h: C0h 00h 6Fh
000A2FDCh: 5Ah 00h 31h
000A2FEAh: DCh 00h 36h
000A2FEDh: 80h 00h 0Bh
000A2FEEh: 2Ah 00h 15h
000A2FF0h: 08h 00h EEh
000A2FF1h: 1Ch 00h F1h
000A2FF6h: 59h 00h 06h
000A2FFAh: 02h 00h 49h
000A2FFCh: FCh 00h 6Eh
000CFBA0h: FEh FDh FFh
00152262h: A1h 60h 00h
001523E2h: A1h 60h 00h
00166574h: 32h 31h 30h
001666B4h: 32h 31h 30h
00168F28h: 32h 31h 30h
001772A5h: 65h 64h FFh
00177538h: CCh 4Ah FFh
001775ECh: C7h 26h FFh
00177A10h: 08h 04h FFh
00177AC5h: 49h 48h FFh
001C8724h: 06h 0Fh 03h
Листинг 2 результат сравнения дампов памяти, снятых с программы. ячейки, предположительно содержащие патроны, выделены полужирным шрифтом
В глаза сразу же бросается стройная цепочка 32h, 31h, 30h, соответствующая следующим десятичным числам: 50, 49, 48. Ага! Оторвать мыщъх'у хвост если это количество патронов! Эта переменная встречается в дампе трижды по смещениям 00166574h, 001666B4h, 00168F28h. Одна из них настоящая, остальные — тени.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий