eXeL@B —› Софт, инструменты —› Распаковка AsProtect на примерах |
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >> |
Посл.ответ | Сообщение |
|
Создано: 17 января 2007 12:10 · Поправил: Модератор · Личное сообщение · #1 Здравствуйте! Очень прошу, помогите найти или выдайте пжалста из запасов прогу Advanced Archive Password Recovery v.3.00 кто может, очень хочется научиться распаковке, а проги нормальной нет. Далее повтор моего вчерашнего письма(лежит в чужой теме, найти можно в поиске введите: Распаковка ASProtecta - моё сообщение самое свежее) ---------------------------------------------------------------------- ------------------------------------------------------------------ Здравствуйте. Понимаю, что лезу немного не туда, но обсуждения статьи "Распаковка нового ASProtect на примере Advanced Archive Password Recovery v.3.00" автора SergSh на форуме и в поисковике вроде бы не видно(может статья просто древняя), а тут вроде бы тоже у ASR-ра 2-я версия. Суть проблемы: 1 Сам по вашим статьям научился распаковывать ASProtect 1.22-1.23 ,1.23 RC4, 1.24(проги типа Electra, Куриная месть.Первая разборка, скринсейвер и т.д. с затиранием репой краденого начала проги и без). 2 Нужно двигаться дальше и тут с удивлением обнаруживаю, что статей по распаковке версий 1.3-2.0 нет вааще(может я в шары долблюсь, незнаю). Плиз, если можно, то ссылку на подобную статью, а то руководство как починить велосипед есть(1.21-1.22), как починить мопед-есть(1.23 RC4), как починить боинг747 и космический челнок-есть(2.0x-2.12xx и выше). А вот как отремонтировать просто машину нет. 3 Из всех имеющихся статей более всего понятно было у SergSh в "Распаковка нового ASProtect на примере Advanced Archive Password Recovery v.3.00", но тут такой казус. Проискав в инете подопытную прогу версии 3.0 нашел две ссылки, скачал, инсталятор обещал версия 3.0 (как в статье),- в итоге версия 3.01, чем забиты все ссылки на эту прогу в инете и PEID говорит не ASProtect 1.2-1.3 registered(2.0x по словам SergSh),а ASProtect 2.1x SKE. Ну ладно: а)34раз Shift+F9 ставим бряк на ближайший переход внизу, ещё раз Shift+F9, снимаем бряк,ставим на Alt+M на секцию кода(401000), но не снова Shift+F9, как в статье, а trace into(а то EOP будет на две команды ниже и затруться два Push-а). Останавливаемся на EOP 42A910. Ctrl+A и всё видится чинно и благородно. б)Читаем статейку дальше и пробуем запустить его скрипт(в папку его,в Script , в Олю, в виде txt предварительно). И оля повисает пробовал подождать 1,5 часа думал это скрипт так долго на более свежей версии ASp-ра трудится(хрен то там:s14. Запущено как положено без бряков и с OEP после trace into и я в plugin->IsDebuggerPresent ->Hide, с полным игнором исключений. в) Руками по его совету IAT пока не пробовал, всё так пока трудно для понимания и непривычно и завтра на работу а уже 2ночи. Граждане, слезно молю дайте ссылку на настоящий Advanced Archive Password Recovery v.3.00, а то шатл починить не могу пока, дайте хоть чертежи к боингу. А если почти серьезно, то научиться распаковывать ASPr до второй версии включительно руками хочется так, что аж эти руки зудят. P.S. Не пинайте сильно за дурацкие просьбы самого маленького. Это первый выход в свет. Начал реверсить 18.12.06 с нуля. Реверсил даже в новогоднюю ночь. Для меня это очень важно(научиться распаковывать)! |
|
Создано: 17 января 2007 12:19 · Поправил: cadet · Личное сообщение · #2 |
|
Создано: 17 января 2007 12:21 · Личное сообщение · #3 блин что-то не прикрепилось, вот попробуй 69ff_17.01.2007_CRACKLAB.rU.tgz - olly script ot TIMaASProtect_2.0x.osc |
|
Создано: 17 января 2007 12:47 · Личное сообщение · #4 cadet, огромный респект, но 2 раза сбросил, rar выводит архив повреждён. И ещё может это ну очень глупый вопрос, но потом когда будет не повреждён его через плагин OllyScript исползуют с этим расширением .osc или через что-то ещё используют, а то его что -то не видно в окне OllyScript, хотя он уже в папке Script. |
|
Создано: 17 января 2007 13:00 · Личное сообщение · #5 |
|
Создано: 17 января 2007 13:32 · Личное сообщение · #6 cadet Посоветуй пожалста. На соседней теме deepred дал ссылку на e3.lescigales.org/olly/ скачал от туда ODbgScript.1.48.VC6(12), распаковал в папку с плагинами, dll вынул к другим dll плагинов и все её файлы, а его попрежнему в Оле не видать. Что то прописывать надо чтоли. Я ещё зелен лучше посоветуй что где писать или делать надо чтоб оля её видела. |
|
Создано: 17 января 2007 13:44 · Личное сообщение · #7 |
|
Создано: 17 января 2007 15:03 · Поправил: KpeHDeJIb · Личное сообщение · #8 Small_S пишет: Что то прописывать надо чтоли. Я ещё зелен лучше посоветуй что где писать или делать надо чтоб оля её видела. cadet пишет: Выбираешь в Olly option->appearance->directories, там в окне plugin path должен прописан путь к папке с плагинами. Если в той же папке что и ехе-шник ольки то просто пропиши в директориях ".", правда лучше в какую-нибудь поддиректорию навроде "./plugins". Банальные вещи, но кто его знает... |
|
Создано: 17 января 2007 21:20 · Личное сообщение · #9 |
|
Создано: 17 января 2007 23:34 · Личное сообщение · #10 Огромный респект всем за помощь-cadetKpeHDeJIb и отдельно автору статьиSergSh! Вечером прийду с работы и обязательно проверю все предложения. SergSh -я понимаю все люди занятые, но было бы очень неплохо увидеть статью типа исследование защиты ASProtect 1.35 или там 1.60 на примере программы... в твоём исполнении. С моей точки зрения новичка статья оказалась самой понятной из ряда статей ASPr2.x Ручками то всё равно учиться надо(для большего понимания) на чем то и лучше постепенно, по степени усложнения, как оно развивалось во времени. И вот эта бреш в статьях между ASPr 1.3 и ASPr2x она осталась и это важно несмотря на наличие нормального унпакера для младших версий аспра. |
|
Создано: 18 января 2007 10:34 · Личное сообщение · #11 МЛЯ!!! МУЖИКИ НЕТ СЛОВ ВЫРАЗИТЬ КАК Я СЧАСТЛИВ!!!! lord_Phoenix извини не злись и не закрывай тему(я сам патриот, но у меня зуб больше на америкашек), но так случилось, что мне удалось разобраться почему не видно было плагина и воспользоваться вчерашним китайским скриптом на вчерашней же более поздней версии Advanced Archive Password Recovery v.3.01(у которой ASProtect 2.1x SKE). МЛИН!!! Мало того что в логе он мне написал все расклады и после OllyDamp-ера(без галки самостоятельного восстановления импорта) в импректе понадобилось только ввести OEP и ещё вбил размер IAT 00000470(всё из того же лога), на Get Imports определились все функции до единой!!!!!!!!!!!!!!!!!!(такого ещё у меня не было никогда даже на самых младшенких версиях ASpra хоть немного а точнее много было не определено). Прикрутил импорт к дампу и всё!!!,- прога работает и никуда не падает хотя размер её уже 4,15метра, а не 566 кило и написана она на Watcom c/c++, это я так прикалываюсь, не обращайте внимания, буйное помешательство... А если серьёзно, то от ручной распаковки я не отказался и всё равно буду биться пока не сделаю тоже самое руками, чтобы знать как оно это. Люди добрые, только объясните дебилу как так, я же доходил вчера в ручную до OEP и оно было по 42A910, после trace into я видел там код идентичный тому который был в статьеSergSh каким макаром скрипт определил точку по 4287С4 т.е. на 214C раньше и всё это работает. Неужели у них там точка входа обманка с кодом идентичным настоящему??? |
|
Создано: 18 января 2007 18:52 · Личное сообщение · #12 |
|
Создано: 18 января 2007 20:01 · Личное сообщение · #13 |
|
Создано: 18 января 2007 23:49 · Личное сообщение · #14 Всё равно, мужики обьясните пжалста, кто поопытней чо за миграция OEP от скрипта к скрипту. Я много об этом думал может скрипты переходы в теле проги на код ASp-ра удаляют и смещают на эту величину весь код на пораньше, дык это сколько ж там переходов должно быть чтоб от ручной на 214C уменьшилось. Возможно вопрос этот отпадёт когда на выходных попробую ковырять всё руками по статьям. Но всё равно сейчас жуть как интересно чо за хрень?? |
|
Создано: 19 января 2007 17:25 · Личное сообщение · #15 |
|
Создано: 19 января 2007 18:22 · Личное сообщение · #16 Bronco , я просто учусь распаковывать версии ASPra. Изначально, когда тема забивалась у меня не было знаний по распаковке старших версий аспра вообще, мужики cadet и KpeHDeJIb натолкнули меня на соответствующий скрипт за что им огромный респект. Затем на одной из соседних тем я нарвался на обсуждение китайского скрипта и сумел его применить см. поросячие восторги выше. Так вот нарвавшись на странное явление для меня заволновался,- не люблю шаманских необъяснимых сюрпризов, я для того и учусь делать распаковку руками чтобы понимать весь процесс. Конечная цель вполне конкретна,- это прога лежащая на работе(и разумеется не желающая работать) и обработанная аспирином версии 2x registered к которой пока не смог подступиться ни наш, ни китайский скрипт а я жду выходных(сегодня тоже к сожалению работаем), потому что на работе нужно работать(моя специальность не связана с программированием, а только с использованием прог). А почему заволновался, так очень просто- при распаковке ручками будет ли что-то работать если неправильно определить OEP, ответ очевиден... Поэтому буду рад любым разьяснениям, я за 2 дня общения на форуме продвинулся к своей цели больше чем за предшествующие 2 недели самостоятельных поисков по статьям и поэтому уже не боюсь задать "глупый" вопрос. |
|
Создано: 19 января 2007 18:59 · Личное сообщение · #17 |
|
Создано: 19 января 2007 23:00 · Личное сообщение · #18 Small_S пишет: чо за миграция OEP от скрипта к скрипту Как правило, скрипт пишется под конкретную прогу и правильно работает именно на той версии аспра, под которую пишется. Мне кажется, ты зря зацикливаешься на нахождении ОЕР. В последних версиях аспра он вообще размазан по коду и был даже введен термин "условный ОЕР". Более того, на последних версиях аспра даже если ты сдампишь прогу на ОЕР и сделаешь дамп работоспособным, не факт, что прога будет полностью функциональной. Я сталкивался в последнее время уже дважды, когда процедура регистрации (или проверки) осуществлялась до ОЕР. А значит, если ты дампишь такую прогу с ОЕР, она будет демкой. |
|
Создано: 21 января 2007 05:46 · Личное сообщение · #19 Наконец начал ковырять в ручную предоставленный SergSh файл Advanced Archive Password Recovery v.3.00 и сразу два вопроса по ходу. Я это ещё и в личку SergSh брошу, но может кто раньше ответит. 1 Как по внешнему виду дампа не ошибиться с концом IAT(начало видно, начинается с нулей и причём в самом начале дампа и выше хотя и видно нули, но видно, что другой вид информации, в общем не ошибиться)? Сначала я думал от строки нулей до строки нулей, но строка нулей есть и по 0045C820 например. Я понимаю, что это наверное какая нить элементарщина, но всё таки плиз кратенький ликбез! 2 Тоже вопрос из разряда ликбезовских. SergSh пишетСледовательно метод восстановления будет такой: В коммандной строке окна дампа пишем Тут картинка: Command: ?VirtualAlloc Hex:77Е7АС72-DEC:2011671666-ASCIIабракадабра Переходим по адресу 77Е7АС72 и ставим F2 на первый же находящийся ниже RET. У меня сколь не дави правой мыщью commandbar-а в окне дампа в выпрадающем списке не видно, есть установленный общий для Оли плагин CommandBar, окно которого в точности как на картинке, но если туда набрать ?VirtualAlloc и тыкнуть по enter-u правее появляется надпись Hex:7C809A81 - DEC:2088802945 - ASCIIабракадабра. Во первых это не одно и тоже с тем что в статье, во вторых ни на какой 77Е7АС72 или 7C809A81 мы не переходим хоть задолбись по enter-u или F8. К сожалению работа встала, кто знает ответ плизззз брякните сюда ответ хотя бы по попаданию на 77E7AC72!!! |
|
Создано: 21 января 2007 06:14 · Личное сообщение · #20 |
|
Создано: 21 января 2007 07:18 · Личное сообщение · #21 |
|
Создано: 21 января 2007 10:43 · Личное сообщение · #22 Small_S пишет: не ошибиться с концом... элементарщина, но всё таки плиз кратенький ликбез! Читай дневники чайников про PE Format, да найдет просветление твое затуманенное сознание! (Без знаний PE Format`а в крякинге делать нечего, кроме как только юзать стрипперы, скрипты и пр. лабуду…) P. S. Ламеры – это ЗЛО, пейте йад и убивайтесь апстену – Аминь! ----- ЗЫ: истЕна где-то рядом, Welcome@Google.com |
|
Создано: 21 января 2007 10:46 · Личное сообщение · #23 Всё с одной хренью удалось разобраться, ещё раз огромный респект gegter . Далее список действий для тех кто будет грысти гранит науки в ручную по статье SergSh: 1 Разумеется делаем plugin->IsDebuggerPresent ->Hide. Убедимся, что убраны галочки у всех Ignore в Options->Debugging options->Exceptions. 2 От 33 до 35 раз Shift + F9 пока не будете на куске кода как сказано в статье смотрим вниз и видим JNZ после CMP. На строку с JNZ и ставим бряк, ещё раз Shift + F9, снимаем по F2 этот бряк. ALT + M и ставим бряк на первую секцию кода(Set Memory Breakpoint on Access на 401000), ещё раз Shift + F9, для более наглядного кода Ctrl+A+пробел, затем как и в статье F7 и мы стоим на OEP (если файл проги версии 3.0 то OEP=0042AAE0 как в статье). 3 Далее Ctrl+B начинаем бинарный поиск строки в окне HEX +02 вбиваем FF25 и нажимаем Enter. Затем 3 раза(так в этом примере) Ctrl+L пока не вылезем на требуемый в статье JMP- он действительно по 00459EB0, кстати этот адрес автор требует запомнить. Далее в основном окне CPU правой мышью и в развернувшемся меню Follov in Dump -> Memory address. После чего разглядываем дамп в районе IAT(его начало и конец). Ну к этому пункту(начало и конец IAT мне ещё предстоит вернуться тут не всё ясно). 4 А вот далее почти всё пойдет не как в статье. Ценность вбивания в окно плагина CommandBar команды ?VirtualAlloc только в том, что , как оказалось, она даёт точный адрес API процедуры VirtualAlloc для моей версии винда с сервиспаком SP2 это 7C809A81, а не 77E7AC72. Это очень важно как вы понимаете, я долбился с ложным VirtualAlloc часа полтора, пока не понял в чём дело. Кроме того после этого вбивания CommandBar создает не нужную точку останова на месте единственного вызова этой API в проге на который можно полюбоваться нажав в основном окне правой мышью Searcf for -> All itermodular calls по адресу 00433DC4. Я этот бряк убирал. 5 Далее по совету gegter Ctr+G и в окне вбиваем 7C809A81, а не 77E7AC72. Мы оказываемся по настоящему в VirtualAlloc где и нужно поставить бряк(F2) на строку 7C809A9A RETN 10 после чего снова Ctr+G и вернёмся по записанному адресу 00459EB0. 6 Снова в главном окне Searcf for -> All itermodular calls, как написано в статье прокручиваем появившееся окно до самого верха и по адресу 00401098 видим первый украденный вызов процедуры (Call 00EC0000). Два раза кликаем на нём и выскакиваем по 00401098 в основном окне CPU, правой мышью по этому адресу и выбираем Nev origin here, как в статье. Затем опять ставим бряк на первую секцию кода (ALT + M Set Memory Breakpoint on Access на 401000). Жмём на F9(2раза как в статье) и никакой бряк не срабатывает, но не будем отчаиваться и жмём ещё раз, только Ctrl+F9 и вываливаемся наконец на таком долгожданном 7C809A9A RETN 10. Смотрим в окно дампа и для большей наглядности два раза кликаем по колонке адресов чтобы она нам показывала смещение от ESP, а не абсолютное значение. В отличие от статьи по адресу ESP+40 там будет не USER32.RegisterClassA, а Return to USER32.RegisterClassA .Нажимаем ещё "F9" 1 раз опять сработала точка останова на "RET" в "VirtualAlloc"(как в статье). Вот только по адресу ESP+2С ничего нет, а наш Return to USER32.RegisterClassA снова по адресу ESP+40 стека. Если мы ещё раз тыкнем по F9 то окажемся опять в каком то регионе памяти ASpra вне адресов секций кода нашей проги(а мы там уже были когда два раза тыкнули F9 и нигде не брякнулись). 7 Станоситься ясным почему скрипт из статьи весит Олю и нихрена не делает. Ибо изначально в нем проверялось условие если по адресам ESP+40 и ESP+2С разные значения, следовательно что-то идёт не так. Дык как видим здесь всё идёт не так. Но хорошо уже то, что мы увидели нашу спертую процедуру(USER32.RegisterClassA) и адрес по которому она вызывается (77D42316) а не 77D3BF56 как в версии винды в которой работал автор. Ещё раз F9 и мы дествительно как писал автор имеем то, что адрес возврата стал 00401099 и значит править нужно по 00401098. Вот только опять непонятно после правки окна дампа по 0045C99C и внесения туда полученного 77D42316 и внесения измений по 00401098 почему то не получается строки : 00401098 FF15 9CC94500 CALL DWORD PTR DS:[45C99C] ; USER32.RegisterClassA, а получается 00401098 FF15 9CC94500 CALL DWORD PTR DS:[45C99C] тоесть она почему то не определилась Мляяяяя!!!! ну что опять не так, где взять настоящий адрес USER32.RegisterClassA???? Люди посоветуйте уже 8 часов без перерыва бьюсь. |
|
Создано: 21 января 2007 11:16 · Личное сообщение · #24 |
|
Создано: 21 января 2007 16:32 · Личное сообщение · #25 Small_S пишет: Далее по совету gegter Ctr+G и в окне вбиваем 7C809A81 Делай проще, Ctr+G,впиши VirtualAlloc,без всяких адресов.И жми окей.Потом F2 на ret.Set memory breakpoint on access на секцию кода.И долби f9,пока в стеке не увидишь функцию.Но для импорта,лучше юзай скрипт Пе_килл,он надёжнее.Если на дельфях-ff25(jmp),если на си-ff15(call). ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 21 января 2007 17:59 · Личное сообщение · #26 |
|
Создано: 21 января 2007 20:45 · Личное сообщение · #27 Small_S конец иат придёт с практикой,для начала можно после мусора в секции,конец иат обозначить.Так конечно дольше будет востанавливаться.Потом в импреке(когда импорт будешь прикручивать)посмотри,где старые вызовы заканчиваются,а где востановленые.Хотя кажется,роли тут большой нет. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 22 января 2007 04:54 · Личное сообщение · #28 Держи парочку скриптов для OEP,или VOEP. f801_22.01.2007_CRACKLAB.rU.tgz - VOEP for ASProtect.rar ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 22 января 2007 08:47 · Личное сообщение · #29 Огромный респект Bronco я даже представить не могу сколько времени удалось сэкономить с твоей помощью. Да я знаю нужно читать искать информацию и я пытаюсь это делать, но иногда одна фраза знающего человека заменяет несколько дней бесполезного поиска. Если я ещё не достал то вот несколько вопросов по ходу: 1 Начиная с какой версии, какого билда ASpr начинает размазывать OEP(так называемый условный OEP)? Может быть в нескольких версиях имеется такая опция и это как то обозначается в названии версии? 2 Чем отличается версия ASProtect 2.1x SKE -> Alexey Solodovnikov которую я сейчас(можно уже сказать с успехом ковыряю) от ASProtect 2.0x Registered -> Alexey Solodovnikov [Overlay]. Я понимаю, что ответ на этот вопрос может занять несколько страниц для спеца, но всё же хоть в общих чертах. Я ранее в данной теме обьяснял столь странный интерес именно к версии ASProtect 2.0x Registered. Я пока не пробую взять на абордаж интересующую меня прогу(точнее я попробовал на ней все имевшиеся у меня аспровы скрипты но пока отступил на более простое), но рано или поздно накачаю мозг и заранее интересуюсь чего ещё(потенциально) надо будет освоить для успешного вскрытия этой версии. 3 Вроде 2.0x Registered должно быть старее чем 2.1x SKE, однако китаец(скрипт) и другие(скрипты) с лёгкостью справляются с 2.1x SKE и не могут ничего сделать с 2.0x Registered, хотя судя по названию среди этих скриптов есть на версию 2.0x Вопросы ещё будут, но пока я поковыряюсь со вчерашним файлом до полной победы и чисто в ручную сколько бы дней это ни заняло(заодно доведу до автоматизма навыки обращения с Олей при различных распаковочных манипуляциях). |
|
Создано: 22 января 2007 11:13 · Личное сообщение · #30 Bronco при просмотре таблицы вызовов процедур (Searcf for -> All itermodular calls) , а точнее ASPro-вых Call-ов вида 00EC0000 в этой таблице и всего, что с ними связано появились два вопроса: 1 Очень редко, но после просмотра 2/3 этой таблицы уже 3 раза фиксировал(я записываю все адреса 00EC0000 по порядку возрастания в тетрадь) такую ситуацию 00413A12 Call 00EC0000 Superfluous prefix 00413A1B Call 68418A95 00413A29 Call 00EC0000 Superfluous prefix Тоесть среди массива ASPro-вых каллов, кал хрен знает откуда. Чё это за космические процедуры?(68419889, 45CE58A1) Это часть аспровой защиты или это к делу не относится? 2 Встречается и такая ситуация 0041AB08 Call 00EC0000 Superfluous prefix(перевод в стилисе- Лишний префикс) 0041AB22 Call 00EC0000 0041AB4A Call 00EC0000 Superfluous prefix Чё это в большинстве случаев Оля определяет калл как лишний префикс, а иногда нет? И самое главное это значимо при восстановлении в ручную или скриптом или можно плевать на такие мелочи? |
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >> |
eXeL@B —› Софт, инструменты —› Распаковка AsProtect на примерах |