|
Модератор
|
||||||||||||||||||||||||||||||||||||||||||||||
Proxy dll25.10.2019, 12:53. Показов 3048. Ответов 7
Пытаюсь написать простую proxy dll и возникают проблемы. Пока функционал у прокси простой, просто пропускать через себя вызовы. Но тут возникают проблемы.
Первая. Не грузятся dll если они отличаются в имени от моей dll. К примеру есть жертва в виде launcher.dll находящаяся по пути /game/launcher.dll (взял ее так как там внутри мало функций, всего 5). Написал простую прокси и получается грузить ее только из корневого каталога и с оригинальным именем. То есть структура такая: оригинал
Командная строка компоновщика
0
|
||||||||||||||||||||||||||||||||||||||||||||||
| 25.10.2019, 12:53 | |
|
Ответы с готовыми решениями:
7
Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями? Порядковый номер 354 не найден в библиотеке DLL LIBEAY32.DLL При компиляции DLL-проекта не создается DLL-ка |
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
||||||
| 25.10.2019, 13:11 | ||||||
|
alecss131,
видимо, дело обстоит так: launch.exe - берёт своё месторасположение, добавляет /game , таким образом находит launcher.dll но launcher.dll инжектируется в launch.exe, поэтому для него текущий каталог такой же, как у launch.exe При этом, изначально неизвестно, что это за каталог. Выведи из своей dll текущий каталог куда-нибудь, посмотри, что это за директория. От этого и плясать. Скорее всего нужно будет средствами API доставать текущую директорию, к ней дописывать /game Добавлено через 6 минут Вот ещё подозрительный момент. Ты используешь макросы GetCurrentDirectory LoadLibrary которые в соответствии с настройками проекта (юникод или мультибайтовая) раскроются в вызовы функций GetCurrentDirectoryW LoadLibraryW или GetCurrentDirectoryA LoadLibraryA Но в твоём проекте вижу
Значит, GetCurrentDirectory у тебя тоже юникодная, а , значит, нужно L"\game\\launcher.dll"
0
|
||||||
|
Модератор
|
||
| 25.10.2019, 14:07 [ТС] | ||
|
А так я и так знаю что рабочая папка ехе файла это там где он лежит и ехе грузит launch.dll из папки game. Я выводил переменную path состоящую из GetCurrentDirectory и на выходе получил папку содержащую exe. Мне интереснее другое почему оригинальная dll успешно грузится только из папки с ехе и только с оригинальным именем.
0
|
||
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
||||||||||||||||
| 25.10.2019, 14:24 | ||||||||||||||||
|
alecss131, у тебя в
char path[MAX_PATH]; в конце остаётся мусор из-за того, что не выполнена инициализация
0
|
||||||||||||||||
|
Модератор
|
|
| 25.10.2019, 14:40 [ТС] | |
|
Все бы хорошо если бы не то что у меня при добавлении стандартных функций ругается на них, что си что плюсы. Это как я вторую проблему обозначил.
Еще я в ошибку выводил путь бибилиотеки и там все нормально но бибилотека не грузится
0
|
|
|
Модератор
|
|||||||
| 25.10.2019, 23:12 [ТС] | |||||||
|
Вот это сработало с полным путем. Причем с юникодом не работает ничего (даже указание строки в LoadLibrary с L), ну ладно и многобайтовая сойдет.
Код теперь так выглядит
В целом места меня устраивают, но вот имя нет. Не переносить же все содержимое папки game к ехе, а то помещение оригинальной библиотеки туда приводит к простому висению процесса без признаков жизни (похоже dll ищет все ресурсы рядом с собой). Кстати я еще не до конца понимаю за что тут отвечает def файл и к какой из библиотек он относится, оригинальной или моей прокси. То есть осталось исправить проблему загрузки переименованой оригинальной dll из стандартного места (папка game).
0
|
|||||||
|
531 / 180 / 39
Регистрация: 18.08.2012
Сообщений: 907
|
|||
| 26.10.2019, 01:39 | |||
|
описанное в этом топике действие - это DLL hijacking,
https://encyclopedia.kaspersky... hijacking/ а также - нарушение правил форума
0
|
|||
|
фрилансер
6442 / 5636 / 1127
Регистрация: 11.10.2019
Сообщений: 14,982
|
|||||||||||||||||||
| 26.10.2019, 07:10 | |||||||||||||||||||
0
|
|||||||||||||||||||
| 26.10.2019, 07:10 | |
|
Помогаю со студенческими работами здесь
8
Windows I/o без Kernel32.dll и Advapi32.dll Точка входа в процедуру _dbk_fcall_wraper не найдена в библиотеке DLL BORLNDMM.DLL DLL - как подменить функцию, используя самодельную DLL? Как вшить в программу ssleay32.dll и libeay32.dll Вызов функции DLL VB.NET в DLL C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|