|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.11.2017, 17:07 | #21 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Кароче вот пробуйте ) - это работало давно на вин-32, щас может прийдется допилить под 64 бита.
Вас интересует TDllFuncInter |
16.11.2017, 17:27 | #22 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
У вас кстати битовость совпадает? И ваша, и исходная DLL должны быть одинаковой битовости (32/64). Убедитесь тулзами, что совпадает. А то "я уверен", может и не сработать.
|
16.11.2017, 17:53 | #23 |
Пользователь
Регистрация: 07.08.2016
Сообщений: 16
|
Спасибо, буду ковырять. Да битность совпадает.
|
17.11.2017, 21:47 | #24 |
Пользователь
Регистрация: 07.08.2016
Сообщений: 16
|
Доковырялся
Получилось перехватить, но не получается подменить. В dxdiag инфа остается прежней. Код:
eBTqAyE.png Есть правда пока не понятные для меня "особенности". 1). Если убрат из кода DisableThreadLibraryCalls(hinst); то dxdiag.exe выбрасывает ошибку через некоторое время работы(выбрасывает в тот момент когда софтина начинает подробно "копать" данные). При этом в консоль выводятся какие-то данные. 2). Есть некоторая мысль, что подменить данные не получается из-за DisableThreadLibraryCalls... Сейчас если поменять данные pVal и тут же вывести ее в консоль, то выведет то что надо, однако в dxdiag.exe изменений нет. |
17.11.2017, 22:24 | #25 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
1. не используйте С функции, они часто потоко не безопасны, пока у вас там printf("wszName: %S\n", wszName); и он вроде не опасен, но все же.
2. Попробуйте Код:
Стоп... Код:
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)ApplyHooks, hAdd, 0, 0); т.е. перехват перехвата перехвата перехвата.... а DisableThreadLibraryCalls(hinst); отключает просто 2й и дальше. Собственно зачем вы вообще к этому привязались? Верните как было DLL_PROCESS_ATTACH и переменную static Это все под ИФ тоже завернуть Код:
Цитата:
Последний раз редактировалось alexzk; 17.11.2017 в 22:37. |
|
17.11.2017, 23:08 | #26 |
Пользователь
Регистрация: 07.08.2016
Сообщений: 16
|
Если заверну все под IF DLL_PROCESS_ATTACH то все отработает только один раз, GetModuleHandle(L"fastprox.dll"); вернет NULL и на этом все закончится
|
18.11.2017, 08:27 | #27 | ||
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Цитата:
Может быть разный порядок загрузки? Тогда нужно сделать так, чтобы эта длл уже была загружена до вашей. А вероятнее всего, не находится тупо она - пропишите полный путь к файлу, или переменную PATH в виндовс - добавте путь. Цитата:
1. Ваша программа фейлится найти файл и вы там сделали костыль 2. dxdiag находит файл и запускает 3. Теперь и ваша программа его находит 10 раз подряд, тут у вас еще 1 костыль DisableThreadLibraryCalls(hinst); 4. Но вы уже опоздали с перехватом. dxdiag все сделал. Хотя в этом моменте не совсем уверен. Перестаньте игнорить факты проблемы и лепить костыли. Сделайте, как должно и логически верно (первые варианты), а потом разберитесь, от чего проблема. Последний раз редактировалось alexzk; 18.11.2017 в 08:39. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подмена url с помощью .htaccess | Gorychev | Общие вопросы Web | 1 | 19.02.2014 01:39 |
в чем отличие gpu core clock и gpu clock почему значания разные? | gpu0 | Компьютерное железо | 0 | 10.06.2012 05:17 |
DETOURS, Перехват API средствами Detours | Micki1 | Visual C++ | 1 | 05.04.2012 04:45 |
подмена данных в программе | linkod | Фриланс | 9 | 12.03.2009 11:12 |
Подмена данных | Smip | Microsoft Office Excel | 2 | 13.01.2009 08:51 |