[C++] Не проходите мимо! Помогите новичку в перехвате даных от DLL.11.09.02 15:55 Число просмотров: 1223 Автор: Xemax Статус: Незарегистрированный пользователь
> > Заранее благодарю за то что не прошли мимо. > > <...> > > выслать код этой DLL по почте может быть > > кто-нибудь делал уже подобные вещи с перехватом и > поможет > > найти ошибку? > > А нельзя как-то понять, доходит ли управление к тебе (к > твоим лже-функциям), к какой именно - если доходит, и где > умирает ? (В отладчике или вывести "отладочный сообщений") > ?
Насчет отладочной инфы, библиотека создает файл с помощью CreateFile ну и пытается писать туда разную инфу о том как работает лже DLL. Ну только пытается, функция WriteFile почемуто не работает.
Я читал в инете несколько статей про то как можно перехватывать данные от DLL создав DLL которая
будет экспортировать те же функции что и настящая DLL. Так вот сделал вроде все а библиотека не
работает загрузка XP завершается черным экраном. Я могу выслать код этой DLL по почте может быть
кто-нибудь делал уже подобные вещи с перехватом и поможет найти ошибку?
[C++] Не проходите мимо! Помогите новичку в перехвате даных от DLL.14.09.02 11:30 Автор: Xemax Статус: Незарегистрированный пользователь
Нашел ошибку но правда не знаю что с ней делать. Загрузка останавливается из-за того что то процесс с лже-Advapi32.dll использует процессор почти 100%. Кто сталкивался с таким? Help???????????????
[C++] Не проходите мимо! Помогите новичку в перехвате даных от DLL.10.09.02 17:20 Автор: Chingachguk <Chingachguk> Статус: Member
> Заранее благодарю за то что не прошли мимо. > <...> > выслать код этой DLL по почте может быть > кто-нибудь делал уже подобные вещи с перехватом и поможет > найти ошибку?
А нельзя как-то понять, доходит ли управление к тебе (к твоим лже-функциям), к какой именно - если доходит, и где умирает ? (В отладчике или вывести "отладочный сообщений") ?
[C++] Не проходите мимо! Помогите новичку в перехвате даных от DLL.11.09.02 15:55 Автор: Xemax Статус: Незарегистрированный пользователь
> > Заранее благодарю за то что не прошли мимо. > > <...> > > выслать код этой DLL по почте может быть > > кто-нибудь делал уже подобные вещи с перехватом и > поможет > > найти ошибку? > > А нельзя как-то понять, доходит ли управление к тебе (к > твоим лже-функциям), к какой именно - если доходит, и где > умирает ? (В отладчике или вывести "отладочный сообщений") > ?
Насчет отладочной инфы, библиотека создает файл с помощью CreateFile ну и пытается писать туда разную инфу о том как работает лже DLL. Ну только пытается, функция WriteFile почемуто не работает.
[C++] Не проходите мимо! Помогите новичку в перехвате даных от DLL.11.09.02 17:57 Автор: Chingachguk <Chingachguk> Статус: Member
> Насчет отладочной инфы, библиотека создает файл с помощью > CreateFile ну и пытается писать туда разную инфу о том как > работает лже DLL. Ну только пытается, функция WriteFile > почемуто не работает.
С NT опыта у меня нет, а в 98 я бы сделал (и делал) так:
- либо в сайсе ставишь условный бряк на CreateFile (if (ESP->4...== Имя твоего лог-файла)), причем в сайс я попадал ДО загрузки виндов - и там ставил этот бряк и пускал винду, тем самым ты попадешь в свой код, который тока-тока собрался вызвать CreateFile - ну и поглядишь, как и почему он не может сделать WriteFile;
- либо пытаешься ставить beep-ы разные (в 98 можно в порты звуковые писать, в NT вроде тоже) - вроде если бип был, то ты что-то выполнил...
[Win32] может стоит попробовать более безопасные методы09.09.02 22:22 Автор: beetle <beetle> Статус: Member
> как-то хуки к примеру - система не упадет, да и ты много > интересного для себя почерпнешь.
Спасибо за предложение но я знаю что такое хуки и как с ними работать. Меня интересует перехваты по существеннее и посерьезней, чем просто перехват нажатой клавы или сообщений.
[Win32] может стоит попробовать более безопасные методы10.09.02 16:51 Автор: beetle <beetle> Статус: Member
> > нутогда вот тебе справка по "взрослому перехвату" > Ну не такой уж он и "взрослый". Рихтер, к примеру, его > очень не рекомендует. Хотя можно, конечно. Рихтер к примеру рекомендует использовать зеленые презервативы и микросовтовские фаерволы - самые безопасные фаерволы в мире
А что за DLL? Ты зря так просто сразу полез в системные, потренируйся "на кошках" сперва ;-)09.09.02 21:21 Автор: HandleX <Александр М.> Статус: The Elderman
Между прочим, это довольно неблагодарный труд создавать Wrapper для dll в виде подстановочной с таким же именем. Нужно один к одному воссоздать весь API, что они экспортируют. А тем более системные DLL, там они часто вообще (функции) без имени (по порядковым номерам), много недокументированных функций, от версии к версии они меняются ;-(
Если нужно отслеживать толко один процесс, то лучше работать только с этим процессом и перехватывать вызова в нём. Или вообще, залезть в Kernel Mode и почувствовать себя если не полубогом, то уж Самим Билли Гейтсом точно ;-)). Ты не задумывался, к примеру, почему RegMon или FileMon от Winternals не стали делать Wrapper для advapi32 или kernel32 ;-))))))) Хотя на самом деле постановка проблемы такая же — перехватить функции записи/чтения реестра или файловой системы. Но они делают это посредством драйвера режима ядра.
Так что такие вот дела.
А что за DLL? Ты зря так просто сразу полез в системные, потренируйся "на кошках" сперва ;-)10.09.02 15:08 Автор: Xemax Статус: Незарегистрированный пользователь Отредактировано 10.09.02 15:18 Количество правок: 2
> Между прочим, это довольно неблагодарный труд создавать > Wrapper для dll в виде подстановочной с таким же именем. > Нужно один к одному воссоздать весь API, что они > экспортируют. А тем более системные DLL, там они часто > вообще (функции) без имени (по порядковым номерам), много > недокументированных функций, от версии к версии они > меняются ;-( > Если нужно отслеживать толко один процесс, то лучше > работать только с этим процессом и перехватывать вызова в > нём. Или вообще, залезть в Kernel Mode и почувствовать себя > если не полубогом, то уж Самим Билли Гейтсом точно ;-)). Ты > не задумывался, к примеру, почему RegMon или FileMon от > Winternals не стали делать Wrapper для advapi32 или > kernel32 ;-))))))) Хотя на самом деле постановка проблемы > такая же — перехватить функции записи/чтения реестра или > файловой системы. Но они делают это посредством драйвера > режима ядра. > Так что такие вот дела.
Я знаю что можно с помощью драйвера. Но мои познания в этой области равны почти NULL. А теперь насчет кода я непонимая просто почему он не работает.
Я читал в инете статью про то как сделать поддельную User32.dll и что то по приведеному способу в этой статье у меня не получается. Передавать управление на
настоящую функцию через команду ассемблера jmp. Привиду кусок кода из DLL. Кстати перехватывается Advapi32.dll.
/*упрощаем библитеку. Поддельная библиотека не будет использовать run-time library и другие библиотеки крому
kernel32.dll*/
#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
#pragma comment(linker,"/ENTRY:DllMain")
#pragma comment(linker,"/NODEFAULTLIB")
/*Объявление переменых которые будут хранить адресса функций из настоящей Advapi.dll*/
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
DisableThreadLibraryCalls(GetModuleHandle(0));
/*******************************************88
/*Дальше идет ключивой момент нам не нужны прототипы всех функций
мы просто с помощью jmp передаем управлене на настоящуюю функцию,
обрабытывать будем только избранные функции реестра и LogonUseA, LogonUserW ;-))
*/
/*С помощью этого макроса будет передаваться управление на нужную функцию.*/