Некий exe подключает dll. Все программы, показывают, что кроме этой dll никаких других, которые он по идее должен подгружать, он не трогает. Сразу первый вопрос: если в этой dll есть функция, которая тоже подгружает другую dll, то в этом случае программы типа Dependency Walker должны показывать, что exe использует помимо первой еще и сторонние dll? Так вот. По ходу дебага я выясняю, что те остальные dll тоже в памяти. Отсюда вопрос: дополнительные dll импортируют функции из первой(основной), и я хочу некоторые функции из первой проdetourить, буду ли вызывать те функции из первой dll, которые я подменил, если их вызывают из остальных dll? Если не совсем понятно, пример: first.dll на экспорт: int sum(int,int); int diff(int,int); exe импортирует int sum(int,int) а sum в свою очередь подключает second.dll second.dll импортирует из first.dll int diff(int,int); в этом месте, если я уже перенаправил diff из первой dll на свою функцию, если вызовется diff из второй dll, она перекинется на мою? или надо все-таки следить за подгружением второй и уже через её handle detour'ить? Надеюсь, понятно объяснил
redwall Не перевариваю уже такой сложности речевых конструкций ) Если это приемлимо в контексте задачи, то самое простое решение - сплайс ntdll!LdrLoadDll Код (Text): NTSTATUS LdrLoadDll ( IN PWSTR DllPath OPTIONAL, IN PULONG DllCharacteristics OPTIONAL, IN PUNICODE_STRING DllName, OUT PVOID *DllHandle ); оттуда отлавливаете загрузку всех модулей, далее с каждым делаете эти ваши патчи. Быстрее делайте пока не предложили захват с инвалидацией ссылки и последующим бектрейсом (и алгоколизмом в результате перенапряжения).
Если перехват делается сплайсингом (а не через таблицу импорта), то - да. В частности, если юзаешь detours, то - да
Clerk Очередной некро-фейл. Win7 [6.1.7600] Код (Text): .text:77F5C9DA _LdrSetAppCompatDllRedirectionCallback@12 proc near .text:77F5C9DA xor eax, eax .text:77F5C9DC retn 0Ch .text:77F5C9DC _LdrSetAppCompatDllRedirectionCallback@12 endp Как для очистки eax сойдет. Ждем решений для загрузчика MS DOS 6.22 (юзайте copy con solution.asm), проэмулированных на движке флай.
deLight Да, на 7 не поддерживается. Но я лишь сказал в какую сторону смотреть. Если бы вы знали что делает эта функция(точнее для чего предназначена), то поняли бы смысл.
Clerk В сторону неадекватных устаревших решений, мы прочитали, сенкс. Разбирайте лучше ваши графы, их еще не отменили.
deLight Устаревших ? Если не экспортируется стаб для установки, это не значит что не юзается какойто функционал, просто к слову. Да это ваши патчи унылый гуан. Этож каким тупым нужно быть чтоб для подмены модуля патчить загрузчик бгг)
Clerk Это, как и было указано, простые решения для ТС, пока хватит с головой. Прекратите дефекацию и запускайте отладчик (c:\vx\clerk\vx\dbg\olly.exe)
deLight Наверно автор хотел показать что олли гибкая как амёба. Но насчёт постенга это верно, только это к вам относится. Ничего по делу, один троллинг и п.издобольство.