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 с нуля. Реверсил даже в новогоднюю ночь. Для меня это очень важно(научиться распаковывать)! |
|
Создано: 07 мая 2007 22:09 · Личное сообщение · #2 Уф всё-ё-ё разобрался. Оказалось, что eoe весьма глючный, и видимо, весьма нежный оператор как только его убрал и чуть подправил скрипт SergSh-а так сразу и скрипт пошёл, и скорее чем первоначальный вариант на iconlover-ре пошёл(проходит где то за секунду, на глаз видно, что быстрее).Вот мой подправленный вариант(адреса разумеется мои, кто будет использовать у себя вставьте свои): var addr//------------------------------Вводим переменную addr var voep//------------------------------Вводим переменную voep mov voep, 00E4030D//--------------Присваиваем значение нашего voep mov addr, 00BCA76A//--------------Присваиваем значение последнего исключения run//------------------------------------Запускаем программу Label://--------------------------------Задаём первую метку в которой будут циклится исключения esto //---------------------------------SHIFT+F9 cmp eip,addr//------------------------Произошло исключение, сравниваем его адрес с нашим je rrr//----------------------------------Если адреса совпали переходим jne Label//-----------------------------Иначе(не совпали) продолжаем крутиться на Label rrr://------------------------------------на второй метке действуем после последнего исключения add addr, 46//------------------------Добавляем к текущему адресу 46 (00BCA7B0-00BCA76A) bp addr//-------------------------------Устанавливаем брейкпоинт на 00ЕЕА7АD esto//-----------------------------------SHIFT+F9 bc addr//-------------------------------Снимаем брейкпоинт на 00ЕЕА7АD bp voep//-------------------------------Устанавливаем брейкпоинт на 00E4030D esto//------------------------------------SHIFT+F9 Всё мы на месте! ret Кому интересны проявления бага с оператором eoe ,- в аттаче txt что то типа рабочего черновика. f74e_07.05.2007_CRACKLAB.rU.tgz - Адаптируем скрипт SergSh для прохождения к VOEP к этой проге.txt |
|
Создано: 08 мая 2007 20:41 · Личное сообщение · #3 Привет всем! Решил немного ещё подправить скрипт SergSh и заодно потренироваться в скрипт языке. Подправка пока сделана следующая: скрипту теперь не надо адреса последнего исключения перед прыжком на выделенную память,- он его ищет сам и независимо от числа исключений. Остаётся задать только адрес VOEP. Скрипт работает и на фронтэксперте и на иконловере, и я думаю будет работать на всех ASProtect 2.1x SKE c VM, знай себе только задавай адрес VOEP. Я понимаю, что всё уже давно изобретено до меня и что это пока ещё примитивно, но учиться на чём то надо, кроме того, всё работает, причём быстро. Сорри за флуд. Скрипт принял вид: см. аттач Возник вопрос к ветеранам кракерского фронта. Там у меня берется опкод команды по заданному адресу затем из строкового формата я его пытаюсь командой atoi перевести в целое число и сравнить с численной переменной 751D(как вы поняли это JMP который ищем), atoi берет только 2байта, как я понял. Поэтому пришлось оставить только 75 в переменной. Правда работает, да и можно думаю переменную задать тоже как строку(и нифига не преобразовывать), но на будущее хотелось бы выяснить,- ничего нельзя сделать чтоб подлинее строку в число преобразовывало? И ещё вопрос между EXEC/ENDE можно всё что угодно творить на Ассемблере или ограниченно? Что то в редми переведённом какие то не очень внятные примеры ну вот(мало о чём): exec push 0 call ExitProcess ende а там загнать все регистры общего назначения в стек и потом химичить сколько душе угодно, а потом вернуть всё из стека и передать каким то переменным что нибудь можно? Или там поканкатенировать строки погонять там из источника в приёмник средствами ассеблера можно? Я понимаю сейчас советы начнутся типа пробуй. ИМХО лучше узнать сразу от знающих людей чем неделю тыкаться вслепую. Дальше попробую отучить скрипт и от второго задаваемого адреса(в выделенной памяти-VOEP) пусть сам ищет. 651b_08.05.2007_CRACKLAB.rU.tgz - Мой скрипт для прохода к VOEP аналог готов2.txt |
|
Создано: 11 мая 2007 21:06 · Личное сообщение · #4 Привет всем. Наконец могу представить на всеобщее обозрение мой первый VOEP-OEPфайендер для версии ASProtect 2.1x SKE. По крайней мере мне хочется надеяться, что он также легко и быстро находит VOEP как в Фонтэксперте и Иконловере(где есть VM), а также OEP, как в Адвенсед пассворд рековери и в других прогах(где нет VM). Сам скрипт в аттаче. В нём 78 строк поэтому я только дам небольшие общие коментарии, а тот, кто захочет познакомиться с ним детально, сможет скачав аттач разобраться, так как коментарии там чуть ли не построчные. Принцип нахождения последнего джеемпе был ясен из предыдущего скрипта(переделанный скрипт SergSh) Принцип нахождения блока виртуальной памяти, где размещается VM, основан на том же способе, что обрисован у SergSh, да и у всех других авторов(человек этот блок находит по внешним признакам). Скрипт тоже ищет его по признакам: 1 Данный блок стоит в более старших адресах чем прога, после большого количества (последовательности) одноразмерных виртуальных блоков(по 1000 байт). 2 Он всегда больше 1000б, хотя всегда разного размера. 3 После него обязательно идёт второй блок разного размера, но всегда больший чем 1000б 4 Эта пара блоков не встречается выше адресов 02000000(если до этого адреса скрипт ничего не нашёл, то он считает, что в данном случае VM нет и OEP находится постановкой брекпоинта на чтение на первую секцию кода проги 00401000). Опытным ветеранам бросится в глаза, что для отображения адреса во время прохождения исключений используется одна, а для задания адреса блока памяти другая переменная. Вначале кодинга я разделил их, думая, что это может пригодиться как нибудь, однако не пригодилось. Поэтому ревнители лишних переменных и избыточного кода смело могут менять во всех строках переменную addr на baz ну или наоборот, кому, что нравиться и удалить другую. В силу малого опыта кодинга не могу гарантировать, что алгоритм моего скрипта оптимален, но я старался и прошу тех кто поопытнее посмотреть и попробовать скрипт на других прогах под ASProtect 2.1x SKE. Если это не трудно выскажите свои замечания и укажите что в таком и в таком случае, лучше поступать так то и так то. Ибо ну как я могу научиться хорошо писать скрипты, если кто то более опытный хотя бы по началу не укажет на допущенные ошибки. Тех, кто как и я имеет мало опыта прошу хотя бы попробовать скрипт на других прогах под ASProtect 2.1x SKE и если он где то неправильно ищет VOEP, то не сочтите за труд скинуть дамп памяти (видимый по Alt+M) и название проги, а также откуда её качали. И вообще выскажитесь хоть кто то. А то посещаемость темы мощная и полный молчок, как в вакууме! 4044_11.05.2007_CRACKLAB.rU.tgz - Мой скрипт для поиска и прохода к VOEP у ASProtect 2.1x SKE готов3.txt |
|
Создано: 12 мая 2007 15:55 · Личное сообщение · #5 Привет всем! После скачивания и проверки своего скрипта на проге Delphi and C++Builder Decompiler (она сейчас висит в запросах на взлом) понял, что скрипт плохо ищет последний джеемпе, потому как три проги на которых я разрабатывал его версии 2.11(там расстояние от последнего исключения до джеемпе 46), а эта 2.19(соответственно 47). Исходя из этого полностью изменил принцип поиска "последнего" джеемпе, теперь скрипт его ищет(по опкоду 75 1D) от самого исключения до смещения +49. Новый скрипт работает хорошо на 4-х доступных прогах(правда чуть чуть медленнее предыдущего). Млинн! ну поиспытывайте кто нибудь. Мож кто советы даст, может ещё в других 2.1х другие смещения джеемпе или ещё какие приколы с размещением VM?? Тема нужна или нет!? 709a_12.05.2007_CRACKLAB.rU.tgz - Мой скрипт для поиска и прохода к VOEP у ASProtect 2.1x SKE готов4.txt |
|
Создано: 12 мая 2007 23:30 · Личное сообщение · #6 Немного поторопился приаттачить скрипт. Сорри! Попробовал его на ещё одной проге под ASProtect 2.00 registered и увидел там смещение джеемпе на 49 от последнего исключения, поэтому у тех кто будет крутить данный скрипт на версии ASProtect 2.00 registered сразу ставте переменную otstup 50 или больше и всё станет о'кей - будет работать и на этой версии. Вообще же с VOEP фаиндером заканчиваю итак уже берёт от 2.00 до 2.19 SKE. К тому же к точке входа все привыкли ходить руками, видимо поэтому интереса к этому скрипту со стороны нет. Теперь поработаю над следующими словами, написанными PE-kill-ом на 6 стр. этой темы: Далее, мой скрипт по ИАТ работает некорректно т.к. тогда я не знал что в проге могут быть как call так и jmp. И возможно что даже удасться разобраться и подправить.(надеюсь маэстро не обидится) |
|
Создано: 15 мая 2007 04:24 · Личное сообщение · #7 Привет всем. Кратко о положении дел на фронте. 1.Решил, что скрипт PE_kill-а тоже должен сам искать начало и конец IAT, причём корректно. Ну найти скриптом область в которой IAT это легко, а вот с критериями начала-конца похуже. Была идея воспользоваться методом PE_kill-а и обнулить содержимое области где будет IAT(заполнить нулями) ещё до работы ASP-ra, для чего предполагалось внести изменения в VOEP-фаиндер. Там тоже довольно легко можно было определить область в которой в будущем будет IAT. Ну а потом в скрипте по восстановлению признак до нули, после нули,- вобщем понятно думаю. Но к сожалению нули в начале спасают, только в Фонтэксперте, в Адвенсед пассворд рековери все равно секция(может быть даже специально)забивается мусором во время работы аспра. Понятно, что есть и вызовы, но и мусора полно. Конечно есть идея и всё равно определю скриптом начало и конец, но пока не успел. 2. Одновременно почистил и пытаюсь разобраться с универсальной функцией, которая вызывается вместо переходника на IAT для возможного использования её кода совместно с инжекцией(в скрипте PE_kill-а). |
|
Создано: 16 мая 2007 21:32 · Поправил: Small_S · Личное сообщение · #8 Привет всем! Последние новости такие. 1. В полной мере насладиться новой версией плага ODbgScript v1.53.3 VC6 к сожалению не удастся. При попытках поработать в нём со скриптом PE_kill-а скрипт вылетает вместе с Олей с двумя сообщениями на предмет отправки дяде Биллу этой сногшибательной новости. Разбираться что там нет тямы, сил, времени и т.д. Вылетает на строке: 69 find aspr_call,#EB01#, после нескольких прогонов по циклу. В 1.48 такого нет. Видел ссылку на 1.54 ещё не качал, не пробовал. 2.Всё свободное, да и рабочее время (наполовину) потратил на доработку алгоритма проверки какой переход спёрт в IAT(кэлл или джампер). Сумел учесть любое пушевание(косвенное, с регистра, числа-ворд, даблворд) перед кэллом(если тогда кэлл). Из 441 перехода в тестируемой Эдвенсед пассворд рековери скрипт неправильно определяет 10 лишних джампов(недоопределение кэллов). Пока бессилен перед конструкциями типа- mov ebx, ecx------------Это по кодам далеко не пуш(не-е ebx можно забить в скрипт, только вдруг в другом call WinApi ---------------месте или другой проге возможна обратная конструкция) mov ebx, ecx---------- и скрипт полетел. Хочется сделать его универсальным. Вся проблемма в том, что я jmp WinApi------------ не могу пока допереть как сам ASPr разбирается что будет келом, а что джампером. Я уже пробовал один вечер штурмовать переходник, но тямы не хватает. В общем уже столько времени и сил потрачено, что будет жалко отступить, - мусолить буду до тех пор пока не сделаю чтобы само определялось с границами( наверное и чтобы чистило), чтобы правильно определяло келл это или джамп в любой проге хоть Делфи, хоть СИ, ещё и надо потренироваться по инжекции(мне очень понравилось, как там внедрённый код в секции заголовка у PE_kill-а быстро шурует) |
|
Создано: 17 мая 2007 21:50 · Личное сообщение · #9 Привет всем. По поводу вчерашней ошибки скрипта. У всех трёх последних версий одно и тоже(и у 1.55.3.VC6). Скрипт вылетает с Олей(в 1.53.3) поскольку входит в бесконечный цикл(и кружит у 1.54 и 1.55), причиной которому служит ненормальное размещение первого блока инжекционного кода: mov eip,scan_start sub eip,200------------------------------------------Здесь нифига не саб, а так и останется 00401000 mov [eip],#60413BCA73138039E875F68B410103C183C0056683F80075E861# sto из за чего не может обработать первый найденный аспровый кэлл. Уж и не знаю специально ли так сделано или это баг, но в версии выше 1.48(1.49,1.50 у меня нету) EIP нельзя переносить в секцию PE-заголовка. Можно конечно инжектировать в конец секции кода, но фиг его знает будет ли там место в каждой проге,- в Адвенсед пассворд рековери есть. Короче PE-kill не зря туда инжектировал видимо там в любой проге 200байт всегда в конце есть. |
|
Создано: 21 мая 2007 04:29 · Личное сообщение · #10 Привет всем. Кратко перечислю новости. 1.Удалось ещё более локализовать ошибку. Она из-за неисполнения оператора sub. Если провести вычитание eip как нибудь по другому(например mov eip, eip - 200)то код начинает инжектироваться в то место куда хотел PE_kill. 2.С момента первой статьи SergSh успел подзабыть признак по которому он отличал в своём скрипте кэлл от джампера. Он это делал по смещению адреса аспровой функции, замещающей переход в IAT после ее выполнения аспром на 1 байт. Вчера утром во первых вспомнил это, во вторых увидел, что будет кэллом первоначально выглядит 2E:E8 XXXXXXXX, а то что будет джампером E8 XXXXXXXX. Вот на этих то 2E и удаётся без ошибок определять тип будущего перехода(по крайней мере в Адвенседе скрипт не делает ни одной ошибки). Буду ещё проверять на других прогах везде ли есть такое отличие или нет. 3. Копание в переходнике и дальнейшем коде после показало много интересного, в смысле понимания того как аспр эмулирует переход. Может для кого это обыденность, но меня удивило несколько моментов. а) Аспр с первого переходника знает сколько всего таких переходов будет. б) Аспр не просто знает что всего переходов например 1B9, а ещё и знает какой по счёту от начала загрузки проги он обрабатывает из своих переходников. Он сверяет не больше ли порядковый номер этого переходника чем 1B9. в)Сам участок(кэлл) куда переходим например CALL 00EC0000 почти ничего не делает, лишь немного подготавливает стек(сильно замусорен). Затем в виде конструкции Call EAX уходим в самый большой раздел Аспра(размер 33000, а то и больше)где и происходят основные изменения(он в общем то чистый). г) а выныриваем назад в секцию кода проги вообще из другой области(тоже сильно замусорена),- поэтому и меняется название келла после исполнения переходника. д)Каждый такой переходник требует прогона со всеми вложенными процедурами около 5кб кода!!! Позже выложу кусок журнала наблюдения прохода(самое интересное место). |
|
Создано: 21 мая 2007 09:13 · Личное сообщение · #11 |
|
Создано: 21 мая 2007 16:14 · Личное сообщение · #12 Привет! Вот я тут нашел кучу анпакми с аспром разных версий. Может быть ты про них знаешь, но если нет, то пригодится, наверное. Можешь потестировать свой скриптик. Я тестил на версии 2.1 с минимальной защитой. Чего то у меня не сработало. Вот ссылочки на архивы. В каждом архиве несколько файлов запакованных аспром с разным уровнем защиты. Каждый архив около 0,5 Мб www.tuts4you.com/download.php?view.905 - ASProtect SKE 2.10 www.tuts4you.com/download.php?view.906 - ASProtect SKE 2.11 www.tuts4you.com/download.php?view.907 - ASProtect SKE 2.20 Это я только три ссылки дал. Там же есть такие подборки для многих версий аспра. З.Ы. А вообще, молодец! Я даже завидую. Я с аспром не дружу Пользую либо стриппер, либо лоадеры. |
|
Создано: 21 мая 2007 17:09 · Личное сообщение · #13 Justlink, Sturgeon Обоим спасибо всё пригодится. На коллекцию не налетал как то. А 2.3 пригодитяс позже когда дойду до этой версии. Sturgeon на Я тестил на версии 2.1 с минимальной защитой. Чего то у меня не сработало Пока здесь лежит VOEP и OEP фаиндер. Он не должен распаковывать, а только ищет точку входа виртуальную(если есть VM) или простую(если нет VM) от 2х до 2.19 если нет сюрпризов о которых я не знаю. Сейчас дойду до дома и проверю находит или нет. Скрипт по восстановлению IAT автора PE_kill-а на доработке, если он будет не против, то переработаю недоделки во всех скриптах, которые были приведены в рар-статье и выложу. Ему уже написал. Ну в крайнем случае приведу код своих вставок и поясню. |
|
Создано: 21 мая 2007 19:07 · Личное сообщение · #14 Sturgeon Твоя правда насчёт 2.10 SKE. Ктожь мог знать, что ещё секция кода может быть аж четвёртой по счёту после дата и ресурсов, аналогично в этой версии всего одна секция с VOEP нет второй подряд области памяти(да и высокие адреса). Хотя я 2.0 заряжал(у меня была прога с этой версией) было нормально 2 секции подряд. Зато 2.11SKE порадовал находим точку везде при любых опциях. Ну это не удивительно, на основе этой версии и 2.13 писался скрипт. Всё доработаю со временем(надо как то определять дата это или код, аналогично по каким то сигнам опеределять, что секция одиночна, но всё равно с VOEP). Кстати, кто будет качать 2.1 SKE и смотреть ВНИМАТЕЛЬНО!!! 5 ИЗ 8 УПАКОВАННЫХ КРЯКМИСОВ КАСПЕР ОПРЕДЕЛЯЕТ КАК БАКДОРЫ ВЫНЬ 32. И Я СПОРИТЬ НЕ СТАЛ. |
|
Создано: 21 мая 2007 20:48 · Личное сообщение · #15 Small_S Да чего то и на версиях 2.11 у меня не нашлось ОЕП. Адрес должен быть 4271В0. Руками получается дойти, а скриптом нет. А в анпакми с включеной защитой ОЕП вообще полная жопа. У Pe_killa есть статья по распаковке ASProtect v 2.1, но там у него как то слишком просто нашлось ОЕП. Я так пока и не понял как это сделать. |
|
Создано: 21 мая 2007 23:33 · Личное сообщение · #16 Sturgeon Всё в 2.11 находит смотри аттач. Просто в данном случае перешагивает на 1 байт во всех этих анпакми через OEP. VOEP вообще берёт точно. Причина проста. В тех прогах по которым я писал его сначала выход на jmp в первой секции кода проги, а затем этот джеемпе ведёт на OEP. А тут сразу на OEP. Там не доходило, поэтому добавил. Вот коментарий из скрипта(открой его, пошагово расписал всё будет понятно). esto // SHIFT+F9 sto // F8(обычно если сразу, то мы на джеемпе поэтому F8) bc eip end: // Сообщаем значение VOEP b285_21.05.2007_CRACKLAB.rU.tgz - ASPr 2.11.rar |
|
Создано: 22 мая 2007 00:29 · Личное сообщение · #17 Ну не знаю... У меня для 2.11а не находит ОЕП вообще, а для 2.11ж попадает куда то не туда (см. аттач) Для 2.11ж попробуй руками дойти. То же самое будет или нет? Хотя может у меня с Олькиными настройками что-то 839c_21.05.2007_CRACKLAB.rU.tgz - Безымянный.zip |
|
Создано: 22 мая 2007 04:58 · Поправил: Small_S · Личное сообщение · #18 Sturgeon Скинь пожалуйста для каждого из унпакми состояние памяти по ALT+M(можно в виде txt) на последнем перед запуском исключении или ещё лучше на OEP(если не понял как доходить, то нужно ставить бряк на первую по счёту сначала проги секцию кода на чтение, стоя на джампере после последнего исключения, ну и затем нажать на Shift+F9). Только точно обозначь где от какого унпакми И ещё, на всякий случай, какая у тебя версия плага ODBgScript?(я работаю на 1.48, она показала наибольшую устойчивость). |
|
Создано: 22 мая 2007 09:40 · Личное сообщение · #19 Sturgeon и ещё один очень важный момент. Убери все обработки исключений так как это показано в аттаче. У меня есть подозрение, что у тебя что то из этого включено, как следствие количество исключений другое и самое главное, что после одного из "других" исключений может стоять jmp, который после каждого исключения и ищет скрипт до определённого смещения(50). Как только он найдёт ложный jmp, он начнёт сканировать память и далее два(причём оба хреновые ) сценария. 1Прога без VM, он выскочить на первую секцию кода проги, но когда та ещё не распакована полностью, ясно что это не будет OEP. 2Прога с VM, он найдёт область памяти по признакам и поставит туда бряк на чтение, и запустит прогу, но поскольку этот процесс(распаковки) не завершён, то одному Солодовникову известно в каком месте произойдёт это чтение. 315d_21.05.2007_CRACKLAB.rU.tgz - про эксепшены.doc |
|
Создано: 22 мая 2007 10:13 · Поправил: Sturgeon · Личное сообщение · #20 Я не думаю, что галки в окне исключений влияют на работу скрипта. Он ведь сам соображает где исключение, а где нет. На всякий случай попробовал и так, и так. Сегодня с утра вроде заработало, но опять как то странно. В обоих анпакми скрипт останавливается по одному и тому же адресу 00A207CC. И если в 2.11ж можно сказать, что это типа спертые байты (хотя совсем не похоже), то в 2.11а спертых байт нет, и скрипт по идее должен останавливаться в секции кода. Версии 2.1 вообще пролетает все исключения и запускается файл, т.е. скрипт не показывает никаких сообщений и не останавливается. Че то карта памяти не цепляется. Залил на webfile.ru/1415650 Может еще кто-то тестил скрипт? Если у всех работает нормально, то в чем могут быть проблемы уменя? |
|
Создано: 22 мая 2007 15:02 · Поправил: Small_S · Личное сообщение · #21 Sturgeon Вот та драгоценная иформация, которую я ждал, когда просил всех поиспытывать скрипт Причина такого поведения скрипта у тебя и в скрипте, и в размещении блоков памяти на твоём компе. скрипт проверяет непрерывность серии блоков по 1000б до 2х секций в первой из которых VM. Если он такую серию нашёл и после неё идут 2 секции большего размера, то он считает, что это секция с VM. На моём компе и моих прогах таких случаев не было. В аттаче скрипт с увеличением непрерывности серии блоков по 1000 до 6-ти. Всем больше шести есть у кого то до основных аспровых секций, а не до секций с VM? Основные секции выглядят так: 009E0000 00001000 Priv RWE RWE 009F0000 00043000 Priv RWE RWE Вот здесь самый командный пункт 00A40000 00014000 Priv RW 00A74000 00004000 Priv RW Секции с VM выглядят так 00C40000 00001000 Priv RWE RWE 00C50000 00005000 Priv RWE RWE <---------Вот здесь VOEP! 00C60000 00003000 Priv RWE RWE <img src="img/attach.gif"> <SCRIPT type=text/javascript>dfl("files/","49e8_22.05.2007_CRACKLAB.rU.tgz");< /SCRIPT> - Мой скрипт для поиска и прохода к VOEP у ASProtect 2.1x SKE готов5.txt |
|
Создано: 22 мая 2007 19:42 · Личное сообщение · #22 Че то не видно аттача. Small_S пишет: ричина такого поведения скрипта у тебя и в скрипте, и в размещении блоков памяти на твоём компе. У меня неправильный компьютер? ;) Я пока все ручками пытаюсь... К тебе еще вопрос, как к уже спецу в написании скриптов. Я вот тут не то чтобы сам написал, но украл и честно переделал вот такой скриптеныш: По идее он должен доходить до последнего исключения и останавливаться, но у меня чего то Оля просто подвисает и все. В чем проблема не пойму. Неужели дело только в "глючной" команде еое? run
|
|
Создано: 22 мая 2007 22:54 · Личное сообщение · #23 Sturgeon Сорри, когда поправил пост, аттач вылетел. Дубль два. Сейчас судя по твоей карте памяти всё будет работать правильно. Я к сожалению не спец, ну пытаюсь научиться. Да скорее всего это еое виновата. Отмотай на верх этой страницы топика, там у меня при схожем использовании тоже траблы были. Кстати привыкай. То что у тебя правильно логически скрипт стоит ещё не значит, что он пойдёт. Я всего за 3 недели пока занимаюсь со скриптами уже около 10-ка багов только для 1.48 версии нашёл. То ATOI, то SUB, то EOE,то OPCODE с некоторыми опкодами подглючивает. Так что... У меня неправильный компьютер? Компьютер почти всегда правильный-это людям в кодинге свойственно ошибаться. Просто я ещё очень мало знаю о принципах работы Аспра и увидел в твоей карте памяти другой чем был у меня вариант и дома, и на работе. Он не плохой, не хороший, а именно другой. В том то и смысл, когда куча народу тестит один скрипт, прогу, систему,- чтобы автор знал что бывает в разных условиях и мог как то реагировать. Ну чтож давай вместе рубиться с Аспром, так даже веселей. 0cc1_22.05.2007_CRACKLAB.rU.tgz - Мой скрипт для поиска и прохода к VOEP у ASProtect 2.1x SKE готов5.txt |
|
Создано: 22 мая 2007 23:03 · Личное сообщение · #24 |
|
Создано: 23 мая 2007 00:03 · Личное сообщение · #25 Да, на анпакми теперь работает! Только вот смотри какой файлик я нашел у себя в закромах. Пакован версией 2.11. Твой скрипт не находит в нем ОЕП. Руками я тоже не нашел. И, вообще, непонятная заморочка. После всех исключений, к секции кода нет никаких обращений, а прога запускается хз откуда. Откуда качал не помню. Прямую сылку дать не могу, поэтому приаттачу. (150 кб) Наверное невозможно сделать универсальный скрипт даже для одной версии Аспра. Уж больно хитрая защита. Все таки надо учиться руками, на что ни мозгов, ни времени не хватает у меня А со своим скриптом я разобрался. Только немного по другому ..... je aim esto jmp start ...... вроде работает caa2_22.05.2007_CRACKLAB.rU.tgz - ASProtect 2.11 (Fixing IAT Through Code Injection).rar |
|
Создано: 23 мая 2007 15:31 · Личное сообщение · #26 Sturgeon Посмотрел я этот файл кратко, на работе. Приду домой надо его дать вере, что под DIE. Что то меня терзают смутные сомнения в его версии. Я не встречал из того, что видел в 2.1х вообще такого алго работы прога запускается и работает из выделенного участка памяти в очень высоких адресах. Туда не поставить бряк на чтение, так как это весит Олю, да и в значительной мере систему. Сейчас я не буду заморачиваться этим крякмисом и не только потому что пока идей нет. За те несколько месяцев, что я занимаюсь реверсом я выработал правило: нужно ставить реальные задачи и добивать их до конца. Сейчас стоит задача доработать скрипт по восстановлению IAT, значит нужно дорабатывать. Времени и так не хватает. Кстати, кто нибудь знает где PE_kill? Я написал ему в личку, но что то он молчит который день, да и ника его давно не видно на форуме. Сейчас нужно будет потестить, что я доработаю, но без разрешения автора как то нехорошо выкладывать его же скрипт доработанный каким то новичком, пусть даже и в учебных целях(без каких бы то ни было претензий на новизну и авторство). |
|
Создано: 23 мая 2007 15:36 · Личное сообщение · #27 |
|
Создано: 23 мая 2007 22:35 · Поправил: Small_S · Личное сообщение · #28 Sturgeon не всё таки 2.11 Но всё равно потом. Может я конечно туплю, но с ассемблером мало имел дел. Потому прошу подсказки. Ситуация такая: 00400E23---BB 790E4000----------MOV EBX,ARCHPR.00400E79---------задаю адрес нужного байта в источнике 00400E28---8D33--------------------LEA ESI,DWORD PTR DS:[EBX]-----------связываю этот адрес с ESI 00400E2A---B9 720E4000-------MOV ECX,ARCHPR.00400E72---------задаю адрес в приёмнике где будем менять 00400E2F---26:8D39-------------LEA EDI,DWORD PTR ES:[ECX]----------связываю этот адрес с EDI 00400E32---A4---------------------MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]---по идее здесь меняем. ............... 00400E6E---66:C703 FF15----------MOV WORD PTR DS:[EBX],15FF-----вот приёмник ............... 00400E78---15 25000000 ----------ADC EAX,25-----------------------вот откуда источник Оля в строке состояния на CPU видит оба числа и DS: и ES:, но как начинаем выполнять,то Access violation when writing to [00400E72] Нарушение правил доступа, когда запись в [00400E72] Чего забыл обьявить, задать? Или как надо? Как только ответ получаю сразу первая версия изменённого скрипта, которая уже сама распознаёт и меняет Call или JMP готова. Прошу кто знает как надо не молчим. Не хватало из за какой то мелочи тупить ещё несколько дней. |
|
Создано: 23 мая 2007 23:24 · Личное сообщение · #29 |
|
Создано: 24 мая 2007 04:55 · Личное сообщение · #30 |
|
Создано: 24 мая 2007 05:25 · Личное сообщение · #31 Small_S пишет: 00400E2A---B9 720E4000-------MOV ECX,ARCHPR.00400E72---------задаю адрес в приёмнике где будем менять 00400E2F---26:8D39-------------LEA EDI,DWORD PTR ES:[ECX]----------связываю этот адрес с EDI 00400E32---A4---------------------MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]---по идее В ЕСХ - счетчик. Далее побайтно идт запись из ESI в EDI. В Оле эту запись пройди по F7 (а не F8) и убедись визульно, что запись "проходит". |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 12 . 13 . >> |
eXeL@B —› Софт, инструменты —› Распаковка AsProtect на примерах |