Как вывести кодовый сегмент программы?

200
30 ноября 2017, 02:29

программа должна выводить на экран содержимое своего кодового сегмента.Консольная программа.

#include<iostream>
#include<locale.h>
#include "windows.h"
using namespace std;

void main()
{
  setlocale(LC_ALL,"");
  int value = 0; //Какой тип должен быть?
  DWORD pid;
  HANDLE handle;
  DWORD baseAddress;
  DWORD toread;
  SIZE_T bytesRead;

  handle = GetCurrentProcess(); 
  cout << "Процесс: " << handle << endl;
  pid = GetProcessId(handle);
  HANDLE phandle = OpenProcess(PROCESS_VM_READ, 0, pid); 
  if (!phandle) 
  {
    cout << "Ошибка!\n";
    cin.get();
  }
  else
  {
    cout << "Handle OpenProcess: " << phandle << endl;
    cin.get();
    baseAddress = (DWORD)phandle;
    cout << "Base Address: " << baseAddress << endl;
    cin.get();
  }
  if (ReadProcessMemory(phandle, (void*)0, &value, 4, &bytesRead))//Какой должен быть адрес(второй параметр) чтобы вывести сегмент кода?
  {
    cout << value<<endl;
  }
  else
  {
    cout << "Ошибка чтения: " << GetLastError() << endl; //Возникает ошибка 299
    cout << "Количество байт: " << bytesRead << endl;
    cin.get();
  }
  system("pause");
}
READ ALSO
Digest авторизация в gSOAP

Digest авторизация в gSOAP

Не могу запустить тест httpdatest, который поставляется с gSOAP, точнее тест запускается, но не отрабатывает корректноПо задумке, клиент обращается...

216
Проверка массива на упорядоченность

Проверка массива на упорядоченность

Не правильно работает проверка массива на упорядоченность по возрастанию, где ошибка?

275
Переменное число аргументов

Переменное число аргументов

Объясните, как работает передаче переменного количества значений в прототипе функции f? Почему тут явно указан тип S, в то время когда в других...

182
Вывод двух массивов

Вывод двух массивов

Есть исходный и отсортированный массивыСначала у меня выводятся оба массива, но если элементов в массиве меньше 8, то вывести их повторно,...

175