дамп

  1. Матеріал з Довідник дослідника програм
  2. Що значить dump, дамп, сдампіть, зробити дамп, зняти dump?
  3. C

Матеріал з Довідник дослідника програм

Дамп це один з кроків при розпакуванню програм.

Що значить dump, дамп, сдампіть, зробити дамп, зняти dump?

Слово dump (дамп) може бути і іменником і дієсловом. У першому випадку, дамп означає - область (частина) пам'яті. У другому випадку, сдампіть, зняти дамп - значить зберегти потрібну область пам'яті на жорсткий диск. Часто дамп потрібно знімати при розпакуванні програм. Це треба для того, щоб отримати розпаковану програму. Адже коли запакована програма запускається, то вона розпаковується в пам'яті. У цей момент розпакований код програми потрібно зберегти на жорсткий диск.

C

BOOL DumpMZ (LPVOID lpBase, TCHAR * lpFName) {// перевіряємо що можемо читати MZ-заголовок і покажчик на ім'я не порожній if (IsBadReadPtr (lpBase, sizeof (IMAGE_DOS_HEADER)) || lpFName == NULL) return FALSE; // перевіряємо сигнатуру PIMAGE_DOS_HEADER lpDosHeader = (PIMAGE_DOS_HEADER) lpBase; if (lpDosHeader-> e_magic! = IMAGE_DOS_SIGNATURE) return FALSE; PIMAGE_NT_HEADERS lpNtHeaders = MAKE_PTR (PIMAGE_NT_HEADERS, lpBase, lpDosHeader-> e_lfanew); // перевіряємо що можемо прочитати PE-заголовок і сигнатуру if ((IsBadReadPtr (lpNtHeaders, sizeof (IMAGE_NT_HEADERS))) || (lpNtHeaders-> Signature! = IMAGE_NT_SIGNATURE)) return FALSE; HANDLE hFile = CreateFile (lpFName, GENERIC_WRITE, FILE_SHARE_READ, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) {return FALSE; } DWORD nNumWr = 0; // тут краще писати в файл посекційно, перевіряючи привілеї доступу до них WriteFile (hFile, lpBase, lpNtHeaders-> OptionalHeader.SizeOfImage, & nNumWr, NULL); CloseHandle (hFile); return TRUE; }

Що значить dump, дамп, сдампіть, зробити дамп, зняти dump?

Дополнительная информация

rss
Карта