Как найти базовый адрес?

234
31 декабря 2018, 02:20

как мне найти базовый адрес указателя вида "server.dll"+0066CAA ?

Как найти адрес "server.dll" в приложении?

Answer 1

server.dll — Это адрес загруженного модуля, т.е. HMODULE/HINSTNACE или же просто void*.

GetModuleHandle вернет вам адрес загруженного модуля если он уже загружен.

То что у вас идет после server.dll, это отступ от адреса модуля, что бы узнать этот адрес, вам необходимо применить арифметику к указателю на начальный адрес модуля, в вашем случае прибавить к данному адресу значение 0066CAA (имейте ввиду, это число представлено в виде hex а полный адрес будет выглядеть так: 0x0066CAA = 421034).

В итоге имеем следующий код:

HMODULE server_module = GetModuleHandle("server.dll");
char* address_with_offset = ((char*)server_module) + 0x0066CAA;
READ ALSO
Как в данном случае запретить изменение элементов массива в классе из программы?

Как в данном случае запретить изменение элементов массива в классе из программы?

Один из вариантов, ввести изменения в классе (заодно исправим ошибки)

205
Поиск в массиве по компоненту значения (сложный тип)

Поиск в массиве по компоненту значения (сложный тип)

На ночь глядя голова не варит ужеПодскажите как решить следующую проблему самым эффективным (быстрым) способом на C++11, C++14, в общем не на старье...

207
Ширина и высота полей ввода в зависимости от содержимого

Ширина и высота полей ввода в зависимости от содержимого

Нужно задавать высоту QTextEdit в зависимости от кол-ва строк содержимого и если строк нет, то и высота нулеваяТоже самое и для QLineEdit, но для ширины

237
Имена файлов с исходным кодом в C/C++

Имена файлов с исходным кодом в C/C++

Имеются ли какие-нибудь ограничения для имени source-файла в C/C++? (в Java, например, имя source-файла должно совпадать с именем класса в нем)

213