ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Исследование Dekart Private Disk
  #1  
Старый 03.10.2006, 23:33
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию Исследование Dekart Private Disk

Исследование Dekart Private Disk v.2.09 (Последняя версия)

Назначение: Программа предназначена для создания виртуальных жестких дисков из зашифрованных образов, при этом разрешая к нему доступ только тем программам которым ты это позволишь.

Исследование я начал с появившегося MessageBox’a, тапа у меня осталось 30 дней, я сразу же, аттачнул его олькай(ollydbg) search for => name in all modules => messageboxa, дальше follow import in disassembler, а так как в XP эта функция вызывает функцию MessageBoxExA, я поставил бряк(beak point/точку останова) после MessageBoxExA и нажал F9(run). Согласился с сообшением и это привело к остановке на том бряке, я вышел из функции по F7(step into/шаг внутрь) и попал в модуль dkar.dll, выполнил search for => all intermodular calls и мне в глаза сразу бросилась функция versnum.VerifySerialNumberEx, дальше я открыл её в идее(IDA/Interactive Disassembler) и долго пытался разобраться в способе сравнения ключа, хотеорсь сделать keygen...
Спустя несколько часов, мне это надоело и я решил патчить. Я заметил что достаточно чтоб, функция VerifySerialNumberEx вернула значение отличное от нуля, тогда программа считает сабя загереной. Я сразу поставил jmp(прыжок) с начала функции, на первый же ret(учитывая стек) и программа стала считать себя зарегеной, но после того как я внёс изменения в саму versnum.dll, вылетел MessageBoxExA, с ошибкой загрузки versnum.dll, оказалось она проверяет целостность versnum.dll. Тогда я вышел из этой функции, на месте её вызова выполнил find references to => address constant, оказалось, она вызывается из нескольких мест, а также она не импортировалась, а подгружалась библиотекой dkar.dll, о чём свидетельствовала строка
Код:
MOV DWORD PTR DS:[9159DC],EAX
Я перешел на место подгруздки функций и решил добавить к полученному адресу функции, значение, соответствующее отступлению команды ret от начала функции, но функция add eax, 0x65 занимает 3 байта, а пожертвовать я мог только командой test eax, eax которая занимает 2 байта.
Код:
008FAD3C     68 E8D79000          PUSH 0090D7E8                           ; ASCII "VerifySerialNumber38"
008FAD41     FF37                 PUSH DWORD PTR DS:[EDI]
008FAD43     FFD6                 CALL ESI
008FAD45     85C0                 TEST EAX,EAX
008FAD47     A3 D4599100          MOV DWORD PTR DS:[9159D4],EAX
008FAD4C     74 63                JE SHORT 008FADB1
008FAD4E     68 D0D79000          PUSH 0090D7D0                           ; ASCII "VerifySerialNumberEx"
008FAD53     FF37                 PUSH DWORD PTR DS:[EDI]
008FAD55     FFD6                 CALL ESI
008FAD57     85C0                 TEST EAX,EAX
008FAD59     A3 DC599100          MOV DWORD PTR DS:[9159DC],EAX
008FAD5E     74 51                JE SHORT 008FADB1
как вариант было переместить mov ниже, на затереть ей инструкцию je, но тогда бы пришлось править таблицу исправлений адресации(что мне делать не хотелось), просто при паче dll’ек лучше не использовать прямых адресов, и не изменять инструкции с прямыми адресами(слишком много гемора).
Решение оказалось проще, перед получением этой функции, запрашивается другая, которая отстоит от того ret на расстоянии 139 байт, в той же библиотеке, так что я просто заменил
Код:
008FAD53     FF37                 PUSH DWORD PTR DS:[EDI]
008FAD55     FFD6                 CALL ESI
008FAD57     85C0                 TEST EAX,EAX
на
Код:
008FAD53     59                   POP ECX ; компенсирует предыдущую инструкцию
008FAD54     05 8B000000          ADD EAX,8B ; Наращивает на 139
Для полноты процесса, можно ещё и контрольную сумму поправить, но это не обязательно.

Резутьтат:
Код:
dkar.dll
0000AD53: FF 59
0000AD54: 37 05
0000AD55: FF 8B
0000AD56: D6 00
0000AD57: 85 00
0000AD58: C0 00
Ссылки:
ОффСайт - ввв[dot]private-disk[dot]net - Отсюда можно скачать.
Зеркало версии 2.09 на случай, если обновят ввв[dot]4shared[dot]com[slash]file[slash]6622030[slash]65852128[slash]MyPeronalPhotos.html
Пароль: CR@CK

ЗЫ Вот и сэкономили $45.00

Последний раз редактировалось hidden; 29.11.2006 в 08:24.. Причина: 4shared - пад*ы файл долбанули :mad:
 
Ответить с цитированием

  #2  
Старый 04.10.2006, 12:18
Аватар для ProTeuS
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

nice try
продолжай в том же дуХе
 
Ответить с цитированием

  #3  
Старый 04.10.2006, 16:36
Аватар для taha
taha
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
Провел на форуме:
2472378

Репутация: 1077
По умолчанию

Дааааа. Читаю и понимаю, что без практики постепенно превращаюсь в теоретика.
Молодец!
Цитата:
продолжай в том же дуХе
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бажный чат www.latinchat.com d4rk-d1G1T4L Чаты 21 22.01.2007 11:16
Real Time Cryptanalysis of A5/1 on a PC novichok Forum for discussion of ANTICHAT 3 21.04.2006 20:04
Исследование интернет-магазинов по продаже мобильных телефонов novichok Сотовый фрикинг 5 09.04.2006 23:47



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ