![]() |
eXeL@B —› Вопросы новичков —› Посоветуйте как подступиться к драйверу |
Посл.ответ | Сообщение |
|
Создано: 09 июля 2009 13:23 · Личное сообщение · #1 Задачка: имеется файл данныйх, содержащий CRC своей области. Нужно изменить эту область и поправить CRC, алгоритм расчёта которой не известен, известно только что она 32 битная, != CRC32, != Adler32. Мои попытки решения: 1. Предположил, что это CRC32 с нестандартным полиномом - написал типобрутфорс по полиному, запустил, прикинул время ~ неделя, подумал о нестандартных инит и ксор, прекратил глупости... 2. Поискал примитивиные преобразования над CRC32, не нащёл. 3. Пощёл от противного - дисасма. Код проверки CRC в драйвере (*.sys), т.е. дебаг для меня невозможен... Долго изучал в IDA листинг - ничего похожего на расчёт хеша не нащёл... Искал сначала по чтению файла (ZwReadFile) - нуль, искал по стандартным полиномам - нуль, искал сходные структуры по дисасму своего расчёта CRC32 - нуль.... Вообщем люди знающие помогите советом или делом: по каким признакам ещё можно поискать... Сам я скорее программер чем крякер. Ковыряюсь в надежде вернуть нечестно заблокированное, что купить отдельно нельзя - придётся менять железо (хоть и на более дещёвое, но свое продать трудновато), да и интересно поизучать. ![]() |
|
Создано: 09 июля 2009 14:16 · Личное сообщение · #2 |
|
Создано: 09 июля 2009 14:26 · Личное сообщение · #3 ctaud2k.sys - здесь проверяется CRC(99% уверен) ctoss2k.sys - здесь загружается файл(99% уверен) Где расчёт CRC не уверен, больше похоже, что в ctaud2k.sys. ctp046Aw.dat Смещение 0x68h = CRC (99% уверен) Смещение 0x428h - до конца файла = Данные для расчёта (80% уверен) ![]() ![]() |
|
Создано: 09 июля 2009 15:37 · Личное сообщение · #4 |
|
Создано: 09 июля 2009 16:30 · Личное сообщение · #5 |
|
Создано: 09 июля 2009 16:55 · Личное сообщение · #6 |
|
Создано: 09 июля 2009 22:45 · Личное сообщение · #7 |
|
Создано: 10 июля 2009 10:56 · Личное сообщение · #8 |
|
Создано: 10 июля 2009 16:01 · Личное сообщение · #9 Там, где используется VBDFILE - идёт сборка заголовка файла видимо для проверки на правильность - просто массив заполняется. Там вызываются функции того-же класса видимо как раз для чтения, но вот как их найти - хз (адресация косвенная от this)... По поводу для чего: у креатива есть на карте (X-Fi) декодеры DD/DTS, когда звуковухи только появились - они были доступны, позже вышли "обновлённые" карты (заменили серию) только лишь с другим ID, но в дровах для них уже декодеры залочены. Вот задачка - взять конфиг от первоначальной, изменить в нём ID карты, переименовать в новый = всё будет. Так было раньше, потом какие-то дурни на форуме креатива о разлочке написали и, в результате, в новых дровах ввели CRC. Обращаю внимание - декодеры, а не энкодеры (Dolby Digital Live и DTS Connect), которые можно купить. Эти купить нельзя, только другую звуковуху брать... Вот я и хочу под новые дрова анлокер сделать. ![]() |
|
Создано: 10 июля 2009 16:11 · Личное сообщение · #10 |
|
Создано: 10 июля 2009 17:13 · Личное сообщение · #11 |
|
Создано: 10 июля 2009 17:26 · Личное сообщение · #12 За неимением навыков + загрузка данных идёт в момент запуска, т.е. загрузки винды. Перезапуск драйвера при включенной винде косячит похоже из-за многокомпонентности - главный ctaud2k загружает ещё штук шесть помошников. Винда у меня Vista x64, т.е. ещё проблемы с кернелдебагером, на VM дров ставить бесполезно без железа. Вот. ![]() |
|
Создано: 10 июля 2009 17:34 · Личное сообщение · #13 |
|
Создано: 10 июля 2009 18:06 · Личное сообщение · #14 PCI звуковуха-то... Вообщем функции по VBDFILE вызывают интерес... Первая (2718В) функция заполняет структуру по адресу 3E064, вторая (276B0) её верифицирует и что-то ещё... опять относительная адресация... В аттаче дров и дата без CRC. ![]() ![]() |
|
Создано: 10 июля 2009 18:11 · Личное сообщение · #15 |
|
Создано: 10 июля 2009 18:59 · Личное сообщение · #16 |
|
Создано: 11 июля 2009 11:46 · Личное сообщение · #17 |
![]() |
eXeL@B —› Вопросы новичков —› Посоветуйте как подступиться к драйверу |