Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Протекторы —› Анализ ASProtect |
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 38 . 39 . >> |
Посл.ответ | Сообщение |
|
Создано: 28 марта 2008 15:30 · Поправил: vnekrilov · Личное сообщение · #1 Я выложил свой первый туториал по анализу ASProtect v2.4 build 12.20 (Анализ подпрограммы эмуляции инструкций.rar http://dump.ru/files/o/o489862518/ ). В этом туториале я подробно описал процесс восстановления эмулированных инструкций типа: Code:
Полный цикл статей по распаковке ASProtect (Актуальная версия 25 декабря 2009): ASProtect_Unpacking_Tutorial_2009-12-25.rar http://rapidshare.com/files/325720799/ASProtect_Unpacking_Tutorial_2009-12-25.rar 7,9 МБ Программы, рассматриваемые в статьях: ASProtect_Unpacking_Apps_2009-12-25.rar http://rapidshare.com/files/325718084/ASProtect_Unpacking_Apps_2009-12-25.rar 22,2 МБ Буду благодарен за критику, замечания, пожелания и отзывы. Скрипты: Текущая рекомендуемая версия ODBGScript [1.78.3]: ecf1_03.06.2010_CRACKLAB.rU.tgz - ODbgScript.dll Последний текущий комплект скриптов [от 19 февраля 2011]: 69ca_18.02.2011_CRACKLAB.rU.tgz - Скрипты для распаковки Asprotect от 19 февраля 2011.rar Статьи по частям: Актуальная версия статей [Последняя - 25.11.2010]: Выпуск 2 0754_29.11.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 1 2844_29.11.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 2 8e06_30.11.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 3 50a0_03.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 4 1b51_05.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 5 0ff8_05.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 5 (продолжение) a182_06.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 6 82b8_15.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 7 74e4_16.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 8 b2e1_17.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 9 532c_18.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 10 76af_20.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 11 fe67_22.12.2009_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 12 079c_20.01.2010_CRACKLAB.rU.tgz - Распаковка ASProtect - Часть 13 8415_03.06.2010_CRACKLAB.rU.tgz - Распаковка Asprotect - Часть 14 0a66_18.02.2011_CRACKLAB.rU.tgz - Распаковка Asprotect - Части 15 и 16 DriEm конвертировал мой цикл статей в формате PDF, который можно скачать по ссылке |
|
Создано: 23 февраля 2011 09:45 · Личное сообщение · #2 |
|
Создано: 17 марта 2011 07:40 · Поправил: vnekrilov · Личное сообщение · #3 |
|
Создано: 19 марта 2011 01:45 · Личное сообщение · #4 |
|
Создано: 19 марта 2011 07:55 · Личное сообщение · #5 |
|
Создано: 20 марта 2011 12:57 · Личное сообщение · #6 |
|
Создано: 20 марта 2011 13:40 · Поправил: vnekrilov · Личное сообщение · #7 stasionok пишет: Скрипт от VolX говорит что unknown Asprotect API VolX уже давно не корректировал свой скрипт. И в его скрипте имеется не совсем корректная обработка APIs Asprotect, которая и вызывает сообщение unknown Asprotect API. Когда я дорабатывал домашнюю бухгалтерию, она не была упакована Asprotect 2.59. Хотя, возможно, автор выложил новую версию этой программы, где и применил последнюю версию этого протектора. Надо будет посмотреть. Желательно найти дистрибутив этой версии протектора, поэтому я и жду, что кто-либо откликнется, и поделится. PS. Да, верно! Последняя версия программы защищена Asprotect 2.59 build 12.08. |
|
Создано: 22 марта 2011 02:13 · Поправил: Konstantin · Личное сообщение · #8 Нашел одну неприятную ошибку в скрипте - Восстановление эмулированных подпрограмм в коде программы. Вот в этом месте лишняя команда STI Code:
а нужно чтобы было так Code:
Из за этого исполняется лишняя команда PUSHAD, и когда далее запускается виртуальная машина для восстановления эмулированных инструкций она получит не корректные данные через стек. |
|
Создано: 22 марта 2011 03:47 · Личное сообщение · #9 |
|
Создано: 22 марта 2011 05:48 · Поправил: vnekrilov · Личное сообщение · #10 При распаковке программы Advanced Find and Replace 6.1 я столкнулся с интересной ошибкой скрипта "Восстановление таблицы IAT и вызовов APIs.osc". Скрипт, при распаковке этой программы, показал следующее сообщение "Внимание! Новая версия Asprotect.dll! Откорректируйте код виртуальной машины для этой версии Asprotect.dll", и это не смотря на то, что программа упакована относительно старой версией протектора. Анализ работы скрипта показал, что в Asprotect.dll для этой программы заголовок массива данных для эмулированных инструкций, и сам массив данных не находятся вместе, а разнесены друг от друга на значительное расстояние - 17C90h байтов, хотя заголовок массива данных имеет размер - 1Ch байтов. С такой реализацией я встретился впервые, поэтому пришлось откорректировать скрипт, и ввести дополнительный поиск других вызовов эмулированных инструкций, в которых заголовок и массив данных находятся рядом. Если же во всех найденных вызовах эмулированных инструкций размер заголовка массива данных не будет равен 1Ch или 5Ch байтов, тогда скрипт покажет сообщение о новой версии Asprotect.dll Поскольку я снова откорректировал скрипт "Восстановление таблицы IAT и вызовов APIs.osc", то аттач к этому топику я удалил, а откорректированный скрипт приложен в аттаче к следующему топику. |
|
Создано: 22 марта 2011 09:09 · Личное сообщение · #11 Здесь я выкладываю откорректированный скрипт "Восстановление таблицы IAT и вызовов APIs.osc". 1509_21.03.2011_CRACKLAB.rU.tgz - Восстановление таблицы IAT и вызовов APIs.osc | Сообщение посчитали полезным: hlmadip, Gideon Vi, SReg, d0wn, [0utC4St], DimitarSerg |
|
Создано: 01 апреля 2011 10:36 · Поправил: PE_Kill · Личное сообщение · #12 Восстанавливаю исходники интерпретатора ASProtect VM, который работает только для ASProtect.DLL, и вот что то ступор у меня. Есть там примитив: Code:
Разве есть у процессора инструкции, позволяющие напрямую читать/писать в младший байт регистров SP, BP, SI, DI? Или есть команды косвенно его меняющие? Мне кажется это просто бред не выспавшегося программиста, т.к. интепретироваться это не может хотя бы потому, что контекст ВМ выглядит так: Code:
А скомпилированный код работы со спец регистрами так: Code:
Т.е. массив со спец регистрами находится по смещению +10, а массив с нормальными регистрами по смещению +20, Т.е. при условии, что регистр должен быть больше или равен 4, то алгоритм залезет в массив с нормальными регистрами. А ошибка кроется в неправильном объявлении массива. Там скорее всего объявлено так: Code:
а должно быть либо так: Code:
либо работать с массивом так: Code:
Ну и собственно интересует ответ на вопрос, озвученный в начале. ----- Yann Tiersen best and do not fuck |
|
Создано: 01 апреля 2011 12:44 · Личное сообщение · #13 |
|
Создано: 31 мая 2011 20:25 · Личное сообщение · #14 |
|
Создано: 31 мая 2011 21:46 · Личное сообщение · #15 Дистрибов нет, есть ченжлог: ASPack 2.28 ° Indonesian localization has been added ° Russian GUI messages have been corrected ° Compression algorithm of files with checksum has been fixed ASProtect 1.61 ° New option has been added. It prevents end-users from setting system time backwards and works for time-lim ited Registration Keys ° A crash that occurred after Hardware ID change has been fixed ASProtect 2.63 SKE ° New option has been added. It prevents end-users from setting system time backwards and works for time-limited Registration Keys ----- Yann Tiersen best and do not fuck |
|
Создано: 08 июня 2011 14:13 · Поправил: VodoleY · Личное сообщение · #16 Всем добрый день. Прошу совета где я че нитак понял. 1. имеем прогу накрытую аспротом. 2. имеем пошифрованный участок кода. ключа естественно нет. пару дней копал АсПрот.длл а конкретно SetUserKey интересует пару моментов. из того что понял 1. из ключа считаеца хеш типа CRC32 2. Ключом инициируеца MD5 HASH res=16byte 3. Этим результатом инициализируеца RC4 ключ res=256 4. Идет дешифровка данны по RC4 Внимание вопросы. 1. верно ли все перечисленное? 2. где аспр хранит адреса пошифрованных участков? по всей видимости в этой аспр.длл 3. CRC пароля сверяеца ж вроде до начала дешифрования (перед началом дешифрации какойто мутный цикл анализирующий данные блоками по 5A9h байт где и сверяюца хеши) З.Ы. если я прав, то на ключи длинной не более 4ех байт можно организовать атаку ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 08 июня 2011 14:27 · Личное сообщение · #17 |
|
Создано: 08 июня 2011 14:28 · Личное сообщение · #18 |
|
Создано: 08 июня 2011 14:39 · Поправил: ARCHANGEL · Личное сообщение · #19 ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 08 июня 2011 14:42 · Поправил: VodoleY · Личное сообщение · #20 |
|
Создано: 08 июня 2011 14:52 · Личное сообщение · #21 |
|
Создано: 09 июня 2011 08:13 · Поправил: PE_Kill · Личное сообщение · #22 После статьи shooo алго изменили вот так: Code:
ModeP5 - константа P5 из проекта аспра, для текущего ModeID EncConst - ключ дешифрования кусков кода EncKey - ключ дешифрования таблиц с адресами пошифрованного кода EncTable - те самые таблицы CreateSha256Digest - почти оригинальный алгоритм CalcSalt - кастомная функция вычисления соли из не перевернутого P5, всегда под VM XorBuffByTable - цикл ксора таблиц друг на друга DWORD'ами, всегда под VM XorBuffByConst - кастомная функция шифрования DWORD'ов таблиц, всегда под VM ----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: VodoleY, mak |
|
Создано: 09 июня 2011 08:34 · Поправил: VodoleY · Личное сообщение · #23 Есть мнение что алго при использовании привязки по ключу ("%ProgramFiles%\ASProtect SKE 2.51 Beta\Examples\User Key\Delphi\.." ) все же другое, проще, старее... извиняюсь, что не уточнил это в первом посте Code:
Причем сам "KEY" при достаточно маленьком размере (а он в экзампле 3 байта а у меня 4) брутица фул менее чем за 12 минут. ибо есть его хеш... где я не прав? З.Ы. про расшифровку таблицы адресов не догнал. спс З.Ы.Ы. спасибо ПЕ_Килу.. за подсказки, все получилось все процедуры расшифрованы и восстановлены. Имеем дыру на ключах малого размера (или составленного из малого диапазона символов, например чисел) брут 0..FFFF FFFF вариаций менее 12 минут. ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 10 июня 2011 13:49 · Личное сообщение · #24 |
|
Создано: 10 июня 2011 15:44 · Личное сообщение · #25 |
|
Создано: 10 июня 2011 16:14 · Личное сообщение · #26 |
|
Создано: 23 августа 2011 12:00 · Личное сообщение · #27 |
|
Создано: 27 октября 2011 22:27 · Личное сообщение · #28 |
|
Создано: 28 октября 2011 07:55 · Личное сообщение · #29 DAKnnn пишет: при запуске "Поиск OEP (SBOEP).osc" выдает "Ошибка!!! Программа не остановлена на подпрограмме записи таблицы IAT!" что делать? Сбрось ссылку на программу, я посмотрю, в чем причина ошибки. | Сообщение посчитали полезным: DAKnnn |
|
Создано: 18 февраля 2012 02:45 · Поправил: Lauarvik · Личное сообщение · #30 на версии ASProtect [1.56 build 03.17], [Alexey Savin] (по информации ASPrINF v1.6 Beta) некорректно работает скрипт "Очистка мусорного кода в областях со Stolen Code.osc" // Дата - 19 февраля 2011 по причине, что первый байт последовательности, типа #XXEB02CD20# может являться частью предыдущей команды, после замены которого на 0x90, разумеется, херится алгоритм и программа падает. ЗЫ: если нужен конкретный дистрибутив защищенной программы, могу скинуть в личку ссылку на него. |
|
Создано: 18 февраля 2012 03:09 · Личное сообщение · #31 |
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 38 . 39 . >> |
eXeL@B —› Протекторы —› Анализ ASProtect |