Сейчас на форуме: vsv1, johnniewalker, NIKOLA (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Echelon |
Посл.ответ | Сообщение |
|
Создано: 17 июня 2016 17:21 · Поправил: Rio · Личное сообщение · #1 |
|
Создано: 17 июня 2016 21:52 · Поправил: ajax · Личное сообщение · #2 кредо? удачи там дрова даж были, если не путаю. смотрел давно, интереса не было ----- От многой мудрости много скорби, и умножающий знание умножает печаль | Сообщение посчитали полезным: Rio |
|
Создано: 19 июня 2016 16:20 · Личное сообщение · #3 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 19 июня 2016 18:37 · Личное сообщение · #4 |
|
Создано: 19 июня 2016 19:44 · Личное сообщение · #5 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 25 июня 2016 16:16 · Личное сообщение · #6 кредо...первые мысли - игрушка "Assasin Creed". Ну, неважно, короче! Вообщем, я поверхностно прошелся. Имеем, по сути, три(или четыре) ... не знаю как правда назвать это, на виртуальную машину оно не шибко тянет, впрочем, пусть будет виртуальная недомашина. Похожесть: SolidhShield самые первые версии; часть трюков была в SecuROM 8 (коллектор управления) и ProtectionID (XORing участков кода до/после исполнения). Выделяем память (VirtualAlloc) - кидаем туда данные, расшифровываем, дописываем релоки. Крутимся внутри аллочных областей и прыгаем то в секцию кода к функам программы (там всё без обфускации), то в MSVCR90, ну или в остальные системные (и не очень) дллки. аллочная область скрывает только код между вызовами функций. Причём скрывает так себе - обфускация разве что это куча jmp(трасинг в помощь). Антидебага нет. Есть проверка участков выполнения кода другим тредом (палим софтварные точки останова). По существу сам Echelon представляет собой систему "сервер-клиент"."Впрочем,ничего нового!"(с)... Начинаем мы с главного потока, который вызывает функу инициализации (билдер) первой недоVM (естественно, сразу бросается в глаза VirutalAlloc, а ниже _beginthread...). Билдер вообще "гениальное" болото из заинлайненных функций - программист сей чуши был явно обсажен и, очевидно, не поминает сути вируальной машины. Имеем скелет и находу цепляем туда адреса...релоки. В конце через один и тот же код прыгаем в аллочную область. Короче, дэбилизм. Касаемо самого Echelon II - стартует три треда. Тут имеет смысл вспомнить MessageBox с ошибками, например, когда не удается найти модуль, в конце смс, в скобках пишется три hex-значения типа (0xFFF000, 0xFFF000, 0xFFF000). К.О. сообщает, что это коды ошибок. Code:
Стабильный переходник в аллочную область для всех недоVM: Code:
В главном потоке из 1й недоVM прыгаем в такую процедуру - 1ST PROTECT FUNC. Я писал выше про MessageBox с тремя hex-значениями (см. выше)! Так вот, первое hex-берется из result этой функи (в идеале она должна возвратить 0): Code:
Далее стартуют ещё три треда (два контактных, один - шлёт смс юзеру...вроде так). Все они начинаются аналогично, как и главный - иницализируют свои недоVM: Code:
Если патчить 1ST PROTECT FUNC нулём, то прога запускается, появляется окошко "Добро пожаловать" и чуть позже MessageBox с ошибкой контакта с сервером, которое шлёт другой тред после второй проверки. Причём в смс уже ДВА hex-значения ошибки. Вторая проверка уже размазана по winapi и отдельным процедурам. Но суть схожа с 1ST PROTECT FUNC. Пробуем ловить через winsock. На этом краткий обзор остановился, дальше - сами. Что запомнилось в недоVM: Code:
Code:
| Сообщение посчитали полезным: 4kusNick, Rio |
eXeL@B —› Крэки, обсуждения —› Echelon |