Сейчас на форуме: (+8 невидимых) |
eXeL@B —› Протекторы —› EXECryptor (Туторы, скрипты, плагины, ...) |
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . >> |
Посл.ответ | Сообщение |
|
Создано: 20 сентября 2006 18:14 · Поправил: Модератор · Личное сообщение · #1 |
|
Создано: 17 мая 2008 18:56 · Поправил: kioresk · Личное сообщение · #2 Давненько у нас что-то ничего по криптору не пробегало, а потому ловите... EXECryptor 2.x – Отключение проверки системной даты В этой небольшой статье рассматривается легкий способ отключения проверки изменения системной даты (clock manipulation), которая была добавлена во 2-й версии EXECryptor’а. (PDF, 135 Кбайт) 8022_17.05.2008_CRACKLAB.rU.tgz - EXECryptor 2.x – Отключение проверки системной даты.pdf |
|
Создано: 18 мая 2008 02:50 · Личное сообщение · #3 |
|
Создано: 07 июля 2008 12:51 · Поправил: r99 · Личное сообщение · #4 |
|
Создано: 07 июля 2008 14:35 · Личное сообщение · #5 |
|
Создано: 08 июля 2008 22:14 · Личное сообщение · #6 для 2.3.9 - как поменять HWID (пока не забыл!) запускаем прогу (желательно в распакованном виде) и ищем в памяти (можно winhex-ом) ту строку которая прога выдает - получаем несколько адресов. мне больше нравится минимальный адрес - который в стековой области находится - Adr-String. Закрываем прогу. Ищем ключ реестра генерируемый этой прогой (с помощью Trashreg например). Мониторим прогу (Regmon, Procmon....) - чтобы определить адреса с апи RegCloseKey для найденного ключа. Вот после одного из этих адресов можно и зациклить прогу (какой именно адрес выбрать - дело вкуса и опыта). Зацикленную прогу запускаем и аттачимся к ней Олей. Смотрим что в [Adr-String] из любопытства и ставим бряк на запись или доступ. И далее F9...... ps Зациклить прогу - это прописать EB FE в ней. |
|
Создано: 22 октября 2008 20:15 · Личное сообщение · #7 |
|
Создано: 23 октября 2008 00:57 · Личное сообщение · #8 |
|
Создано: 23 октября 2008 10:51 · Личное сообщение · #9 |
|
Создано: 25 октября 2008 12:31 · Личное сообщение · #10 |
|
Создано: 25 октября 2008 22:14 · Поправил: s2003r · Личное сообщение · #11 |
|
Создано: 25 октября 2008 23:19 · Поправил: kioresk · Личное сообщение · #12 |
|
Создано: 26 октября 2008 00:50 · Личное сообщение · #13 |
|
Создано: 26 октября 2008 01:04 · Личное сообщение · #14 |
|
Создано: 16 января 2009 00:12 · Поправил: kioresk · Личное сообщение · #15 Во-первых сразу скажу что имхо проще просто отключить крипторовскую антиотладку (о чем позже будет написано), чем морочиться с потоками. Но раз в теме по анпакеру задают вопросы о потоках — проведем миниликбез. Для начала напомню, что в крипторе часть кода его различных процедур (например, API из SDK, всевозможные проверки и т.д.) специально выполняются в потоках для усложнения отладки. Чтобы сразу понять что к чему, рассмотрим часть кода крипторовкой API EXECryptor_GetDate: Code:
Здесь криптор вызывает функцию RunInThread, которая создает поток, который в свою очередь выполнит код расположенный ниже jz 0046E0D4 и завершится на retn, а после криптор прыгнет по адресу 0046E0D4 и продолжит выполнение кода уже в обычном режиме. Спросите зачем выполнять часть кода в потоке? Все просто, поскольку код (расположенный ниже jz) выполняется в потоке, то поставив на него хардварный бряк мы не остановимся. Т.е. на нем можно остановиться только если поставить обычный софтварный бряк (0xCC). А против софтварных бряков у криптора есть проверка CRC памяти. Т.е. выполнение кода в потоках и проверка CRC памяти должны препятствовать при отладке приложения и установке бряков, вот и все объяснение. Идем дальше, у криптора есть несколько типов функций выполняющих код в потоке. Для нас важна только одна из них, которая вызывается из кода выполняющего различные проверки (не запущен ли отладчик, filemon, regmon и т.д.), поскольку отключив ее можно выключить антиотладку. Конечно разработчики криптора не прошли мимо этого нюанса и в криптор версии 2.4.1 они добавили в эту функцию трюк со стеком (о котором говорил RSI), чтобы ее нельзя было отключить простой вставкой ret в начало функции потока. На этом пока все, продолжение о трюке со стеком и как его обойти будет завтра. |
|
Создано: 17 января 2009 01:35 · Поправил: kioresk · Личное сообщение · #16 Идем дальше, для начала напомню две вещи: 1. Трюк со стеком появился только в версии 2.4.1, поэтому если файл защищен предыдущими версиями криптора, то можно просто вставить ret в начало функции потока и потом заменить параметр для WaitForSingleObject c -1 на 0 (об этой чуть позже). 2. Начиная с версии 2.3.9 криптор хранит в защищенном файле строку с номером его версии, поэтому чтобы выяснить какой версий защищен файл нужно просто распаковать его и поискать строки «2.3.9», «2.4.0» или «2.4.1». Так, теперь посмотрим интересующую нас функцию выполняющую код в потоке: Code:
Из приведенного кода видно что сразу после вызова CreateEvent криптор ксорит значение в стеке с регистром eax, потом с помощью CreateThread выполняет код в потоке, а потом ждет завершения потока вызывая WaitForSingleObject c параметром -1 (INFINITE). Что нам это дает? А то, что: 1. Чтобы найти где ксорится стек, надо поставить хардварный бряк на CreateEventA, выйти из нее при срабатывании бряка и если мы вернулись не в секцию кода, а в одну из крипторовских секций — чуть потрейсить пока не встретим команду «xor [esp], eax». Это 1-е место, которое мы заменим на nop. 2. После этого чтобы найти начало функции потока, надо поставить хардварный бряк на CreateThread и посмотреть 3-й переданный ей параметр (esp+C = LPTHREAD_START_ROUTINE lpStartAddress). Это 2-е место, куда мы вставим ret. 3. После этого чтобы найти где в стек кладется -1 для WaitForSingleObject, надо поставить хардварный бряк на CloseHandle, выйти из нее при срабатывании бряка и чуть потрейсить пока не увидим что в стек кладется -1. Это 3-е место, которое мы заменим на push 0, чтобы криптор не ждал окончания потока, который завершился даже не начавшись. В принципе вот и все что надо для отключения функции выполняющей в потоке кучу кода с различными проверками отладчика и прочей ерундой. П.С. На выходных опишу как найти в защищенном файле начало крипторовской EC_Antidebug, чтобы вообще отключать его антиотладку. Добавлено: Неа, на выходных дела были, не успел, а потому опишу позже. |
|
Создано: 17 января 2009 01:57 · Личное сообщение · #17 |
|
Создано: 18 января 2009 11:58 · Поправил: Valemox · Личное сообщение · #18 kioresk Спс за дельный рассказ, добавлю тока еще, чо при отломе протовского треда пропадает весь антидебаг и появляется возможность юзать софтварный бряк в оле (поправко: неа, потестил получе - нефига не заюзать CC по-прежнему). ARCHANGEL При желании отличиться мог бы, если захотел бы помучиться, я в соседнем топе по EC выкладывал файлик то (как раз 2.4.1). |
|
Создано: 19 января 2009 00:43 · Личное сообщение · #19 Valemox у меня было например вот так в одной проге ..... mov edx, -1 push edx .....траляля вызывается waitforsingleobject или например при отключении проверки системной даты если сразу заменять setnz byte ptr [ebp-1] на mov byte ptr [ebp-1], 0 то прога бессловесно уходит в аут, приходилось делать прыжок на для выполнения setnz byte ptr [ebp-1] и записи на место прыжка mov byte ptr [ebp-1], 0. получалось что прога один раз выполняет setnz а потом вместо этого mov. не думаю что открыл истину, но может быть поможет кому-нибудь) |
|
Создано: 25 февраля 2009 01:48 · Поправил: Valemox · Личное сообщение · #20 |
|
Создано: 25 февраля 2009 04:26 · Личное сообщение · #21 Valemox Описалово в лом запостить было? This is the fruit of try to write an EC specific code-tracer-grabber that’s turning to a generic meta/polymorphic code grabber. It works as it should but still needs some extra manual-scripting work. In fact, it’s only the lack of time that caused deferment of publishing this series and still does for part of it. Despite everything, I decided to publish parts I’ve commented and organized, waiting for other parts to be done. About the Series: As above-mentioned, the hole project will be divided to a series of 3 to 4 parts and here is a listing of what the mega project holds as items: EC_GetProcAddressProc: procedure that EC uses to get API address. (src included) EC_GetKernel32HdlProc: procedure that EC uses to get kernel32.dll image base. (src included) EC_DecryptStringsProc: procedure that EC uses to make research for string in protected app useless. With an extra, the reverse algo that makes it possible to encrypt a string , then search for the encrypted one in the protected one (src included) EC_BuildIATProc: procedure responsible of IAT rebuilding before passing control to protected app. EC notes on layers decryption : A draft paper about EC way/algo/trick used to decrypt sections and restore code. EC_Get/SetRegistryInfoProc: procedure that EC uses to secure read/write to registry (src included). EC_LDE: EC length disassembling machine. EC_Thread_Proc: Procedures implementation of EC running threads and how they behave. (src included) VM : The must of the hole project, implementation of EC virtual machine (src included). ECzema : Little tool to fix and clean the virtualized instructions. EXODus: Little tool to fix and clean the virtualized instructions that works as ODBG plugin. PoMToc: The tracer |
|
Создано: 25 февраля 2009 11:53 · Личное сообщение · #22 Ну тутси уже писал, повторюсь здесь. ECzema (тулза для удаления виртуализованных инструкций) не работает правильно, часть инструкций восстанавливается ошибочно, часть вообще не восстанавливается (хотя может надо несколько раз файл обрабатывать тогда все будет ок), а с восстановлением условных переходов вообще труба. |
|
Создано: 25 февраля 2009 14:18 · Личное сообщение · #23 |
|
Создано: 25 февраля 2009 16:33 · Поправил: kioresk · Личное сообщение · #24 А чего ты за беспокоился так? Каждый интерпретирует информацию по своему. Я написал об ошибках, чтобы люди были в курсе, что пока утила работает неправильно, следовательно в очищенном коде будут ошибки, т.е. пока для анализа защищенных файлов ее лучше не использовать, а подождать когда автор исправит ошибки и выпустит финальную версию. Чел может доведет до ума,для того и выложил видимо, удивительно было бы если она без косяков работала Это уже кому как нравиться. У криптора очень простая вм, там нет ничего сверхестественного, поэтому я бы, например, не стал выкладывать инструмент не разобравшись до конца как и что работает и не протестировав его хорошенько. |
|
Создано: 25 февраля 2009 19:47 · Личное сообщение · #25 kioresk пишет: там нет ничего сверхестественного Хм ..это в смысле метафизического? что есть и такие? Это старая песня у меня есть но я никому не покажу а этот (скрипт , утиль и т.д) работает неправильно и не юзайте его Ну простая пропатчить если нужно немного а востанавливать весь код по любому гимор. kioresk пишет: Я написал об ошибках, чтобы люди были в курсе, что пока утила работает неправильно, следовательно в очищенном коде будут ошибки Ну будут и что ? Их ни кто не увидит что ли без тебя? kioresk пишет: а подождать когда автор исправит ошибки и выпустит финальную версию. Видимо афтор считает что на паблике он сделает это быстрей |
|
Создано: 14 мая 2009 14:46 · Личное сообщение · #26 |
|
Создано: 14 мая 2009 16:08 · Личное сообщение · #27 |
|
Создано: 15 мая 2009 12:02 · Личное сообщение · #28 |
|
Создано: 15 мая 2009 16:10 · Личное сообщение · #29 |
|
Создано: 14 июля 2009 10:55 · Личное сообщение · #30 |
|
Создано: 14 июля 2009 13:06 · Личное сообщение · #31 |
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . >> |
eXeL@B —› Протекторы —› EXECryptor (Туторы, скрипты, плагины, ...) |