2010-11-22 2 views
0

Недавно я решил, что хочу написать приложение, которое будет альтернативой с открытым исходным кодом для некоторых закрытых приложений дампа исходного кода на рынке; прежде всего как опыт обучения.Вопрос о методах сброса танка [Все языки и платформы]

Но я не совсем уверен, с чего начать (для машин Windows). Я предполагаю, что мне пришлось бы перебирать память с помощью процедуры, которая выполнялась на уровне ядра, но как я мог бы заставить компьютер ничего делать при съемке или делать как можно меньше, или даже иметь доступ к такой таран, я потерян.

Приветствуется всякий, имеющий опыт или совет, очень интересная тема.

ответ

1

Для Windows все, что вам нужно, это dbghelp.dll - ссылка here.

Вы можете либо напрямую вызвать функции Minidump, либо прогуливать все структуры вручную (это намного больше работы, но больше соответствует описанному вами учебному упражнению).

Для управления технологическими процессами информация о writing a basic debugger должна быть полезна.

+0

Спасибо за ссылку, кажется, как будто это должно быть очень полезным. – Melony

+0

Во-вторых, это не похоже на то, что dbghelp.dll будет в порядке для работы, это нормально для дампа памяти usermode; но мне нужно записать физическую память на диск. – Melony

0

Существует Google Breakpad, который может помочь. Еще не использовали его сам, но

0

вот краткое руководство по приостановке процесса, чтобы вы могли играть с ним. http://www.infernodevelopment.com/freeze-programs-using-win32-threads

здесь некоторые функции, полезные для обнаружения процесса или окно, которое вы хотите посмотреть на

  1. GetWindowThreadProcessId
  2. EnumWindows
  3. Tasklist
  4. GetCurrentProcess

для чтения памяти, вы можете использовать следующее api fun ctions.

  1. OpenProcess
  2. ReadProcessMemory

поиск Google из тех, должны дать вам хороший старт

Смежные вопросы