Сейчас на форуме: Slinger (+6 невидимых) |
eXeL@B —› Основной форум —› Чо за зверь? |
Посл.ответ | Сообщение |
|
Создано: 29 января 2007 07:23 · Личное сообщение · #1 Ковыряю тут одну софтину. kitchendraw.com/FTP/Kd50e.exe. Размер - 11м. Пейд показал UPolyX v0.5 *, софтина от Хелспауна - говорит "не пакован" . Да вроде и сам вижу, что не пакован, но с такой фишкой просто не сталкивался. Имеется два екзешника один типа загрузчика. Хотя он и нах не нужен второй запускается и сам по себе. А вот дальше интересно. Основной екзешник создает в темповой дире файл вида cks*, где * - это номер. При каждом запуске предыдущий cks* удаляется, а на его место пишется такой же, с номером некст. Это обычный РЕ-файл. А вот чо делает этот cks* - хз. Возможно дебажит основной процесс. Потому как олька не может приатачиться к основному процессу. Я в основном екзешнике пропатчил, теперь прога не создает каждый раз новый лоадер, а берет один и тот же из своей диры. В принципе, можно с ним работать. Тока в какую сторону? Просто никогда такая хрень не попадалась.Интересны и секции. Кроме обычных еще присутствуют .INIT , .edata , .loader , .wreloc , .widata И влезть в основной екзешник не получается никак. Потому как если трейсить до запуска лоадера, то олька просто зависает. Лоадер не может подрубиться к основному процессу. Короче, ковыряю ужо пол дня. Никуда не сдвинулся. Качать, думаю никто не станет 11 метров, но может кто-то уже сталкивался с таким? ЗЫ. Я вот обратил внимание, что если прога написана нашими программерами, то даже если цена - 20 баксов - защита может быть - не балуйся. А буржуи продают проги по несколько килобаксов, а защиты почти нет. |
|
Создано: 29 января 2007 07:33 · Личное сообщение · #2 |
|
Создано: 29 января 2007 07:38 · Личное сообщение · #3 |
|
Создано: 29 января 2007 07:41 · Личное сообщение · #4 |
|
Создано: 29 января 2007 07:58 · Личное сообщение · #5 |
|
Создано: 29 января 2007 08:04 · Личное сообщение · #6 |
|
Создано: 29 января 2007 10:24 · Личное сообщение · #7 |
|
Создано: 29 января 2007 12:04 · Личное сообщение · #8 |
|
Создано: 29 января 2007 12:20 · Личное сообщение · #9 $144,$588 - CurrentProcessId $047CD31 $144 GetModuleFileNameA $00000000 $047CD50 $144 CreateFileA D:xakKDKD_app.EXE $047CD70 $144 SetFilePointer $00000040 $00000000 $00000000 $00000002 $0047CD98 $144 CreateFileMappingA $00000040 $047CDBE $144 MapViewOfFile $047C375 $144 UnmapViewOfFile $047C391 $144 CloseHandle $:0047F36B $144 CreateFileA F:...Tempck delete.list $:0047EC11 $144 CreateFileA F:...TempcksFE.tmp $0047F449 $144 DeleteFileA $:0047F2FE $144 CreateFileA F:...Tempck delete.list $:0047EEDA $144 CreateFileA F:...TempcksFF.tmp $0047F031 $144 GetCurrentProcessId 144 $:0047F05C $144 CreateEventA 00000000 00000001 00000000 0012FC10 $0047F095 $144 CreatePipe $0047F0CB $144 CreatePipe $:0047F1D8 $144 GetModuleFileNameA $00400000 $0047F1F1 $144 GetCurrentProcessId 00000144 $:0047F263 $144 CreateProcessA F:...TempcksFF.tmp runtime.exe 144 4C 58 47C020 "D:xakKDKD_app.EXE" $:0047F2A6 $144 WaitForSingleObject 00000040 00011170 $:00401022 $588 Sleep 000007D0 $00401780 $588 GetCommandLineA runtime.exe 144 4C 58 47C020 "D:xakKDKD_app.EXE" $:004017E1 $588 OpenProcess $144 $0040103A $588 DebugActiveProcess $0040129A $588 ContinueDebugEvent $004010E5 $588 WaitForDebugEvent $0047F2D3 $144 CloseHandle $:0047E422 $144 LoadLibraryA KERNEL32.dll $:0047E422 $144 LoadLibraryA dv.dll $004013B5 $588 LocalAlloc $:004013E9 $588 lstrlenA CKSMDSH $00401419 $588 LocalFree $0040129A $588 ContinueDebugEvent $00C3F2F3 $144 CreateMutexA $004010E5 $588 WaitForDebugEvent $00401547 $588 GetThreadContext $004015B1 $588 FlushInstructionCache $000007C8 $00000000 $00000000 $004015C4 $588 SetThreadContext $004015D4 $588 ContinueDebugEvent $0124367A $00000144 GetTickCount stahh пишет: ХАЧУ понять логику! Ну и как к этим процессам подцепиться? Как закрыть DebugActiveProcess, не закрывая основной процесс? Пока тоже ничего не понял. |
|
Создано: 29 января 2007 21:47 · Поправил: BoOMBoX · Личное сообщение · #10 stahh пишет: Так чо это такое? И как оно распаковывается? Если влом писать, дай линк, где можно почитать. Или коротко - типа "бряк тут - смотрим сюда" . Интересно самому разобраться. И для чего там этот лоадер. А куча драйверов? Чота такое намучено. ХАЧУ понять логику! Что это - сказать трудно, может быть это конверт Eutron Smart Key, в общем х.з. Вопросы по распаковке экзэхи - в личку. длл еще не смотрел. |
|
Создано: 30 января 2007 05:53 · Личное сообщение · #11 |
|
Создано: 30 января 2007 11:14 · Личное сообщение · #12 Зверь называется CrypKey. Какой-то старый прот. Но дело не в нем, и олька нормально отлаживает, и патчить можно. Дело в темп-файле, который создается. Эта хрень дебажит основноц процесс, и в то же время запускает его. Сначала 004025AE=<JMP.&KERNEL32.GetCurrentProcess> 004025A8=<JMP.&KERNEL32.GetCommandLineA> 004025DE=<JMP.&KERNEL32.OpenProcess> 00402590=<JMP.&KERNEL32.DuplicateHandle> 004025EA=<JMP.&KERNEL32.ReadProcessMemory> Далее 0040258A=<JMP.&KERNEL32.DebugActiveProcess> 004025C6=<JMP.&KERNEL32.InitializeCriticalSection> 00402584=<JMP.&KERNEL32.CreateThread> 00402608=<JMP.&KERNEL32.WaitForDebugEvent> 00402596=<JMP.&KERNEL32.EnterCriticalSection> 004025CC=<JMP.&KERNEL32.LeaveCriticalSection> 004025EA=<JMP.&KERNEL32.ReadProcessMemory> 00402572=<JMP.&KERNEL32.ContinueDebugEvent> Если убрать 0040258A=<JMP.&KERNEL32.DebugActiveProcess> 00402608=<JMP.&KERNEL32.WaitForDebugEvent> 00402572=<JMP.&KERNEL32.ContinueDebugEvent> то этот темп просто закрывается. Естественно, я их не просто ноплю, а аккуратно убираю. В регистрах все что надо, чтоб переходы отрабатывали как если бы прога дебажилась. Но вот чота я там не учитываю. Сделал так, чтоб основной екзешник брал темповый из той диры где запускается, и не переписывал его. Т.е. - можно патчить темповый как надо. Если кто заинтересуется - куда-нить залью. Где-то, что-то подобное читал, тока вспомнить не могу. |
|
Создано: 31 января 2007 08:01 · Личное сообщение · #13 stahh Работает эта защита так: // имеется в виду протектор от патчей. 1. Создается и запускается темповый файл. Основной процесс уходит в ожидание. 2. Тмр файл открывает основной процесс DebugActiveProcess(pId) // вызвав DebugActiveProcessStop(pId) из тмр процесса можно, отключится от //отлаживаемого процесса не убивая его. 3. Запускает основной процесс. 4. Как только в основном процессе происходит исключение, // я видел только int 3, ставится EXCEPTION_DEBUG_EVENT) тмп процесс считывает байт с адреса исключения (ReadProcessMemory) 5. Восстанавливает код в основном процессе по 30-250байт (WriteProcessMemory) 6. Запускает основной процесс и ждет следующего исключения. И т.д. до полного восстановления кода программы. // Защищены два файла KD_app.EXE, Dv.dll Как восстановить код и снять протектор - думаю … (в свободное время) |
|
Создано: 31 января 2007 11:58 · Личное сообщение · #14 Xserg Если бы только до полного восстановления. Распакованный файл тоже создает темп. Там как раз проблема в том, что без темпового файла - основной не работает. Я пробовал патчить, он запускается, но виснет. И это, я думаю, не защита пакера. Пакер там навешан для проверки целостности файлов. А вот тепм-файл - и есть защита. Кстати, распакованный файл, если убрать сообщения о вирус детектед, тоже виснет. Падла. Но интересно. За::%;:%ся уже. Мля, наверное надо в ринг0 лезть. У мну сайс не ставиться, тока недавно машину еле поднял, не хочу рисковать. Попробуй из сайса приатачиться к основному процессу. Я вот думаю, что отвязать основной от темпового не получиться. Там, когда основной файл распаковывается, куча импорта в dv.dll, а из этой либы уже в темп. Тоже трабла. Вот если б сделать так, чтобы основной процесс сам себя и юзал. Надо думать. Самое интересное, что кряк есть в продаже. |
|
Создано: 31 января 2007 12:04 · Личное сообщение · #15 |
|
Создано: 01 февраля 2007 01:08 · Личное сообщение · #16 |
|
Создано: 01 февраля 2007 10:50 · Личное сообщение · #17 Полностью восстановленный код KD_app.EXE (156к) _http://ifolder.ru/1020610 stahh пишет: Кстати, распакованный файл, если убрать сообщения о вирус детектед, тоже виснет. У протектора есть одна хитрость, после восстановления кода в одном месте, он портит его в другом. Так что дамп с запущенной программы не прокатит. Сделал так: Запустил KD_app.EXE, и приаттачил к обоим процессам Длл, Одна искала в секции CODE слова $cccccccc и jmp на это место. Тмп файл добросовесно восстанавливал код. Вторая Длл не давала затереть распакованный код. После этого снял дамп с процесса , и заменил секцию CODE, в файле созданным BoOMBoX/TSRh , сам то я вообще не умею, делать исполняемые файлы из дампа, и сайса у меня нет. Теперь буду пытаться восстановить dv.dll ( думаю это на долго) |
|
Создано: 01 февраля 2007 12:05 · Личное сообщение · #18 |
|
Создано: 01 февраля 2007 22:03 · Личное сообщение · #19 |
|
Создано: 01 февраля 2007 22:46 · Поправил: addy · Личное сообщение · #20 |
|
Создано: 01 февраля 2007 22:53 · Личное сообщение · #21 |
|
Создано: 02 февраля 2007 09:42 · Личное сообщение · #22 stahh пишет: Приатач сюда распакованный файл, Tmp файл отказывается восстанавливать некоторые участки кода в dv.dll (будем изучать) B dv.dll не могу найти DllEntryPoint что бы стряхнуть упаковщик (будем искать) Сегодня я немного пьян (будем спать) 8b73_02.02.2007_CRACKLAB.rU.tgz - _KD_app.rar |
|
Создано: 04 февраля 2007 10:25 · Личное сообщение · #23 Распакованный dv.dll (890kb) H t t p://xserg11.narod.ru/Dv.rar // тмп файлы он все еще создает, но не запускает. Только пройдется KD_app.EXE , самому распаковывать. Выше по топику ссылки на KD_app.EXE - не рисует картинки на моем компьютере, даже с не распакованным dv.dll. Зато можно вводить пароль , и лазить по процессу олей. |
|
Создано: 04 февраля 2007 11:22 · Личное сообщение · #24 Xserg Рулез, конечно. Рассказывай, как распаковал. Опять цеплял либы? Слишком сложно. Должен быть способ попроще. Выше по топику ссылки на KD_app.EXE - не рисует картинки на моем компьютере, даже с не распакованным dv.dll. - у мну тоже есть екзешник, не помню, чо я там с ним делал. А, это вроде тот, который работает с одним и тем же cks. Так он тоже запускается, а картинки не рисует. Там, походу, ф-ция отрисовки через dv.dll проходит, а возвращается через cks . Наверное не полностью распаковал. Щас времени нету плотно заняться этой прогой. BoOMBoX/TSRh обещался статью написать. Бум ждать. |
|
Создано: 06 февраля 2007 23:33 · Личное сообщение · #25 Загрузчик для KD_app.EXE и dv.dll ,вместе с исходником на Delphi. hттp://xserg11.narod.ru/KD.rar (12,6кБ) Тестировалась только на XP sp2 ( пролежит 2 дня) Кому интересно доводите до ума. Делает: При входе в функцию GlobalHandle (kernel32) с адресом возврата 5e7b44 из dv.dll размещенной по адресу 480000 ; push eax mov eax,[esp+4] cmp eax,$5e7b44 ; realoc pop eax jne pga mov [edi-16],0 mov [edi-20],$7fff mov [edi-24],0 mov [edi-28],$7fff pga: jmp GlobalHandle обеспечивает полную функциональность. Р.s. тех кто будет смеяться над кодом укусю. Хотел просто , по быстрому, попробовать сломать тем - же способом что зашита ,и.. получилось. |
|
Создано: 08 февраля 2007 06:45 · Поправил: BoOMBoX · Личное сообщение · #26 |
eXeL@B —› Основной форум —› Чо за зверь? |