0 / 0 / 0
Регистрация: 04.02.2011
Сообщений: 5
|
|
Каким образом заставить программу загружать dll из указанной папки?04.02.2011, 13:00. Показов 7632. Ответов 10
Метки нет Все метки)
(
Есть одна программка, которую надо заставить подгружать .dll'ку из другой папки.
Пишу античит к одной игрушке, нужно сделать так, чтобы при запуске, прога первым делом искала .dll в указанной мною папке, а затем уже в текущей директории откуда она запускается и директориях system32, system и т.д Подскажите как это сделать правильно. Это возможно 100%, по крайней мере на Delphi.. Процесс запускаю через CreateProcess();
0
|
04.02.2011, 13:00 | |
Ответы с готовыми решениями:
10
Можно ли каким-то образом заставить WebClient создавать папки для скачиваемых файлов Каким образом лучше загружать данные из текстового файла? Можно ли обойтись при этом только js, не используя php? Возможно ли как-то заставить BIOS, каким то образом определить название проца |
0 / 0 / 0
Регистрация: 04.02.2011
Сообщений: 5
|
||
04.02.2011, 13:37 [ТС] | ||
Прога загружает dll'ку, допустим, "test.dll". Мне нужно чтобы она ее сперва искала в указанной мной директории, а затем уже во всех остальных. вариант с LoadLibrary не подходит, т.к. нет исходников. Добавлено через 6 минут Советовали перехватывать адрес LoadLibrary и заменять на свою функцию. Надеюсь есть решение проще.
0
|
![]() 686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|
04.02.2011, 13:43 | |
По мне так напрашивается решение помещения dll непосредственно в папку с игрой, и все
![]() Иначе, имхо, вам необходимо перехватить вызов программы. 1. http://www.rsdn.ru -> Статьи -> Базовые сервисы -> Перехват вызовов API 2. Джеффри Рихтер, "Windows для профессионалов", глава 22 Это если я правильно вас понял
0
|
![]() 686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
|
|
04.02.2011, 14:07 | |
Я конечно все понимаю, что у вас видение вашего проекта лучше, но все же понятнее было бы называть вещи своими именами, а не просто "прога". Я понимаю вас так: программе-античиту необходимо подключать dll откуда бы то ни было, а она изначально пытается запустить dll из своей папки. Это логично. И я бы пытался решить через, как я уже сказал, перехват вызова программы. Может кто еще что порекомендует.
0
|
0 / 0 / 0
Регистрация: 04.02.2011
Сообщений: 5
|
||
04.02.2011, 14:27 [ТС] | ||
нужно чтобы этот mygine.dll игра цепляла из директории античита, а не из своей текущей директории. Сейчас подгрузка dll происходит вышеописанным образом. изменить "engine.dll" на более длинную строку, допустим на c:\asd\mygine.dll, не имеется возможным т.к. можно затиреть другие байты. то есть в распоряжении только 10символов. Похоже что придется перехватывать адрес loadlibrary. ищу вашу книгу...
0
|
0 / 0 / 0
Регистрация: 04.02.2011
Сообщений: 5
|
|||||||
05.02.2011, 12:17 [ТС] | |||||||
Решение - найдено: с помощью вот этого http://newgre.net/ninjectlib внедряю свою dll в процесс. DLL перехватывает функцию LoadLibraryA и заменяет на мою. В моей идет условие
Добавлено через 4 минуты код для DLL, в которой осуществляется перехват функции можно найти на том же сайте, либо использовать detours и ему подобные. Добавлено через 3 минуты Другие методы внедрения, кроме как через CreateProcess, для перехвата LoadLibrary не будут работать, т.к. процесс уже загрузит нужные ему dll и вы не сможете подменить нужную вам dll на свою.
0
|
Модератор
![]() 8967 / 6733 / 921
Регистрация: 14.02.2011
Сообщений: 23,792
|
|
14.02.2011, 01:56 | |
Если я правильно понял то
в одной папке лежит прога и родная dll а не родная в другой папке программа должна обратится к неродной а та уже вызовет родную Но программа конечно же ищет сначала в своей директории 1 порядок просмотра директорий определяется где то в реестре (но там помоему есть ограничения) Можно сделать так 2 Создаем свою dll с именем родной, определяем в ней весь импрорт родной и кладем в папку к проге. а родную переименовываем (или кладем в другое место) и обращаемся к ней уже из своей dll 3 можно попробовать задействовать Хуки С важением Валерий
0
|
ramobili
|
||
05.03.2011, 01:25 | ||
можно поподробнее |
05.03.2011, 01:25 | |
Помогаю со студенческими работами здесь
11
Как заставить программу загружать картинку рандомно? Каким образом в цикле удалить файлы из папки Можно ли каким-то образом заставить реагировать родительский объект на изменение параметров дочернего Каким образом заставить компонент RichEdit1 перемещать свой Skroll на последнюю запись? Интересно узнать каким образом скрывают файлы и папки? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
EmBitz, создание проекта, отладка, прошивка
locm 15.07.2025
Создание проекта для Blue Pill (STM32F103C8T6) в EmBitz 2. 30, написания кода blink, запуск отладки в ОЗУ, заливка релизной прошивки во flash используя ST-Link и др. . . .
|
Трассировка корутин Kotlin с OpenTelemetry
mobDevWorks 14.07.2025
Асинхронное программирование меняет правила игры, особенно когда речь заходит о трассировке операций. В Kotlin с его корутинами эта проблема приобретает особый оттенок, который я хотел бы детально. . .
|
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
|
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
|
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
|
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
|
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
|
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
|
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. )
Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
|
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
|