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 с нуля. Реверсил даже в новогоднюю ночь. Для меня это очень важно(научиться распаковывать)! |
|
Создано: 06 февраля 2007 18:21 · Личное сообщение · #2 |
|
Создано: 06 февраля 2007 18:49 · Личное сообщение · #3 Small_S пишет: bphws LoadLibrary, "x"? Я уже запутался, что у тебя работает, что нет. Этот кусок скрипта с LoadLibrary, в котором ты сомневается, легко проверить. Вырезаешь его, создаешь новый скрипт и запускаешь на любой проге. Там ведь по сути нет исполнения проги. Я его проверил, он нормально отрабатывает. Сначала получаем адрес функции LoadLibraryA, затем ищем по сигнатуре выход из нее (Ret 4) и ставим на него "железный бряк" (bphws). Small_S пишет: Вообще на чём пишут скрипты вроде асм, который я чуть чуть понимаю с какой то примесью чертовщины? Это ассемблероподобный язык, по-моему очень удобно. p.s. Ты бы не писал так много кода, путаница получается. Повнимательней протрассируй скрипт пошагово (команда S), разбери каждую команду (см. Readme). Я не знаю, как тебе помочь, кроме как брать эту прогу и распаковывать ее этим скриптом. Но, как то не хочется этим заниматься. |
|
Создано: 06 февраля 2007 23:49 · Личное сообщение · #4 tar4 фенкс за участие. Я попробую от резать кусок и исполнить его до "железного бряка", посмотрим где это у меня всё встанет. И вот ещё вопрос,- я как то раньше много раз видел если жмёшь ctrl+G и вводишь какую либо функцию API из системных библиотек то сразу попадаем на осмысленный код(например VirtualAlloc), а тут какое то jmp посреди пустого места(смотри предыдущее моё сообщение) ещё кудато. Это так и у тебя с LoadLibraryA и нет ли в этом загвоздки для скрипта(такое странное попадание на код API через переход)? |
|
Создано: 07 февраля 2007 01:15 · Личное сообщение · #5 |
|
Создано: 07 февраля 2007 04:19 · Личное сообщение · #6 |
|
Создано: 07 февраля 2007 07:09 · Личное сообщение · #7 А теперь держимся все за стулья чтоб не свалиться. Я конечно очень извиняюсь, что не решился на это раньше. Так вот несмотря на угрозу получить по шее от начальства я установил на работе мою старенькую олю с CD. Хотя подопытного файла новой модели проги Advanced Archive Password Recovery v.3.01 не было зато была старая 3.0. Прохожу так как писал Bronco до OEP руками снимаю бряк с секции кода проги, запускаю скрипт, задаю чо ему там надо и он как ни в чём не бывало за 5 минут восстанавливает 1B9 спертых аспром функций. Вывод 1: плагины оли ни причём(на работе были теже, что и перед попытками модернизации их количества и качества совместно с Bronco, за что ему отдельный респект). Вывод 2: точно также не виновата и версия сборки Оли(на работе была таже, что и дома да ещё и со старыми настройками ini файла). Вывод 3: намного занимательней первых двух. Это что же получается скрипт глючит из за необычного кернела????????????????????????????????????????????? Поясню на конкретной илюстрации. Ты уж извини tar4 , но не могу удержаться чтобы не привести длинный код того что я увидел на работе при попытке нажать ctrl+G----> LoadLibraryA---->Enter 7C801D77 > 8BFF MOV EDI,EDI------------------------------------------> А мы оказываемся вот тут!!!!!! 7C801D79 55 PUSH EBP 7C801D7A 8BEC MOV EBP,ESP 7C801D7C 837D 08 00 CMP DWORD PTR SS:[EBP+8],0 7C801D80 53 PUSH EBX 7C801D81 56 PUSH ESI 7C801D82 74 14 JE SHORT kernel32.7C801D98 7C801D84 68 C0E0807C PUSH kernel32.7C80E0C0 ; ASCII "twain_32.dll" 7C801D89 FF75 08 PUSH DWORD PTR SS:[EBP+8] 7C801D8C FF15 9C13807C CALL DWORD PTR DS:[<&ntdll._strcmpi>] ; ntdll._stricmp 7C801D92 85C0 TEST EAX,EAX 7C801D94 59 POP ECX 7C801D95 59 POP ECX 7C801D96 74 12 JE SHORT kernel32.7C801DAA 7C801D98 6A 00 PUSH 0 7C801D9A 6A 00 PUSH 0 7C801D9C FF75 08 PUSH DWORD PTR SS:[EBP+8] 7C801D9F E8 ABFFFFFF CALL kernel32.LoadLibraryExA 7C801DA4 5E POP ESI 7C801DA5 5B POP EBX 7C801DA6 5D POP EBP 7C801DA7 C2 0400 RETN 4 --------->Да и RET на который наш железный бряк должен встать видно! Согласись красиво и ясно! А теперь аналогично жмём ctrl+G----> LoadLibraryA---->Enter у меня дома и получаем ту хрень о которой я тебе только, что писал: 7C882FBC 0000 ADD BYTE PTR DS:[EAX],AL 7C882FBE 0000 ADD BYTE PTR DS:[EAX],AL 7C882FC0 0000 ADD BYTE PTR DS:[EAX],AL 7C882FC2 0000 ADD BYTE PTR DS:[EAX],AL 7C882FC4 >- E9 18F0D077 JMP F4591FE1 --------------------->Мы вот здесь и если попробовать 7C882FC9 90 NOP пойти посмотреть по этому адресу 7C882FCA 90 NOP ctrl+G----> F4591FE1---->Enter , то 7C882FCB 90 NOP Оля удивится а куда это мы собралиь 7C882FCC 90 NOP "типа моя втоя не понимает" А теперь самый важный для меня вопрос что это за х-ня и что с этим делать??????????????????????? Не буду же я каждую ночь на работу бегать чтобы со скриптом PE-kill-а там поработать Чего, переустанавливать винду? Так это в нашем городке ещё найти нормальную надо. Кстати как писал ранее она у меня нормальная, это ещё постараться надо чтобы её на уши поставить. Найти бы как то в кернеле тот кусок нормальной LoadLibraryA, который у меня на работе видно неужели этой процедуры в моём кернеле нету? Как искать целый кусок кода, а не FF25 как в статье SergSh? Или также ищется через ctrl+B вставить в строку целый участок кода???????????? |
|
Создано: 07 февраля 2007 09:05 · Личное сообщение · #8 Млин и Diablo дает теже результаты! Короче точно от сборки оли эта хрень не зависит. Млинннннннннннн ЧО ж делать то и переустанавливать винду крайне неохота!!! А нельзя ли вбить в кернел32 всю функцию LoadLibraryA прям в оле(сам не рискну без совета на машине много всего ценного), только подсмотреть предварительно адреса на нормальной машине или снять жёсткий и на другой машине захреначить туда весь кернел32 с нормальной?? Или слетит всё к е-ням!????? Люди а-уууууууууу Чо делать!??????????????????????????????????? |
|
Создано: 07 февраля 2007 19:03 · Личное сообщение · #9 |
|
Создано: 07 февраля 2007 23:49 · Личное сообщение · #10 tar4 фенкс, теперь я хоть знаю что примерно делать, а то вчера вечером просто писец мыслей много, а посоветовать некому и срубить ось неохота по неосторожности. tar4, если мне удастся найти одинаковые оси вплоть то билда то могу я просто на другой машине поменять кернел на нормальный или всё равно крайне опасное занятие для данных и моей оси?????? В осщем что мне грозит? Кстати и другие товарищи по возможности присоединяйтесь, приму любые советы и опыт по такому шаманству с системными библами. У кого, что было, кто как побеждал и т.д.? По числу посещений вижу не одни только tar4 и Bronco сюда заходят. |
|
Создано: 08 февраля 2007 00:57 · Личное сообщение · #11 tar4 посмотри функции, найди различия и т.д. Через пару суток у меня видимо сорвёт крышу, если я попытаюсь скопировать и разобраться что и куда идет в этой части кернела, я немного попробовал сейчас покопировать нужные участки с рабочей(которая на работе kernel32) и ничего непонятного вроде нет обычный asm, но так всего наворочено, то туда, то сюда, то ветвимся, то назад, то вперёд, то прямая адрессация, то косвенная, обычные проги рядом не стояли. Млиннн Версию, размер кернела списал на бумажку, вечером проверю. Так как насчёт вопроса выше??????? |
|
Создано: 08 февраля 2007 03:15 · Поправил: Hellspawn · Личное сообщение · #12 Small_S пишет: 7C882FC4 >- E9 18F0D077 JMP F4591FE1 - бред! выключи весь левый софт! удали антивири и т.д., у тебя что-то хукнуло функу, дело не в кернеле! и хватит флудить по пустому, разберись сначала со своей виндой! з.ы. а вообще чтобы убедиться, запхай длл в дизасм и погляди, что там и как... скорее всего с функой всё будет норм! ----- [nice coder and reverser] |
|
Создано: 08 февраля 2007 08:27 · Личное сообщение · #13 Сначала я по совету tar4 проверил версии и длину кернела32: На работе-версия 5.1.2600.2945 размер 967kb Дома- версия 5.1.2600.2180 размер 966kb. А ведь Hellspawn прав, респектище просто огромный за дельный совет. Экономия по времени от одного предложения а вообще чтобы убедиться, запхай длл в дизасм и погляди, что там и как... -несколько суток. Запихав свой домашний кернел в Иду я нашел там и причём по тому же адресу, что и в кернеле на работе (7C801D79) LoadLibraryA , причём ничуть не отличающуюся(за исключением синтаксиса Иды) от того нормального кода, что приведён был выше для кернела на работе. Вот только врятли это касперыч так как я попробовал уж отключить монитор и сканер из контрол-центра, а потом ещё и сам центр выгрузил(ну не может же он выгруженный, в памяти библиотеки курочить?). Сейчас буду другие проги отрубать по одной из TuneUp StartUp Manager |
|
Создано: 08 февраля 2007 08:32 · Личное сообщение · #14 Small_S пишет: Вот только врятли это касперыч так как я попробовал уж отключить монитор и сканер из контрол-центра, а потом ещё и сам центр выгрузил(ну не может же он выгруженный, в памяти библиотеки курочить?). Сейчас буду другие проги отрубать по одной из TuneUp StartUp Manager с этого и надо было начинать всё вырубай, а потом уже отлаживай) ----- [nice coder and reverser] |
|
Создано: 08 февраля 2007 08:39 · Личное сообщение · #15 |
|
Создано: 08 февраля 2007 13:16 · Личное сообщение · #16 Small_S Понятно,а я где то выше говорил,что мне пришлось отключать мониторинг ДкВеба.Невнимательно значит читаешь.В сборке винды не знаю,она у всех почти одна 2600,а сервпаки разные попадались.Но если какая то фигня захучила попробуй в комстроке sfc.exe /scannow - проверить системные файлы (возможно, при этом попросит компакт-диск). Вообще уже месяц флудишь,я бы уже на второй день плюнул и забросил.Терпеливый и упрямый. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 08 февраля 2007 18:05 · Личное сообщение · #17 Bronco фенкс за совет. Сегодня проверю. А ведь преключение к сожалению не исчерпано. Представьте. Касперыч отключен и выгружен, проги отрубил по одной, а затем и все из TuneUp StartUp Manager(ну оставил типа офиса и NVIDIA) и нехрена опять лабуда. Будем пытаться в комстроке sfc.exe /scannow - проверить системные файлы (возможно, при этом попросит компакт-диск). после работы. |
|
Создано: 09 февраля 2007 16:05 · Личное сообщение · #18 Так, для тех кто такой же как и я свежие новости с места сражения с неизвестной хренью хучащей некоторые API-функции. Несмотря на то что антивири ничего не видят, нет никаких подозрительных прог в загрузке(да и просто на диске прорядил), библа кернел32 вела себя также. Но решение, правда не очень хорошее было найдено. Поскольку в системе много ценного и сильный бардак, то переустанавливать винду не стал, но воспользовался программой " Microsoft virtual PC 2004". Мне хватило 35минут чтобы не только поставить XP, но и Олю. После чего, как говорили в старые времена, с чувством глубочайшего удовлетворения пронаблюдал в окне CPU после ctrl+G----> LoadLibraryA---->Enter необходимую мне и скрипту- LoadLibraryA по нормальному адресу 7C801D77 и в нормальном виде. К сожалению sfc.exe по совету Bronco Но если какая то фигня захучила попробуй в комстроке sfc.exe /scannow - проверить системные файлы (возможно, при этом попросит компакт-диск). проверять то проверяет, но молча закрывается и положения не меняет. Сейчас уже очень поздно(почти утро) завтра, а точнее сегодня проверю работу скрипта под виртуальной XP. Среди недостатков- помедленнее работает чем родная винда, не видит флешек, а только CD и DVD, и собственный виртуальный диск C. |
|
Создано: 11 февраля 2007 04:29 · Личное сообщение · #19 Всем привет! Наконец могу сообщить, что наши совместный усилия дали результат,- получен старт распакованной программы версии 3.01! Однако очень много не вполне понятного. Начну с технического вопроса. Скорее всего он к Bronco. Я бы завершил работу ещё вчера, если бы при исправлении адресов вызова в окне CPU случайно не нажал второй раз на интер у меня повторило строку 2-й раз, хотел назад исправить, а что написано было не помню. Искал искал где же кнопка или опция отмены последнего сделанного исправления(ну как в word или excel)-мож в шары долблюсь? 1 Существует ли опция отмены последнего сделанного изменения в оле или может плагин какой нужно поставить? Далее IAT после работы скрипта поправлял руками в 9 местах(там где функции из разных библ без нулей склеились), а не как было у Bronco(3 места). Да и ещё если кто также извращённо из под виртуальной винды будет работать для выхода к месту откуда надо будет ставить бряк на секцию кода(когда идём к OEP) нужно уже не 33-35 раз жать Shift+F9, а 57 раз! Кроме того убирал второе слово заполненное нулями по месту где до работы скрипта был конец IAT и поставил туда одну из склеенных функций(чтоб это место было без признаков конца IAT, а с признаками границы между библами). Ещё поставил два слова нулей(признак конца IAT) по адресу 0045CB54, где была видна последняя API-функция comdlg32.GetOpenFileNameA и далее огромная пустота с мусором. А также поставил два слова с нулями по адресам 0045C540 и 0045C544 - как признак начала IAT(у нас она начинается по 0045C548). Снял дамп PE- тулсом. В импректе задал начало проги- 0002A910, IAT AutoSearch, размер IAT- 00000610, Get imports. Далее Trace Level1 и плагины : ASPR_1.23_ImpREC_Plugin ASProtect 1.22 ASProtect 1.2x Fix Dump. Запускаем прогу и фигвам А рабочий дамп получается только если через Get API Calls и ещё размер IAT выставить к примеру 1000 2 Bronco у тебя также конец после работы скрипта у IAT был на функе 0045CB54 comdlg32.GetOpenFileNameA Чё то не пойму неправильно конец задал чтоли, дык там мусор дальше. ХОтя у меня в каких то бешенных адресах(типа 5С4633, - левое число для примера) при Get API Calls плагины определили(немного но несколько функций определили)??????????????? |
|
Создано: 11 февраля 2007 10:39 · Личное сообщение · #20 Всем, кто знает. Прикрепляю к сообщению скрин моей ошибки+ лог который сама прога повела. Ошибка возникает только если попытаться задать исходный файл для атаки. А так все переключения и окна работают после распаковки. Пишет: BRIEF ERROR DESCRIPTION Error code : c0000005 Address : 0045a2fe Description : Attemt to write data at address 00000000. После китайского скрипта смотрел по тому же адресу(у меня эта версия уже давно китайцем распакованная см.стр1,2 этого топика)так там тоже нули после 0045a2fe, так там ничего не вылетает и окно само не пустое куда задавать адрес архива. Я конечно буду смотреть и думать чего ему ещё надо(или где ещё при распаковке ошибся), но может кто раньше подскажет. Фенкс заранее. Обидно ведь уже практически умею и распаковал , а тут ещё чего то. ece3_11.02.2007_CRACKLAB.rU.tgz - по моей ошибке.rar |
|
Создано: 11 февраля 2007 20:07 · Личное сообщение · #21 Small_S Всё есть,внимательней меню всплывающее смотри.может и в 9 месиах,я не считал.Дамп снимал Олей.Вернее плагином для неё.это ASPR_1.23_ImpREC_Plugin нормальный остальные скинь. Всё правильно делаешь,через оер имрек меньше импорта выведет,выставил размер и жетимпорт.потом шоуинвалид и кут левые. конец иат уже не помню,давно снёс эту лабуду.но раз стартонула значит закрывай топ.И флуда поменьше.никто всё равно сверять не будет адреса. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 12 февраля 2007 00:13 · Личное сообщение · #22 Bronco фенкс. На но раз стартонула значит закрывай топ.И флуда поменьше. отвечаю. Цель топа была не только и не столько стартануть данную прогу и даже не только научиться распаковывать ASProtect 2.12 SKE, это не только для меня ,поэтому будем карабкаться выше и скоро возмём что нить сложнее. Модераторам если содержание статьи вышло за рамки названия топа , то предлагаю переименовать его в типа "Учимся распаковке ASProtect от 1.23 RC4 к 2.12 SKE на примере Advanced Archive Password Recovery v.3.00" Раздел в котором статья по вашему усмотрению, да и название можете свободно корректировать. Всем если вам известна какая либо прога запакованная версией 2.12 SKE без VM, но с защитой импорта(так кажется называется, то что мы здесь распаковывали), то киньте ссыль! Нада ещё пройтись раз по этой версии, но с другой прогой. Зы.. предвижу ответы типа запакуй калькулятор этой версией и тренируйся. Во первых на других прогах интересней всегда, во вторых диска с краклаба ещё нет и этой версии ASPr-a тоже нет. |
|
Создано: 15 февраля 2007 00:40 · Личное сообщение · #23 Привет всем. По причине по которой падала прога. Очень быстро установил, что она падает по адресу 0045A2F8, а там: 0045A2E0 $- FF25 CCD18000 JMP DWORD PTR DS:[<&kernel32.ReadFile>] ; kernel32.ReadFile 0045A2E6 $- FF25 D0D08000 JMP DWORD PTR DS:[<&kernel32.CreateFileA>] ; kernel32.CreateFileA 0045A2EC $- FF25 4CD28000 JMP DWORD PTR DS:[<&user32.CharToOemA>] ; user32.CharToOemA 0045A2F2 $ FF15 64D58000 CALL DWORD PTR DS:[<&comdlg32.GetSaveFileNameA>>; |GetSaveFileNameA 0045A2F8 $ FF15 68D58000 CALL DWORD PTR DS:[<&comdlg32.GetOpenFileNameA>>; GetOpenFileNameA Аналогичный кусок распакованный китайцем выглядит так: 0045A2E0 $- FF25 CCD18000 JMP DWORD PTR DS:[<&kernel32.ReadFile>] ; kernel32.ReadFile 0045A2E6 $- FF25 D0D08000 JMP DWORD PTR DS:[<&kernel32.CreateFileA>] ; kernel32.CreateFileA 0045A2EC $- FF25 4CD28000 JMP DWORD PTR DS:[<&user32.CharToOemA>] ; user32.CharToOemA 0045A2F2 $ FF15 64D58000 CALL DWORD PTR DS:[<&comdlg32.GetSaveFileNameA>>; |GetSaveFileNameA 0045A2F8 $ FF15 68D58000 JMP DWORD PTR DS:[<&comdlg32.GetOpenFileNameA>>; GetOpenFileNameA Попытка изменить калл на джеемпе прям в оле приводила к ошибке "Unable to locate data in executable file" Однако я просто пошёл в hex -вьювер и поменял всё там и прога стала выводить окно выбора файла и соответственно перестала падать. С этим всё ясно, но вот причина приводящая к такому, ведь там не в одной строке вместо джампера стоит калл, если верить китайцу, то таких строк несколько десятков(после китайца там на несколько сотен строк только JMP). Просто другие части проги не так восприимчивы к различной адресации API. До сих пор не понимаю, кто знает поясните, это баг скрипта чтоли? Я пробовал проверять несколько предположений, но во всех случаях получалось тоже самое: 1 Думал под виртуальной виндой скрипт себя плохо чувствует, но на работе тоже самое получилось. 2 Пробовал запускать скрипт 2 раза,- первый по каллам, второй раз по джеемпе, но второй раз скрипт работает 1 секунду с нулевым результатом. 3 Пробовал играть с настройками импректа и его плагинами, тоже самое. Попутно обнаружил, что рабочая прога получается и если задать точный размер IAT(у меня 610, а не 1000 как получалось ранее). Остаётся только сделать вывод(для себя и таких же новичков), что если прога падает после распаковки где то в адресах указателей на таблицу импорта, то наверняка нужно руками поменять кое где с JMP на Call или наоборот в этих указателях.(правильно кажется высказал) По этой проге видимо всё(и по восстановлению импорта), после некоторого перерыва(скоро сессия) наверно нужно поучиться работе с виртуальной машиной по какой нить другой статье. Из предыдущего моего поста предложения модераторам и всем остаются в силе. |
|
Создано: 15 февраля 2007 06:52 · Личное сообщение · #24 Хочу высказаться в поддержку топика Small_S. Конечно - понятно что это много флуда, но для меня - как для нуба это читается как детекив. Интересно какие препятствия и спотокновения на ровном месте может встретить нуб на своём пути изучения, и как он их преодлевает. И ведь преодлевает-же. Как Bronco сказал - "Терпериливый и упрямый". Way to go Small_S! Обязательно пиши о своих дольшейших похождениях и результатах. |
|
Создано: 16 февраля 2007 10:11 · Поправил: Small_S · Личное сообщение · #25 Bumbergan благодарю за поддержку, давно вижу по количеству просмотров, что довольно много народа посещает топ, но молча. Сам ещё с весны 2006 молча по краклабу ходил и даже в декабре-январе когда реверсить начал долго не решался, давно чую, что надо нечто такое ибо пропасть между мастерами и новичками огромна, мостов мало. Сорри перед всеми за флуд! К делу. |
|
Создано: 16 февраля 2007 12:13 · Поправил: Talula · Личное сообщение · #26 Small_S, ну, что? Теперь пора вместе со всеми, кто помогал, писать статью... У меня тоже траблы с распаковкой 2 аспра... Стриппер берёт далеко не всё, а руками не всегда получается (я бы даже сказал очень редко получается)... И ни одной статьи не нашёл такой, в которой можно было бы что-то универсальное найти (ну, что бы к другим прогам применить)... Так что, давай! =))) Или давайте... =) ----- Do Not Get Mad Get Money! ;) |
|
Создано: 17 февраля 2007 02:03 · Личное сообщение · #27 Talula лично мне ещё рановато стотьи писать, уж сорри, может где то летом я настолько освоюсь, что сделаю попытку, а пока займёмся учёбой по теме : изучение работы виртуальной машины в ASProtect-aх версий 2.хх и как её забодать. А учиться буду пытаться на статье того же автора SergSh "Распаковка ASProtect 2.13 на примере Icolover.exe." Здесь не опечатка так у этой проги exe называется а ссылка на их сайт по которому уже скачал современную версию 4.16 будет www.iconutils.com/iconlover/iconlove.exe SergSh у тебя в rar-статье что за версия этого прота рассматривается, на сайте то последняя от 5.02.07, лучше всё таки начать с той, по которой статья писалась. У версии 4.16 PEID определяет ASProtect 2.1x SKE -> Alexey Solodovnikov в статье говорится об 2.13 Всем за постоянную скорость в обучении по этой статье не ручаюсь по мере свободного времени (причина смотри выше). |
|
Создано: 17 февраля 2007 07:49 · Личное сообщение · #28 |
|
Создано: 17 февраля 2007 11:44 · Личное сообщение · #29 SergSh фенкс за подопытного. Хм. версия 3.0 так примерно и думал, судя по статье SergSh она вышла 1.11.05, судя по хистори из новой версии обновления с лета по 28 ноября не было. Ну да к делу. 1. У меня в ручную до последнего исключения Shift+F9 34 раза - практически стандарт. 2. У меня ложное OEP- 004071C0 E8 3B8ECD00 CALL 010E0000,- как в статье SergSh, а в стеке 0012FFA0 010C0CA5 RETURN to 010C0CA5 from 011C0000 , -данный адрес действительно находится в первом регионе выделенной памяти размером 3000, только адреса самих секций не как в статье Memory map, Address=010C0000 Size=00003000 (12288.) 3. После перезагрузки проги и после последнего исключения с установкой F2 на адрес перехода к ложному OEP и после Shift+F9, снимаем этот бряк,а в ALT+M бряк в моём случае на 011C0000. Выпадаем в 010C028F 55 PUSH EBP - VOEP как у SergSh с поправкой на другой адрес 010C0290 E9 5C0E0000 JMP 010C10F1 начала секции. 010C0295 33EF XOR EBP,EDI 010C0297 8DAC07 DC014500 LEA EBP,DWORD PTR DS:[EDI+EAX+4501DC] 010C029E 2E:EB 01 JMP SHORT 010C02A2 ; Superfluous prefix 010C02A1 C7 ??? ; Unknown command 4.Для моих адресов - последнего исключения (00E7A76A) и VOEP (0010C028F) скрипт для прохождения к VOEP примет вид: var addr // Вводим переменную addr var voep // Вводим переменную voep mov voep, 0010C028F // Присваиваем значение нашего voep mov addr,00E7A76A // Присваиваем значение последнего исключения eoe Label // Перемещение к метке Label при исключении run // Запускаем программу Label: cmp eip,addr // Произошло исключение, сравниваем его адрес с нашим je rrr // Если адреса совпали переходим esto // Иначе продолжаем выполнение программы (SHIFT+F9) rrr: add addr, 43 // Добавляем к текущему адресу 43 bp addr // Устанавливаем брейкпоинт почти на переход к ложной OEP esto bc addr // Убираем брейкпоинт bp voep run bp voep ret и нужно сказать отлично работает. 5. Бинарный поиск строки FF25 начиная с адреса 00401000 дает тот же, что у SergSh первый переходник на таблицу импорта: 0040126C - FF25 D4126E00 JMP DWORD PTR DS:[6E12D4] ; kernel32.CloseHandle Соответственно начало IAT=006E1220 006E1220 7C91188A Љ‘| ntdll.RtlDeleteCriticalSection А конец IAT=006E1B08 всё как в статье SergSh 006E1B04 76C86F01 oИv imagehlp.CheckSumMappedFile 006E1B08 00000000 .... 6. При поиске всех вызовов функций видим первую Address=0040127C Disassembly=CALL 010E0000. После выставления F2 на ближайший RET в функции VirtualAlloc(и Nev origin here на нашей 0040127C) видим, что как и в первой статье другое количество нажатий F9 до срабатывания точки останова и появления в стеке по адресу ESP+40 искомой функции. В моём случае 1 раз жмём F9 и видим $+40 > 7C811069 RETURN to kernel32.GetFileType там, а затем ещё раз F9 и снова как и в первой статье искомая функция находится не по ESP+2С, а по ESP+40 -плохой признак скорее всего родной(я имею в виду от этой статьи скрипт) не будет работать , к тому же после ещё 2х нажатий F2 приложение вылетает с сообщением об системной ошибке и терменейтом. Всё на сегодня хоре... |
|
Создано: 18 февраля 2007 01:57 · Личное сообщение · #30 Всем за строку насчёт вылета и терменейта по пункту 6 сорри, сам запарился и сет мемори бреак он ассес забыл поставить всё нормально в ручную как и в прошлой статье 3р F9 и мы в первый раз брякаемся по ESP+40 наша функция ещё раз F9 и она снова там ещё пару раз F9 и мы снова в основном теле программы. На счёт скрипта по восстановлению IAT приятная неожиданность понадобилось только подправить строки: add $RESULT,19 // Определяем адрес команды RET у него было 17 mov ickcall,010E0000 // Искомая процедура у него искомая 01130000 mov r,010E0000 // Искомая процедура у него искомая 01130000 всё остальное как у него, причём в первый раз думая, что работать не будет пробовал менять адреса по которым в стеке определяются процедуры, но вылетел с ошибкой типа обратитесь в какой то эпсилон. Закрыл её и увидел, что по брякам на VirtualAlloc-вском RET-е каким то сказочным образом по нормальным смещениям 40 и 2С появляется искомая функция. Мистика , но приятно не понадобится по 5 часов под виртуал XP импорт восстанавливать(там скрипт и вообще всё чертовски медленно работает)! После двух кругов прохождения скрипта в поисковике не определились как и у SergSh 2функции: 004071B8 E8 438ECD00 CALL 010E0000 <---------------------------------- 004071BD 41 INC ECX 004071BE 8BC0 MOV EAX,EAX 004071C0 E8 3B8ECD00 CALL 010E0000 <---------------------------------- 004071C5 B4 8B MOV AH,8B 004071C7 C0FF 25 SAR BH,25 ; Shift constant out of range 1..31 Однако вот при повторном поиске больше аспровых функций вида 010E0000 мы не находим, перешёл по указанным у SergSh адресам двух неопределённых функций однако там переходники определены: 0040733C - FF25 E01B6E00 JMP DWORD PTR DS:[6E1BE0] ; advapi32.LookupPrivilegeValueA 00407342 8BC0 MOV EAX,EAX 00407344 - FF25 E81B6E00 JMP DWORD PTR DS:[6E1BE8] ; advapi32.OpenProcessToken 0040734A 8BC0 MOV EAX,EAX У нас новая IAT заканчивается не по адресу 006Е1DF4, а по 006E1E04 006E1DF8 7CA13AB1 ±:Ў| shell32.SHGetPathFromIDListA 006E1DFC 00000000 .... 006E1E00 7C9E9883 ѓћ| shell32.SHGetSpecialFolderLocation 006E1E04 EB1A9C61 aњл <---------------------------здесь я набью нулей на всякий случай 006E1E08 E7938217 ‚“з <-------------------------- и здесь тоже и ещё на всякий случай уберу один DWORD c нулями по адресу бывшего окончания таблицы IAT, а то там два DWORD-а, как я понял так обозначается конец IAT, а у нас там не конец: 006E1B08 FAFAFAFA ъъъъ 006E1B0C 00000000 .... Далее всё по написанному только не понятно 2 момента. Если кто из стариков знает пишем не ленимся ибо большое дело здесь делаем, медведей типа меня учим на велосипеде кататься : 1 SergSh пишет в статье вбиваем .... Размер IAT RVA=002E121C, - это откуда известно, что ОЕР=0002B6120 откуда ясно в окне OllyDump это писано, а вот IAT RVA это где???????????????????? 2 Что то у меня в окне импректа данные о размерах IAT(у меня больше) и количестве функций(у меня меньше)отличаются от тех, что в статье SergSh. Свой скрин этого дела приаттачил к посту, как и вариант нормально отработавшего у меня скрипта SergSh с некоторыми изменениями. С импортом вроде всё. d18b_18.02.2007_CRACKLAB.rU.tgz - по вопросу.rar |
|
Создано: 18 февраля 2007 03:15 · Личное сообщение · #31 Small_S пишет: IAT RVA это где обычно начало импорта определяется на глаз т.е. ищем людую функу в проге, потом в hex dump глядим: (надо щёлкнуть правой кнопкой на окне hex dump и выбрать Long -> Address with ASCII dump) 00401426 00402030 0 @. <&user32.EndDialog> ... 00401432 00402024 $ @. <&user32.LoadIconA> и листаем вверх пока адресса не кончатся.... ----- [nice coder and reverser] |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >> |
eXeL@B —› Софт, инструменты —› Распаковка AsProtect на примерах |