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 с нуля. Реверсил даже в новогоднюю ночь. Для меня это очень важно(научиться распаковывать)! |
|
Создано: 01 февраля 2007 09:39 · Личное сообщение · #2 tar4 пишет Я с этим скриптом не работал, но если бы пришлось его использовать, то этот бряк ставил бы через скрипт. И вообще, есть Script Window, используй его для трассировки скрипта.. Может это покажется верхом дибилизма, но ни на одной из вкладок Script Window(при нажатии правой мыши) не вижу команд которыми можно было бы поставить какой либо бряк, кроме как в самом скрипте(команда Toggle Script Bp-F2), если я чего то не вижу тыкните носом. Аналогично: Bronco пишет На секцию ,не на адрес. В карте памяти (Alt+M)---->правой мышью не вижу команды которая ставила бы бряк на всю секцию кода кернела32 , ибо если я верно понял Bronco, то Set memory breakpoint on access ставит бряк на чтение первой команды по адресу начала секции кода кернела32, а нам нужно чтобы брякало по любому адресу в этой секции, так??? Какой командой задается бряк на всю секцию кода кернела????? |
|
Создано: 01 февраля 2007 18:32 · Личное сообщение · #3 Small_S пишет: не вижу команд которыми можно было бы поставить какой либо бряк Я имел ввиду команды (BP addr,BPHWS addr, mode,BPRM addr, size и т.д), подробности смотри в OllyScriptReadMe.txt. Эти команды надо вносить в скрипт при его написании. Писать скрипт можно в любом текстовом редакторе. А F2 - это для прерывания выполнения скрипта при трассировке. |
|
Создано: 01 февраля 2007 19:36 · Личное сообщение · #4 Small_S Ты так закрутишь,что с первого чтения не поймешь в чём проблема.А мыслишь правилльно.Alt+M)---->правой мышью на секции кода кернела32 -------->Set memory breakpoint on access.Всё.Потом на вызов(например: call 00e80000) -------->New ........ here.и ф9.И смтори в стек или в регистры,точно не помню.Но так вручную всю иат не востановишь.оля упадёт. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 02 февраля 2007 03:19 · Личное сообщение · #5 Bronco, уточняю ещё раз. Я сейчас только с вопросами конкретно по данному скрипту(восстановления IAT) в ручную уже всё ясно. Мне сейчас нужно понять как ставиться один огромный бряк на целую секцию кода кернела ибо если я тебя и всех верно понял, то киловский скрипт у меня не пашет поскольку кернеловская процедура которая нужна скрипту стоит в кернеле не с начала, а Set memory breakpoint on access повидимому ставиться на самое начало этой секции(вот и не работает бряк потому, что мы к началу секции кода не обращаемся) Как вообще ставиться бряк в памяти например чтобы при обращении к любому байту от адреса 70000 до адреса 75000 прога или скрипт тормозились(адреса левые, взяты для примера). |
|
Создано: 02 февраля 2007 11:37 · Личное сообщение · #6 Small_S Пришлось ставить,ибо ты уже запутал. У меня 3.01 ОЕР - 0042a910 Для скрипта иат начало - 0045c548 конец 0045c998. После прохода к ОЕР(я проходил вручную)сними бряк на память на секцию кода проги.Потом запускай скрипт для иат.В 3 местах нет нулей между функциями кернел,юзер,и адвапи,полечи ручками,минут десять на это уйдёт. По адресу 0045c6ec идёт вызов GetProcAddress(7c80ac28),впиши,потом снимай дамп.А дальше импреком востанавливай импорт.Дальше старта проги,я не проверял,ибо прога бестолковая.Чтоб найти пароль может уйти вечность. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 03 февраля 2007 00:33 · Личное сообщение · #7 Послал в личку и пишу здесь, может кто быстрее подскажет. Bronco вечером пытался по твоим инструкциям запустить скрипт специально загрузил современную версию файла итак: У тебя 3.01 и у меня 3.01 ОЕР - 0042a910----------------------->также и у меня Для скрипта иат начало - 0045c548------------------>задаю в скрипт также как ты конец 0045c998.------------------------------------------>задаю в скрипт также как ты После прохода к ОЕР(я проходил вручную)------------->и я проходил вручную сними бряк на память на секцию кода проги.---------->а вот тут я бы и хотел спросить так как из-за этого не работает. Команды отменяющей команду Set memory breakpoint on access если жать правой кнопкой мыши в окне памяти на вкладке нет. В окне брекпоинтов бряк на память никогда не видно и непонятно стоит он там после прохода к OEP или нет. И наконец вопрос какой командой снимается бряк на секции кода проги установленный туда Set memory breakpoint on access или может существует как в сайсе команда bc* снимающая все бряки??? Потом запускай скрипт для иат.--------------------------> пока скрипт вылетает с той же ошибкой типа бряк LoadLibrary не работает и восстановил 1 функцию якобы. p.s. Уже пробовал 2 раза подряд нажимать F2 на секции кода проги в окне памяти(думал может установит и тутже снимет) и пробовал все действия и затем Set memory breakpoint on access на секции кода кернела32 всё равно скрипт не пашет. |
|
Создано: 03 февраля 2007 07:54 · Личное сообщение · #8 Small_S всё понятно.тебе с олей надо поружиться.не там ищещь вкладку.не в памяти ,а в cpu(Ремове мемори брекпоинт).Но мне ещё пришлось мониторинг доквеба отключать,вылетал в режим ожидания. В скрипты не лезь,в них всё нормально.После отработки скрипта(иат),смотри в окне дампа востановленную иат(как ascii),Чтоб не повторяться смотри выше(уже писал). ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 03 февраля 2007 09:03 · Личное сообщение · #9 Bronco фенкс уже даже не за помощь, а за терпение. Ты будешь возможно уже очень нервно смеяться, но эти меры не помогли. 1 Нашёл в CPU Ремове мемори брекпоинт и воспользовался. 2 Полностью отключил Касперского и монитор, и сканер, который к тому времени начал планово сканить. Скрипт ведёт себя также- бряк LoadLibrary не работает и восстановил 1 функцию якобы. Слушай ты раньше говорил, что нужен бряк на секцию кода на кернел я попробовал и просто F2 и Set memory breakpoint on access на секции кода кернела32 одновременно с пунктами 1 и 2 смотри это письмо выше, но всё тоже самое. Может мне надо пункты 1 и 2 , и ещё как то поставить бряк на секцию кернела32(кода), только я просто ещё не умею этот особый бряк ставить. Иными словами ты там ничего одновременно с рассмариваемыми действиями на кернеле32 не делаешь? |
|
Создано: 03 февраля 2007 09:13 · Личное сообщение · #10 Bronco ещё в догонку там никакой обработки исключений не нужно ли выставлять, а то я изначально иду в полном игноре исключений, как советовал SergSh в своей статье, но у него то скрипт был другим может это влияет на работу скрипта, может какие то исключения во время его работы включить в Debugging options----->Exceptions??? И ещё иду под IsDebugPresent. |
|
Создано: 03 февраля 2007 10:03 · Личное сообщение · #11 Какая разница,каким скриптом ползти к точке входа? Эксепшоны - все отключить.Если вручную(шифт +Ф9),то после прохода надо снять бряк на память.( в окне cpu <- напоминаю.) ------------ всё правильно,плагин должен быть включен,иначе аспр отладку запалит. ------------ ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 03 февраля 2007 10:09 · Личное сообщение · #12 Bronco ты пишешь Какая разница,каким скриптом ползти к точке входа Я не про прохождение до точки у SergSh скрипт тоже на восстановление IAT. Я просто подумал, что может общие настройки и при восстановлении IAT как то влияют. Эксепшоны - все отключить. все у меня отключены как и писал выше. Если вручную(шифт +Ф9),то после прохода надо снять бряк на память. в окне cpu всё так у меня и есть. Я просто уже ума не приложу где же портак. Все советы уже налету проверяю. |
|
Создано: 03 февраля 2007 14:42 · Личное сообщение · #13 |
|
Создано: 03 февраля 2007 23:42 · Личное сообщение · #14 Bronco портак известен несмотря ни на какие ухищрения(я имею ввиду твои советы, собственные попытки) скрипт выдаёт сообщение о том, что бряк на LoadLibrary(BreakPoint at 'LoadLibrary' not work!) не работает, затем после о'кей "Скрипт отработал! Общее число 0000000001(один раз было 000000002) востановленных функций!" Причем он действительно проходит по этим функциям сначала файла так как Call 00EC0000 меняется на 00F10004(первая функция по 004010F9 в окне ол интермодуляр калл) и если запускать далее то снова, но следующую функцию из Call 00EC0000(изменённых аспром функций) и т.д. Но проходить то он по одной проходит, но не восстанавливает!!! Уж чего я только не пробовал ходил по Ctrl+G в кернел32 и делал различного типа бряки на LoadLibraryA, и на точку на которой стоим после контрал+G и чуть попозже,- ничего не помогает! Может спишемся с PE- kill-ом, я просто немного стесняюсь отвлекать профи от серьёзных дел? Сорри за медленную реакцию в ответ. У нас видимо весьма разные часовые пояса. Твой ответ был под утро я уже спал. |
|
Создано: 04 февраля 2007 07:39 · Личное сообщение · #15 Small_S Начнём с простого: ecc9_04.02.2007_CRACKLAB.rU.tgz - ollydbg.rar ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 04 февраля 2007 07:49 · Личное сообщение · #16 |
|
Создано: 04 февраля 2007 08:07 · Личное сообщение · #17 Bronco проверил пока в точности как делаешь ты так: 1 В ручную до OEP(для выхода два бряка на ближайший джампер F2 и shift+F9 после чего снимаем его F2, затем Alt+M и Set memory breakpoint on access на секции кода проги после чего shift+F9 и на JMP по F7, тут же снимаем бряк на памяти в окне cpu(Ремове мемори брекпоинт)). 2 Как обычно запускаем скрипт пе-килла,- задаем начало- 0045c548, интер, конец-0045c998, интер, выбираем да ведь мы будем восстанавливать Call-ы, интер. Срипт к сожалению ведёт себя также. Но всё равно огромный спасиб за ини окно стало как у всех нормальных крекеров с выделениями(я сам так не умел настраивать). Слушай может этот скрипт был разработан не для XP? Ты на чём там работаешь(у меня XP sp2). Понимаю предположение глупое, но уже просто ума не приложу всё вроде как ты делаю. |
|
Создано: 04 февраля 2007 08:34 · Личное сообщение · #18 А вылетает сообщение о том что BreakPoint at 'LoadLibrary' not work! в таком месте: 7C910727 /0F84 EF0E0000 JE ntdll.7C91161C 7C91072D |E8 D0E6FFFF CALL ntdll.7C90EE02 7C910732 |C2 0400 RETN 4 7C910735 |90 NOP 7C910736 |90 NOP 7C910737 |90 NOP 7C910738 FFFF ??? ; Unknown command ------------------вот тут 7C91073A FFFF ??? ; Unknown command |
|
Создано: 04 февраля 2007 08:41 · Личное сообщение · #19 |
|
Создано: 04 февраля 2007 12:51 · Личное сообщение · #20 Small_S Теперь нахрен поудаляй всё из папки UDD.Бекапы тоже если есть.И начни сначала. Среда вроде одинаковая.У меня сборка ShadowOllyDbg. Плаги: "pedumper.dll" "OllyScript.dll" "ODbgScript.dll" "MapConv.dll" "advancedolly.dll" "OllyDump.dll" "CmdBar.dll" "HideOD.dll" "Asm2Clipboard.dll "+BP-OLLY.dll" "OLLY-BP.exe" "DPlugin.dll" "Cmdline.rtf" "ApiBreak.dll" "HideDebugger.dll" "IsDebug.dll" "UnhExcFlt.DLL" "NonaWrite.dll" "APIBREAK.HLP" "windowinfos.dll" И никаких залётов,пробуй ещё раз. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 04 февраля 2007 18:11 · Личное сообщение · #21 |
|
Создано: 05 февраля 2007 07:56 · Личное сообщение · #22 Bronco из перечисленных плагинов в хозяйстве пока нет: "HideOD.dll" "+BP-OLLY.dll" "OLLY-BP.exe" "DPlugin.dll" "ApiBreak.dll" "HideDebugger.dll" "UnhExcFlt.DLL" "NonaWrite.dll" "APIBREAK.HLP" "windowinfos.dll" Таким образом из 20-ти твоих плагинов у меня 10. Ещё раз проверил дойдя вручную до OEP работу скрипта. Ведёт себя также с ошибкой. Перепроверил ещё раз папку UDD или бекапов нет. Все старые UDD и бекапы согнал на флешку из компа. |
|
Создано: 05 февраля 2007 08:01 · Личное сообщение · #23 |
|
Создано: 05 февраля 2007 13:27 · Личное сообщение · #24 Кидай в папку с плагинами,всё из архива: 3242_05.02.2007_CRACKLAB.rU.tgz - HideDebugger.rar ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 05 февраля 2007 18:13 · Личное сообщение · #25 Bronco респект за 4 плагина. Я думаю их было 4 , а то у меня пишет неожиданный конец архива. "HideOD.dll" "HideDebugger.dll" обновленный "IsDebug.dll" "HideDebugger.ini" Попытка применения хотя и дала тот же результат, пока, но наконец появилось хоть какое то изменение,- вылет на уже много раз описанную ошибку происходит уже не где то в ntdll, а по 004010A1 /75 06 JNZ SHORT ARCHPR.004010A9 004010A3 |31C0 XOR EAX,EAX 004010A5 |C9 LEAVE<---------------------------------------- Вот здесь 004010A6 |59 POP ECX 004010A7 |5B POP EBX 004010A8 |C3 RETN 004010A9 A1 38944E00 MOV EAX,DWORD PTR DS:[4E9438] 004010AE 8945 E8 MOV DWORD PTR SS:[EBP-18],EAX 004010B1 C745 FC 10054600 MOV DWORD PTR SS:[EBP-4],ARCHPR.00460510 ; ASCII "XHyperLink" 004010B8 C745 DC C3214000 MOV DWORD PTR SS:[EBP-24],ARCHPR.004021C3 004010BF C745 D8 00000000 MOV DWORD PTR SS:[EBP-28],0 004010C6 C745 EC 00000000 MOV DWORD PTR SS:[EBP-14],0 004010CD 53 PUSH EBX 004010CE 50 PUSH EAX Приду с работы вечером и поизучаю более присьтально это новшество. |
|
Создано: 05 февраля 2007 18:45 · Личное сообщение · #26 Small_S пишет: Ещё у кого нить есть какие либо мысли Я почитал, что ты тут писал и не понял: ты трассировал сам скрипт? У тебя ошибка на LoadLibraryA, а в скрипте сначала определятся адрес этой функции. Какое значение в $RESULT после выполнения gpa "LoadLibraryA","kernel32" и после findop $RESULT,#C20400#. И еще. Ты пишешь:
А как ты туда попадаешь? Разве по ret у тебя прога не уходит из ntdll? У меня это функция ntdll.RtlAllocateHeap. |
|
Создано: 05 февраля 2007 23:50 · Личное сообщение · #27 tar4 фенкс за участие в проблемме. Отвечаю на ты трассировал сам скрипт? нет я пока только пытался повторить действия Bronco, хотя ранее находил окно трасировки скрипта и даже пробовал трасить немного. Вечером после работы обязательно отвечу на Какое значение в $RESULT после выполнения gpa "LoadLibraryA","kernel32" и после findop $RESULT,#C20400#. Что касается строки: 7C910738 FFFF ??? ; Unknown command ------------------вот тут! то я просто обратил внимание где стоит текуший курсор оли в окне CPU в момент вывода сообщения об ошибке. Разумеется участок кода выше строки 7C910738 я просто посмотрел прокрутив в верх и пытаясь понять откуда мы пришли на эти вопросы. Поэтому на вопрос А как ты туда попадаешь? пока говорю а фиг его знает, надо думать с нопов , а вот туда откуда пока не выяснял, вечером попробую убрать временно плагины и выяснить откуда мы там оказались. Сорри tar4 я ещё так мало знаю и поэтому шарашение по виндовым библиотекам у меня пока вызывает что то типа трепетного ужаса(просто не знаю как оно должно идти правильно, ну понимаю конечно, что либо в этой ситуации мы должны были на рете уйти откуда вернулись, либо мы пришли сюда по какому то джамперу на ноп). |
|
Создано: 06 февраля 2007 09:21 · Личное сообщение · #28 Уф что то у краклаба сегодня с сервером кардебалет раза с сорокового зашёл. Ну да к делу. Новости есть и для tar4 и для Bronco. Млин, не могу даже ники выделить жирным не пашет. 1- е Забавное после установки плагинов, хоть их убирай, и меняй IsDebug.dll на старый, хоть что больше уже не вылететь на 7C910738 FFFF ??? ; Unknown command ------------------вот тут! никак, так что ответить на вопрос tar4 как я оказался на строке 7C910738 видимо я не смогу никогда. "HideOD.dll"------------------------ "HideDebugger.dll"---------------эти плагины обновленный "IsDebug.dll"---- "HideDebugger.ini" 2 Место - 004010A1 /75 06 JNZ SHORT ARCHPR.004010A9 004010A3 |31C0 XOR EAX,EAX 004010A5 |C9 LEAVE<---------------------------------------- Вот здесь где мы теперь останавливаемся и выводим сообщение об ошибке это ничто иное как пятая команда за первой украденной аспром процедурой которую скрипт и пытается восстановить. 3 К этому сообщению прикрепляю .txt с работой моего скрипта до вывода ошибки взятый из окна работы скрипта. 4 А вот и ответ на вопрос tar4- Какое значение в $RESULT после выполнения gpa "LoadLibraryA","kernel32" и после findop $RESULT,#C20400#. из следующего фрагмента работы скрипта видно 100 sub eip,4 j j 400E44 101 add [eip],type_api j j 400E40 15 24B8900®400E40 102 gpa "LoadLibraryA","kernel32" 7C882FC4 j 103 findop $RESULT,#C20400# 0 j 7C882FC4 104 mov LoadLibrary,$RESULT j j 0 105 bphws LoadLibrary, "x" j 00400E19 0 106 @START:_______________________________________________________________ ________ 107 mov DLL_lost,00000000 0 00400E19 108 @repuild_api:_________________________________________________________ _________ 109 mov esp,stack 0 00400E19 6FF78 110 mov eip,addr_finder j j 400E01 111 mov ecx,addr_cur j j 400FFF 112 mov edx,scan_end j j 45B000 113 mov ebx,aspr_call j j EC0000 114 run j 00400E19 115 cmp ecx,edx j 00400E17 45B000 401098 116 jae @end j j 117 inc counter j j 0 118 mov addr_cur,ecx j j 401098 119 mov eip,addr_cur j j 401098 120 run j 00400E17 121 cmp eip,LoadLibrary j 004010A5 0 4010A5 122 Djne @ERR_BP_AT_API_NOT_WORK 004010A5 что в findop $RESULT,#C20400#. грузится адрес перехода на LoadLibraryA вида: 7C882FC4 >- E9 1890DA77 JMP F462BFE1 а вот чего ему(скрипту) надобно дальше и почему мы уходим на ошибку? Кстати это что значит bphws LoadLibrary, "x"? И чего то перед тем как прыгнуть на ошибку(на сообщение) сравнивает eip с переменной LoadLibrary, которой там выше сам присвоил значение переходника на LoadLibraryA, они равны чтоли и что за Djne? jne-знаю(перейти если меньше или равно), а такого у меня в книге по асму нет. Вообще на чём пишут скрипты вроде асм, который я чуть чуть понимаю с какой то примесью чертовщины? f5f6_06.02.2007_CRACKLAB.rU.tgz - работа моего скрипта.txt |
|
Создано: 06 февраля 2007 09:27 · Личное сообщение · #29 |
|
Создано: 06 февраля 2007 13:00 · Личное сообщение · #30 Small_S Поройся здесь,и поменяей себе сборку: 41b9_06.02.2007_CRACKLAB.rU.tgz - The home for Reverse Engineers.... Downloads - OllyDbg Engines - Modifications.rar ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 06 февраля 2007 18:07 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >> |
eXeL@B —› Софт, инструменты —› Распаковка AsProtect на примерах |