Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Протекторы —› Помогите снять Obsidium. |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 09 декабря 2007 22:44 · Личное сообщение · #1 Привет всем ! В запросах на взлом я оставляла сообщение о программе ServiceMP v3.321 hxxp://www.shark-media.ru/files_2/shark_m/Servicemp.zip Триал 30 дней. PEiD сказал, что там Obsidium. В предыдущей версии 3.29 я смогла сделать всё сама, прочитав всего одну статью про IceLicense. Я использовала лоадер который в местах вызова OnTrialExpired и прочих не хороших функциях делал прыжок на код OnRegistered. Найти IceLicense помогла dede. Что касается этой версии, то вынуждена признать, что эта защита кажется мне очень сильной. Я нашла всего одну статью на хакер.ру, прочитав её поняла, что мои шансы нулевые. Я новичок во всём этом, обратилась сюда в надежде на помощь. Если кто-то может дать совет или указать на хорошие статьи, которые понятны будут новичку и помогут самостоятельно снять протектор, или ткнуть носом и подсказать пошагово, как сделать самостоятельно – буду очень благодарна. Так же буду, благодарна, если кто-то даст готовую программу, к тому же знаю, что она уже есть. |
|
Создано: 10 декабря 2007 05:11 · Личное сообщение · #2 Yani пишет: Что касается этой версии, то вынуждена признать, что эта защита кажется мне очень сильной. Я нашла всего одну статью на хакер.ру, прочитав её поняла, что мои шансы нулевые. Я новичок во всём этом, обратилась сюда в надежде на помощь. Чего такой пессемизм? Бери ольку последний фантом и запускай прогу!Фантом обходит всю аниотладку! Оеп обсид пракический не тырит! Находится любым способом хоть на esp-4 хоть на бряк на запись в дата! Импорт так же не сложно Приципиально не отличаеться в разных версиях Если секция кода перемещена в выделеную память Делается так ставишь бряк на VirtualAlloc третье срабатывание ставишь меморибряк на запись выделеный регион бряк сработал бряк на ret Снимаешь секцию кода без релоков Дальше так же data и остальные секции в зависимости от компилятора |
|
Создано: 10 декабря 2007 05:17 · Личное сообщение · #3 |
|
Создано: 10 декабря 2007 05:48 · Личное сообщение · #4 Spirit пишет: Ты никогда не думал о том, что стоит накатать стотью? С меня писатель никакой ;) Да и угостили SVKP 2 ковыряю сейчас Тем болееYani пишет: В предыдущей версии 3.29 я смогла сделать всё сама, прочитав всего одну статью про IceLicense. Я использовала лоадер который в местах вызова OnTrialExpired и прочих не хороших функциях делал прыжок на код OnRegistered. Найти IceLicense помогла dede. Думаю справится Скорее всего чел так же использует апи обисида так что вопрос лома это видимо только вопрос снятия прота.. |
|
Создано: 10 декабря 2007 06:41 · Поправил: KingSise · Личное сообщение · #5 На кряклабе есть тема, про антиатладку обсидиума: --> Link <-- Статья: http://www.exelab.ru/art/?action=view&id=302 ----- -=истина где-то рядом=- |
|
Создано: 10 декабря 2007 06:44 · Поправил: VaZeR · Личное сообщение · #6 Смотрел я этот Obsidium секции не перемешены, OEP целый, импорт загажен, но кроме просто переходников там есть и полностью эмулируемые функции, но их там не много около 10 что ли. Можно и в ручную все восстановить. Как будет свободное время постарась помочь. Насчет антиотладки, то там последний фантом справляется. |
|
Создано: 10 декабря 2007 13:43 · Личное сообщение · #7 Ребята, спасибо за подсказки и поддержку ! Буду пробовать. Нашла ещё несколько статей на английском. По ходу буду писать о результатах. Пессимизм от неопытности. Ручную распаковку как я поняла с upx обычно начинают, а не с Obsidium. Конечно увидеть статью про конкретно эту программу и повторить по ней было бы очень интересно ! |
|
Создано: 10 декабря 2007 14:05 · Личное сообщение · #8 Ну конкретно по этой проге дать не могу нет времени. Но могу дать другую где описана аналогичная ситуация. Сразу хочу сказать что статья очень сырая и не дописаная, там я не дописал восстановление полностью эмулируемых API. Их придется восстановить вручную. Да и так ошибок в ней очень много. Может быть она тебе чем то сможет помочь. rapidshare.com/files/75571910/___________Obsidium_1.3.0.4.rar.html |
|
Создано: 10 декабря 2007 14:13 · Поправил: pavka · Личное сообщение · #9 Yani Если вы правильно определились с опциями и версией держи скрипт Если будет криптованый код скажи дам еще e781_10.12.2007_CRACKLAB.rU.tgz - Oep+NoMoveCode+ Import.rar P.S забыл сказать в иат в конце каждой библы обсид пишет как правило лишнее значение их можно просто обнулять это типа трюк ;) ищи все равно не найдешь |
|
Создано: 10 декабря 2007 20:48 · Личное сообщение · #10 С помощь скрипта который предоставил Pavka удалось получить импорт и правильно попасть на ОЕП (79B804). Полезной оказалась информация по разделителям (если так можно выразиться) между библиотеками. Очень важным для определения правильных границ импорта (7ADC88-7AE6B8) и его размера (A30) оказался метод который использовал в статье VaZeR. Так же помогла информация об установке атрибутов доступа к секциям. К сожалению скрипт из статьи не заработал, ровно как и скрипт Obsidium V1.3.0.0 от heXer & fly. Вообще со скриптами какая то беда. То запускается и работает, то глючит, то оеп не правильный, то программа выдаёт ошибки, то на оеп не останавливается. UDD подчищаю, точки остановки убираю. Помогает только перезагрузка и удаление всей Ольки с настройками. Олю использую The0DBG, фантом 1.20, все галки включены. Но это не главное. Сейчас хочется понять, что осталось сделать дальше и как это сделать. Когда все функции удастся распознать, мне нужно будет делать дамп. Это лучше сделать дойдя до оеп самостоятельно, например поставив точку остановки на доступ к известному теперь адресу или можно использовать скрипт ? То что он делает с импортом не помешает правильности дампа ? Что лучше использовать для дампа, плагин Ольки или petools ? В дампе нужно будет указать правильный оеп и потом вставить импорт с помощью imprec ? А в новую секцию или на тоже место ? Играет роль для правильности снятия дампа и правильного распознавания функций скриптом то, в каком состоянии сейчас программа ? Я имею ввиду триал сейчас просрочен и программа требует ввести код. Как нужно распознавать те функции которых не хватает ? Если кто-то может сказать на моём примере, на одной из функций которые не распознаны у меня. Например, это функция такая то, узнать это можно так и так. Зашла сюда, нажала то, видишь, вот её название. Остальные делай так же. Это очень поможет… Хотя прогресс в продвижении к финалу налицо, меня огорчает то, что моей заслуги тут нет, а понимания мало. Спасибо, что помогаете мне ! Нулями помечены предполагаемые разделители секций, там где три точки, там я сократила. Вроде там всё ок. Полный файл дерева приаттачу. oleaut32.dll SysFreeString
3ac1_10.12.2007_CRACKLAB.rU.tgz - tree.txt |
|
Создано: 10 декабря 2007 21:19 · Поправил: ToBad · Личное сообщение · #11 Yani пишет: Где то тут два разделителя, если используются только winmm.dll и gdi32.dll. А может тут присутствовать другая библиотека ? Думаю, что может. Точнее сказать может KingSise, так как он программу давно сделал. Напиши ему в личку или подожди пока тут отпишет... pavka У меня скрипт не работает вообще. Оля екзекриптор и шадов. На какой сборке ты работаешь ? |
|
Создано: 10 декабря 2007 21:33 · Личное сообщение · #12 |
|
Создано: 10 декабря 2007 22:07 · Личное сообщение · #13 |
|
Создано: 11 декабря 2007 01:26 · Личное сообщение · #14 |
|
Создано: 11 декабря 2007 02:04 · Личное сообщение · #15 |
|
Создано: 11 декабря 2007 05:51 · Личное сообщение · #16 Yani пишет: Тут может не быть разделителя вообще ? , это обязательное правило или нет ? Ты можешь это очень просто узнать если поищешь ссылки в секции кода на пустышки их просто не будет. Неопределенные функи : 1 как правило не более пяти переходник типа mov eax, они вызываються всегда одинаково типа 0032059C B8 70053200 MOV EAX,320570 GetCommandLine ; ASCII ""D:\CrackTools\The0DBG\The0DBG\OllyDBG.eXe"" 003205A1 - E9 9A195501 JMP 01871F40 003205A6 B8 FFFFFFFF MOV EAX,-1 GetCurrentProcess 003205AB - E9 90195501 JMP 01871F40 003205B0 B8 8C080000 MOV EAX,88C GetCurrentProcessId 003205B5 - E9 86195501 JMP 01871F40 003205BA B8 0501280A MOV EAX,0A280105 ; GetVersion 003205BF - E9 7C195501 JMP 01871F40 2 оставшиеся функи можешь оттрасировать о в разных версиях они немного по разному вызываються но всегда из секции прота. В принципе перед тем как трасироват посмотри ссылки где вызываються функи довольно часто просто вставить функцию по смыслу кода Так же смотри табличку внимательно например kernel32.dll GetVersionExA ? 0000 012E1766 <---- вероятнее всего GetVersion kernel32.dll GetTickCount kernel32.dll MultiByteToWideChar ? 0000 01265BF0 <------вероятнее всего lstrlen kernel32.dll lstrcpyn и т.д Для обсида обычно использую простую не патченую ольку и фантом Дамп делать без разницы чем главное не забывать про доступ Yani пишет: Как нужно распознавать те функции которых не хватает ? Если кто-то может сказать на моём примере, на одной из функций которые не распознаны у меня. Например, это функция такая то, узнать это можно так и так. Зашла сюда, нажала то, видишь, вот её название. Остальные делай так же. Это очень поможет… Хотя прогресс в продвижении к финалу налицо, меня огорчает то, что моей заслуги тут нет, а понимания мало. Спасибо Запиши неопознаные функи Поставь хардварный бряк на оеп и перезапусти прогу! поставь eip начало переходника и трейсь акуратно обходя ловушки как правило будет заход в секцию прота и смотри в стеке и в регистрах Пару фунок оттрейсишь поймешь что к чему ;) |
|
Создано: 11 декабря 2007 07:16 · Личное сообщение · #17 sniperZ пишет: шадов+фантом+хайдтулс и обсид сосет и винда сосет =) http://exelab.ru/f/action=vthread&forum=1&topic=7529&page= 19#22 |
|
Создано: 11 декабря 2007 09:12 · Личное сообщение · #18 |
|
Создано: 11 декабря 2007 09:48 · Личное сообщение · #19 |
|
Создано: 11 декабря 2007 11:54 · Личное сообщение · #20 VaZeR пишет: Вот линк на дамп с восстановленным импортом. Так у тебя значительной части импорта не хватает. Его длина больше. Наверное из за этого падает. После вызовов из version.dll идут ещё вызовы из: kernel32.dll advapi32.dll oleaut32.dll ole32.dll kernel32.dll ole32.dll oleaut32.dll comctl32.dll imm32.dll shell32.dll winspool.drv comdlg32.dll msimg32.dll kernel32.dll winmm.dll gdi32.dll quartz.dll В принципе Yani выше выкладывала файлик. Склонен думать, что с границами и размером импорта она не ошиблась. |
|
Создано: 11 декабря 2007 12:03 · Поправил: VaZeR · Личное сообщение · #21 ToBad Я не ошибся с размерами. Просто так отработал импрек. Так что у меня и нет после библы version.dll не чего. 3e19_11.12.2007_CRACKLAB.rU.tgz - tree.txt |
|
Создано: 11 декабря 2007 12:22 · Поправил: ToBad · Личное сообщение · #22 |
|
Создано: 11 декабря 2007 13:53 · Поправил: VaZeR · Личное сообщение · #23 ToBad Да ты прав там у меня действительно в импорте есть несколько косяков. Сейчас внимательнее посмотрел и вроде теперь с импортом все правильно, но в конце есть ещё несколько не определившихся. Это случайно не API Обсидиума? С таким импортом прога теперь падает на вызове CreateWindowExA адрес 408E4F в оригинале тоже вызывается та же самая API но там все правильно работает, а у меня ошибка доступа. c2dc_11.12.2007_CRACKLAB.rU.tgz - tree_1.txt |
|
Создано: 11 декабря 2007 15:10 · Личное сообщение · #24 Yani пишет: winmm.dll PlaySound ? 0000 012E2084 ? 0000 012E2091 ? 0000 012E209E ? 0000 012E20AB Где то тут два разделителя, если используются только winmm.dll и gdi32.dll. А может тут присутствовать другая библиотека ? ? 0000 012E20B8 ? 0000 012E20C5 ? 0000 012E20D2 ? 0000 012E20DF ? 0000 012E20EC Неопределившийся блок после скрипта если откинуть пустышки обычно API Обсида Это можно просто определить посмотрев реренсы и передаваемые аргументы |
|
Создано: 11 декабря 2007 15:21 · Поправил: ToBad · Личное сообщение · #25 Я сравнил импорт который получил VaZeR с импортом который получила Yani с помощью скрипта от pavka и с импортом от KingSise. Самый близкий к идеалу на мой взгляд это импорт от VaZeR. Изначально Yani правильно определила размер импорта и скрипт ей очень помог распознать большинство функций, но там где скрипт не справился у неё пока пусто. KingSise не нашёл самого последнего работающего файла, а тот что выслал очень сырой. Большая проблема с группой вызовов из kernel32.dll которые идут после version.dll и которые кстати VaZeR до недавнего момента тоже проигнорировал (вернее его злобный импрек ), а так же короткий размер импорта у KingSise сказались на неработоспособность его версии. Вот какие нестыковки есть у VaZeR: 1) В этой части отличаются ординалы. KingSise 1 003AE570 comctl32.dll 0059 UninitializeFlatSB 1 003AE574 comctl32.dll 0055 InitializeFlatSB 1 003AE578 comctl32.dll 005A _TrackMouseEvent VaZeR 1 003AE570 comctl32.dll 005A UninitializeFlatSB 1 003AE574 comctl32.dll 0055 InitializeFlatSB 1 003AE578 comctl32.dll 005B _TrackMouseEvent 2) VaZeR 1 003AE32C kernel32.dll 0314 SetLastError pavka 1 003AE32C kernel32.dll 02BF RestoreLastError 3) Нераспознанные функции 1 003AE678 kernel32.dll 0216 InitializeCriticalSection 0 003AE67C ? 0000 012C20A3 1 003AE680 kernel32.dll 0216 InitializeCriticalSection 0 003AE684 ? 0000 012C20BD 1 003AE688 kernel32.dll 0216 InitializeCriticalSection 1 003AE68C kernel32.dll 0216 InitializeCriticalSection 1 003AE690 kernel32.dll 0216 InitializeCriticalSection 4) Если тут вызов из user32.dll, то перед ним должна быть «пустышка» ? 1 003AE694 user32.dll 01E4 MessageBoxW 5) И тут ты уверен, что ничего нет ? 0 003AE410 ? 0000 012E18AB |
|
Создано: 11 декабря 2007 15:42 · Личное сообщение · #26 ToBad пишет: Изначально Yani правильно определила размер импорта и скрипт ей очень помог распознать большинство функций, но там где скрипт не справился у неё пока пусто. KingSise не нашёл самого последнего работающего файла, а тот что выслал очень сырой. Я не знаю что там распаковывал KingSise и не собираюсь смотреть! Так же не видел файл что распаковывает Yani Если скрипт у нее отработал и встал на оеп значит импорт у нее весь правильный ;) И по тому что она запостила очень похоже на то ;) Имхо я думаю она найдет неопределившиеся функи сама ;) А не будет ковырять разные кривые дампы !К чему заниматься херней сравнивать какие то дампы ? |
|
Создано: 11 декабря 2007 16:12 · Поправил: VaZeR · Личное сообщение · #27 |
|
Создано: 11 декабря 2007 16:24 · Личное сообщение · #28 pavka пишет: К чему заниматься херней сравнивать какие то дампы ? Ну ей конечно не к чему, лучше разобраться самой, а мне вот интересно понять ошибки других. Казалось бы не сложная задача на первый взгляд, но удивляет то, что работающей проги ещё пока не видно, и причём дело как мне кажется не в хитрых эмулированных функциях, а зачастую с размером и правильностью импорта... Никого не хочу обидеть, все мы учимся... |
|
Создано: 11 декабря 2007 18:17 · Личное сообщение · #29 ToBad пишет: дело как мне кажется не в хитрых эмулированных функциях, В обсиде нет ни каких хитрых проэмуленых функций ;) ToBad пишет: и причём дело как мне кажется не в хитрых эмулированных функциях, а зачастую с размером и правильностью импорта... ? креститься надо когда кажется Хочешь научится так учись бери прогу да распаковывай чего гадать почему чей то дамп не работает Написать скрипт трейсер дело пяти минут поставить четыре бряка да чекать eax |
|
Создано: 11 декабря 2007 19:00 · Поправил: Maximus · Личное сообщение · #30 ToBad могу тебе с 100% увереностью сказать что 1 003AE32C kernel32.dll 0314 SetLastError 1 003AE32C kernel32.dll 02BF RestoreLastError это одно и тоже, однако павкин RestoreLastError однозначно не заработает на 2000-й винде. Однако пафка облажался. VaZeR признавайся чем восстанавливаешь импорт? на сколько я помню имрек пишет именно RestoreLastError ----- StarForce и Themida ацтой! |
. 1 . 2 . >> |
eXeL@B —› Протекторы —› Помогите снять Obsidium. |
Эта тема закрыта. Ответы больше не принимаются. |