Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231

Получение начального адреса процесса

09.09.2016, 14:17. Показов 3954. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Запущен процесс пытаюсь получить его адрес по аналогии с dll модулями
C++
1
2
3
4
5
6
7
8
9
MODULEINFO GetModuleInfo(char *szModule)
{
    MODULEINFO modinfo = { 0 };
    HMODULE hModule = GetModuleHandle(szModule);
    if (hModule == 0)
        return modinfo;
    GetModuleInformation(GetCurrentProcess(), hModule, &modinfo, sizeof(MODULEINFO));
    return modinfo;
}
C++
1
2
3
4
MODULEINFO mInfo = GetModuleInfo("process.exe");
 
DWORD base = (DWORD)mInfo.lpBaseOfDll;
DWORD size = (DWORD)mInfo.SizeOfImage;
Значения все 0 равняются. Подскажите как получить значение
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2016, 14:17
Ответы с готовыми решениями:

Получение адреса
Есть следующая строка: long int array; Что означает, если мы напишем следующее: (char*)Arr; Мы получим начало адреса...

Получение IP адреса (Си)
Есть ли функция или библиотека для С для определения своего реального интернет IP адреса? Или может есть сервис?

Получение значения из адреса
Я имею адрес DWORD Vehicle = { 0x00B6F5F0 }; он содержит число(я могу узнать его вне кода), мне нужно получить его в переменную value,...

2
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
09.09.2016, 14:48
Для начала нужно разобраться с терминологией. Адрес процесса - что это такое вообще?
В недрах Windows действительно создаются объекты типа "процесс", но вряд ли их
адрес - то, что тебе нужно.

Если тебе нужен базовый адрес загрузки модуля exe в определенном процессе
(HMODULE или HINSTANCE - это одно и то же), используй или GetModuleHandle,
или GetModuleHandleEx (для чужих процессов), или CreateToolhelp32Snapshot с
перебором всех модулей в системе и вытаскиванием нужного.

Чтобы получить базу модуля exe для своего процесса, следует вызвать GetModuleHandle с NULL.
3
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
09.09.2016, 15:13  [ТС]
Убежденный
Спасибо, я долго разбирался и mInfo.lpBaseOfDll; такой же результат выдало как и GetModuleHandle(NULL)
Но теперь появился еще один вопрос: я через эти функции сравниваю сигнатуры:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
bool DataCompare(const BYTE* pData, const BYTE* pattern, const char* mask)
{
    for (; mask; ++mask, ++pData, ++pattern)
    {
        if (*mask == 'x' && *pData != *pattern)
        {
            return false;
        }
    }
 
    return (*mask) == NULL;
}
 
DWORD FindPattern(DWORD start_address, DWORD lenght, BYTE* pattern, char* mask)
{
    for (DWORD i = 0; i < lenght; i++)
    {
        if (DataCompare((BYTE*)(start_address), pattern, mask))
        {
            return (DWORD)(start_address + 1);
        }
    }
 
    return -1;
}
У меня возвращает -1, т.е. совпадение не найдено, хотя если зайти, например, через OllyDbg и ввести в поиск сигнатуру , то её адрес найдется, она там точно есть. Проблема у меня в функциях или в чем то другом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.09.2016, 15:13
Помогаю со студенческими работами здесь

функция получение ip адреса
какой функцией можно получить в программе на c++ свой ip адресс и можно ли его сменить?

Получение адреса ячейки из функции
Добрый вечер, уважаемые форумчане! Помогите новичку разобраться с указателями. Есть задачка-разработайте и протестируйте функцию,...

Получение адреса функции (Дизассемблер Code::Blocks)
Привет всем! У меня вопрос. Работаю я в code::blocks 10.05 под minGW. Появилась нужда узнать адрес функции, начал дизассемблировать код,...

Получение адреса приложения и последующее задание смещений
Салют, задачей поставил получить адрес приложения и через смещения изменить соответственные значения. Возникли следующие вопросы: 1. Как...

Получение адреса объекта после обнуления указателя на этот объект
Добрый вечер уважаемые программисты. Интересует следующий вопрос. Есть ли способ получить адрес объекта, после того, как указатель на него...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru