Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
59 / 56 / 8
Регистрация: 22.07.2011
Сообщений: 436
1

Чтение из DLL

20.01.2012, 17:31. Просмотров 1563. Ответов 9
Метки нет (Все метки)

Есть DLL (не моя) в которой есть переменная(_pNetwork). Можно ли вытащить адресс этой переменной из DLL напрямую или же через процесс, использующий её.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 17:31
Ответы с готовыми решениями:

Чтение конфига из dll
Алоха! Задача следующая: к приложению А прикручивается dll, а управление всеми функциями на себя...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями?
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL совпадали, а в интернете...

Ошибка об отсутствии MSVCP140D.dll, ucrtbased.dll, CONCRT140D.dll, VCRUNTIME140D.dll
Добрый день, товарищи. Возникла проблема. Делаю программу с использованием openCV 3.1 на Visual...

Чтение памяти процесса через загруженную в него dll
Доброе утро Подскажите решение проблемы При инжекте dll в процесс, надо чтобы эта dll прочитала...

9
Эксперт С++
2919 / 1268 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
20.01.2012, 17:53 2
1. Самый простой способ - это воспользоваться функцией GetProcAddress() - разумеется, если этот идентификатор экспортируется.
2. Если нет - дизассемблер тебе в руки, с его помощью узнаешь смещение этой переменной, ну а затем все просто: берешь адрес загрузки DLL и добавляешь к нему смещение. Profit!
1
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,612
21.01.2012, 04:54 3
А что такое _pNetwork?
0
59 / 56 / 8
Регистрация: 22.07.2011
Сообщений: 436
21.01.2012, 17:27  [ТС] 4
Цитата Сообщение от kravam Посмотреть сообщение
А что такое _pNetwork?
Название переменной
0
Псевдослучайный
1934 / 1135 / 96
Регистрация: 13.09.2011
Сообщений: 3,204
21.01.2012, 19:09 5
А хидер от этой библиотеки есть? Если есть, то подключаем её и читаем
0
59 / 56 / 8
Регистрация: 22.07.2011
Сообщений: 436
21.01.2012, 22:08  [ТС] 6
Цитата Сообщение от NoMasters Посмотреть сообщение
А хидер от этой библиотеки есть? Если есть, то подключаем её и читаем
Хидер - это что?
0
Псевдослучайный
1934 / 1135 / 96
Регистрация: 13.09.2011
Сообщений: 3,204
21.01.2012, 22:28 7
Заголовочный файл же. Вообще что за библиотека, откуда взялась, почему ты считаешь, как объявлена переменная и почему ты считаешь, что она там вообще есть?
0
59 / 56 / 8
Регистрация: 22.07.2011
Сообщений: 436
22.01.2012, 14:17  [ТС] 8
Цитата Сообщение от NoMasters Посмотреть сообщение
Заголовочный файл же. Вообще что за библиотека, откуда взялась, почему ты считаешь, как объявлена переменная и почему ты считаешь, что она там вообще есть?
Библиотека, с другой проги. Адрес этой переменной я использую как указатель. Узнал про неё из WinHex. А так же в Cheat Engine при добавлении адреса, в поле адрес можно вписать _pNetwork и прекрасно находится этот адрес. Т.е. с работающим процессом, использующим эту библиотеку, можно без проблем найти _pNetwork.
0
Псевдослучайный
1934 / 1135 / 96
Регистрация: 13.09.2011
Сообщений: 3,204
22.01.2012, 14:26 9
Ну и и? Задача выполнена, нет?
0
59 / 56 / 8
Регистрация: 22.07.2011
Сообщений: 436
22.01.2012, 14:34  [ТС] 10
Цитата Сообщение от NoMasters Посмотреть сообщение
Ну и и? Задача выполнена, нет?
Увы нет.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <conio.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    HMODULE hLib;
    
    hLib = LoadLibrary("Engine.dll");
    
    if(hLib == NULL)
    {
     printf("Can't load library\n");
     getch();
     return 1;
    }
    
    printf("Library loaded. Handle: %X\n", hLib);
    
   FARPROC pNetwork = GetProcAddress(hLib, "_pNetwork");
    
    if(pNetwork == NULL)
    {
     printf("Cant find adress\n");
     getch();
     FreeLibrary(hLib);
     return 1;
    }
    
    printf("Adress found: %X\n", pNetwork);
    
    
    getch();
    FreeLibrary(hLib);
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2012, 14:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Чтение памяти из dll
Всем привет. Нужно считать значение значение, которое лежит по адресу. Подскажите, как прочитать...

При чтении dll библиотеки в обычном(не бинарном) виде, чтение прерывается на NULL
Задача такая: открыть dll файл(не мой) в обычном текстовом виде(каким его могут открыть обычные...

DLL Чтение\запись
Знаю что тут много тем про работу и написание DLL но увы помогите! 1. Как из DLL читать значение...

Чтение из стороннего процесса из dll
Есть ли другие способы читать память стороннего приложения, помимо readprocessmemory, через свою...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.