Файл дампа может содержать много вещей.
Обычно генерируется с вызовом
BOOL WINAPI MiniDumpWriteDump(
__in HANDLE hProcess,
__in DWORD ProcessId,
__in HANDLE hFile,
__in MINIDUMP_TYPE DumpType,
__in PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
__in PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
__in PMINIDUMP_CALLBACK_INFORMATION CallbackParam
);
Информация, включенная в дамп, задается параметром DumpType
:
typedef enum _MINIDUMP_TYPE {
MiniDumpNormal = 0x00000000,
MiniDumpWithDataSegs = 0x00000001,
MiniDumpWithFullMemory = 0x00000002,
MiniDumpWithHandleData = 0x00000004,
MiniDumpFilterMemory = 0x00000008,
MiniDumpScanMemory = 0x00000010,
MiniDumpWithUnloadedModules = 0x00000020,
MiniDumpWithIndirectlyReferencedMemory = 0x00000040,
MiniDumpFilterModulePaths = 0x00000080,
MiniDumpWithProcessThreadData = 0x00000100,
MiniDumpWithPrivateReadWriteMemory = 0x00000200,
MiniDumpWithoutOptionalData = 0x00000400,
MiniDumpWithFullMemoryInfo = 0x00000800,
MiniDumpWithThreadInfo = 0x00001000,
MiniDumpWithCodeSegs = 0x00002000,
MiniDumpWithoutAuxiliaryState = 0x00004000,
MiniDumpWithFullAuxiliaryState = 0x00008000,
MiniDumpWithPrivateWriteCopyMemory = 0x00010000,
MiniDumpIgnoreInaccessibleMemory = 0x00020000,
MiniDumpWithTokenInformation = 0x00040000
} MINIDUMP_TYPE;
Файл небольшого дампавероятно, будет содержать только трассировку стека с именами функций и модулей.
Большой дамп-файл, такой как ваш, может содержать полную память процесса, стеки вызовов для всех потоков и другие.Вероятно, лучше проверить описания каждого из этих типов для себя.
Исходный код никогда не виден, так как вы отправляете только информацию DLL.Обратное проектирование, однако, возможно, но это возможно, если у вас есть DLL.Вы должны прочитать их условия использования или политику конфиденциальности.
Итак ... имена функций и модулей будут видны из файла дампа, реальный код не будет.Память процесса может быть видимой (в зависимости от параметра типа), поэтому лучше не сохранять конфиденциальные данные в памяти при создании дампа.