Никогда не юзал сисер, а тем более не отлаживал дровины... Дровина эта создает файл на диске. Вопрос: можно остановить выполнение кода дровины, когда она создала файл, дабы этот файл скопировать себе, т.к. дровина эта впоследствии этот файл удаляет ...
Ранг: 222.2 (наставник), 115thx Активность: 0.14↘0.01 Статус: Участник
Создано: 17 сентября 2009 14:41 · Поправил: HandMill · Личное сообщение · #4
Технически то оно конечно проделать можно. 1. Добавить bp ZwCreateFile после того как брякнулись на ZwDeleteFile что бы противостоять поиску файла. 2. Самому вписать код, когда брякнулись на ZwDeleteFile копирующий файл в ринг0, у меня готового решения таким путём нет. и ещё момент - дровина случайно не чекает CRC своего кода? Патчить можно? add: после бряка на ZwDeleteFile можно попробовать подменить путь к файлу/заменить его имя и так его драйвер уже не найдёт.
Дровина сама по себе шифрована, многослойна, свой код она декриптует, запускает... тот еще гимор, так что патчить файл не выйдет... Попробую чегонить придумать...
-= ALEX =- пишет: Дровина сама по себе шифрована, многослойна, свой код она декриптует, запускает... тот еще гимор, так что патчить файл не выйдет... Попробую чегонить придумать...
срабатывают..... я бы отпустил дровину на волю, убрал бы удаление файла, если бы не бсод... а почему он там происходит. я так и не понял, кривые руки видать писателя... вот и надо до продолжения работы дровины, скопировать файлик
-= ALEX =- Тогда что мешает вернуть драйверу успешность удаления, но не дать выполнится функции удаления? Или дописать любой код, например сохранения файла, выполнить пошагово, потом все вернуть как было, и пусть бсодит, если будет, файл то уже сохранен.
Или вариант написать свой драйвер который захучит функцию и скопирует файл в правильный момент.
-= ALEX =- пишет: остановить выполнение драйвера, чтобы переключится на винду можно: // sleep for 20 milliseconds __int64 x = -200000; ZwDelayExecution(FALSE, &x);
А что мешает вписать код jmp eip и скопировать? Проц конечно перегрузит... Но если файл не открыт, то скопируешь. Или уходи в ребут, грузись как-нибудь без дрова и смотри файл.
Все зависит от драйвера. Далеко не в любом месте любого драйвера можно делать спячку или вечный цикл. Это может привести как к бсоду, так и к полному зависанию системы. Поэтому лучше бы не пытался ногу за ухо закинуть, а честно после ребута собрал файлы.
Правильно ли я понимаю что для перехода по коду (то что в ольке делается через Ctrl+G и в IDA через просто G) используется команда g ? Если нет - то какой командой я могу открыть код по нужному мне адресу (не hex дамп, что довольно просто, а именно код) БЕЗ изменения EIP? Если всё же я правильно понимаю, то есть ли шанс использовать эту команду без синих экранов?
Ultras Благодарю, как-то не успел изучить до конца весь список в help.
progopis сидит без инета, поэтому задам его вопрос я: как заставить Syser ставить hardware бряк на мой процесс (который выделен в списке proc как текущий), а не на System?