4 / 4 / 4
Регистрация: 21.04.2014
Сообщений: 139
|
||||||
1 | ||||||
Как получить адрес функции в DLL01.03.2015, 21:04. Показов 2588. Ответов 6
Метки нет (Все метки)
Я пишу расширение для текстового редактора исходников от которого у меня нет. Суть в том что перед тем сохранить текст в файл он должен быть обработан моим расширением.
Я нашел в память текстового редактора вызов функции WriteFile которая записывает зразу все содержимое в файл. Я на C++ написал функцию с параметрами как у WriteFile и при загрузке dll в память пробую подменить адрес вызова WriteFile на адрес моей функции. Но проблема в том что тот адрес который я получаю указывает "вникуда"
0
|
01.03.2015, 21:04 | |
Ответы с готовыми решениями:
6
Как получить адрес функции в dll стороннего процесса? Как получить адрес функции, возвращающей указатель на массив, из DLL? Получить имя и адрес DLL файла GetProcAddress не может получить адрес ф-ии из dll |
Ушел с форума
|
||||||
01.03.2015, 21:09 | 2 | |||||
Сообщение было отмечено A_N_A_N_A_S как решение
Решение
А если так (строка 28):
0
|
4 / 4 / 4
Регистрация: 21.04.2014
Сообщений: 139
|
|
01.03.2015, 21:17 [ТС] | 3 |
Не помогает
0
|
Ушел с форума
|
||||||
01.03.2015, 21:23 | 4 | |||||
А я все-таки думаю, что ошибка в другом месте.
Потому что адрес функции берется корректно. Вот пример:
1
|
4 / 4 / 4
Регистрация: 21.04.2014
Сообщений: 139
|
|
01.03.2015, 21:31 [ТС] | 5 |
Я уже много чего перепробовал а адрес всеравно указывает "вникуда". Когда я пробую перейти по этому адресу в отладчике то попадаю даже не в модуль моей dll а в любой другой
Добавлено через 5 минут При чем тут main если я пишу DLL
0
|
Ушел с форума
|
|
01.03.2015, 21:44 | 6 |
Да, но чудес ведь не бывает ?
При том, что принципы работы с указателями везде одинаковы.
1
|
4 / 4 / 4
Регистрация: 21.04.2014
Сообщений: 139
|
|
02.03.2015, 01:53 [ТС] | 7 |
я попробовал поставить __declspec(dllexport) перед функцией но ничего не изменилось. Я в отладчике посмотрел список загруженных ДЛЛ и нашел там свою. В списке экспортируемых функций я посмотрел что адрес моей функции F121030 а тот адрес который мне возвращается вот этим выражением void* funk = (void*)CrackWriteFile; равен 2CB13D97
Добавлено через 1 час 4 минуты Я нашел решение. Я узнал смещение моей функции относительно модуля в памяти и в качестве адреса беру адрес загрузки DLL + смещение функции. Спасибо тебе за помощь, плюс все равно поставлю Добавлено через 2 часа 52 минуты Хотя нет адрес оказывается правильный возвращался а то что он у меня "вникуда" указывал это моя ошибка была которую я уже исправил
0
|
02.03.2015, 01:53 | |
02.03.2015, 01:53 | |
Помогаю со студенческими работами здесь
7
Как получить адресс функции в DLL? Задать адрес функции внутри DLL Функция возвращает адрес , как передать этот адрес другой функции ? Получить адрес функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |