Views
3 years ago

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

НЕСЛУЧАЙНО CUDA ИДЕМ? phpMyAdmin - Xakep Online

взлом SHARPDEVELOP

взлом SHARPDEVELOP В ДЕЙСТВИИ Выполняется куча каких-то проверок и сравнений, которым надо удовлетворить. Мое же внимание привлекла последняя инструкция this.txt.Text = Conversions.ToString(Encrypt. ParseandDecrypt("fm`{f}kpwrn"));. Ну да, при правильном раскладе в текстбокс попадает значение, представляющее собой расшифрованную строку «fm`{f}kpwrn». Собственно алгоритм расшифровывания реализуется функцией ParseandDecrypt из класса Encrypt. Дальше можно либо разбираться в алгоритме (зачем оно нам надо?), либо скопировать код функции и скомпилировать собственный проект, либо просто сделать один верный прыжок. Запускаем reflexil из меню Tools и видим IL-код. Нужно идентифицировать место последнего if и прыгнуть с него на выявленную команду. В IL нет операторов ветвления, поэтому они реализуются в виде последовательности простых команд сравнения и прыжков. Здесь все как в ассемблере. Итак, ищем последний переход перед выводом MessageBox с сообщением nope. Локализация перехода IL_00f2: ldc.i4 0x1ca IL_00f7: ceq IL_00f9: or IL_00fa: brfalse.s IL_0110 058 IL_00fc: ldstr "nope" IL_0101: ldc.i4.s 64 IL_0103: ldstr "sorry" IL_0108: call valuetype [Microsoft.VisualBasic]Microsoft. VisualBasic.MsgBoxResult [Microsoft.VisualBasic] Microsoft.VisualBasic. Interaction::MsgBox(object, valuetype [Microsoft.VisualBasic] Microsoft.VisualBasic.MsgBoxStyle, object) Меняем brfalse на brtrue, чтобы прыжок совершить, ну а чтобы избежать проверки else if, меняем адрес IL_0110 на IL_013d. Вывод решения в текстбоксе формы IL_013d: ldarg.0 IL_013e: callvirt instance class [System.Windows.Forms]System. Windows.Forms.TextBox app14. goes::get_txt() IL_0143: ldstr "fm`{f}kpwrn" IL_0148: call object app14.Encr ypt::ParseandDecrypt(string) IL_014d: call string [Microsoft.VisualBasic]Microsoft. VisualBasic.CompilerServices. Conversions::ToString(object) IL_0152: callvirt instance void [System.Windows.Forms]System. Windows.Forms.TextBox::set_ Text(string) IL_0157: ret В левой панели кликаем на название бинарника, затем нажимаем кнопку Save as и сохраняем его под именем app14_patched. Запускаем, вводим любую фразу и в текстбоксе получаем кодовое слово ihatethereg!!! НАМ НЕ СТРАШЕН СЕРЫЙ ВОЛК Неужели все действительно так просто? На самом деле и да, и нет. Если мы (и еще туева хуча людей) знаем о возможности восстановления кода, об этом должны были позаботиться в Microsoft. Да и другие конторы не прочь предоставить решения по защите от анализа и реверса. В целом так и есть, только решения эти далеко не всегда обеспечивают реальную защиту. Начнем с обфускации. В поставку Visual Studio входит утила под названием Dotfuscator. Ее задача — усложнить работу реверсера за счет изменения имен классов, методов и переменных, XÀÊÅÐ 07 /127/ 09

взлом ДАМП ПАМЯТИ УЖЕ РАСШИФРОВАННОЙ СБОРКИ а также шифрования строк. Она так и делает, но анализ кода от этого не усложняется. Ну да, теперь методы называются типа a, b… Тот же обработчик мы легко идентифицируем по определению делегата, а шифрованные строки все равно будут расшифрованы. Так что, ни хрена это не защита. Второй метод связан со статическим шифрованием всей сборки. В бинарник вставляется нативный код, который расшифровывает сборку при загрузке приложения и защищает ее от статического анализа. Решений таких — ну просто очень много. Одно из самых известных — CodeVeil от XHEO. Реально крутая тулза! Попробуем зашифровать сборку и открыть ее в Reflector. Оба-на, ошибка: «Module … does not contain CLI header». Reflector, ILDASM и другие утилы даже не идентифицируют ее как .NET-сборку. Между прочим, в Professional-версии утила стоит 1200 зеленых рублей, а лозунг ее — «Don’t just confuse hackers. Stop them». Впечатляет и вдохновляет! Ломается такая защита в два счета. Давай подумаем. Если сборка расшифровывается в памяти перед передачей управления CLR, значит, нужно просто снять дамп памяти. Загружаем «защищенную» по самые никуда сборку в память и цепляемся к ней WinHex’ом (Tools Open Ram; далее выбираем процесс и модуль в нем). Копируем в файл содержимое памяти: CTRL+A, затем Edit Copy All Into New File и сохраняем под именем app14_unveiled.exe. Пытаемся запустить и ловим ошибку инициализации. Видимо, где-то поползли секции. Открываем в Reflector и, о чудо, код как на ладони; правда, не работает Reflexil, вылетая с исключением. Запускаем ILDASM, XÀÊÅÐ 07 /127/ 09 делаем дамп IL и компилируем… — получаем новую полностью работоспособную сборку со снятой защитой. Во как! Справедливости ради стоит отметить, что в текущей версии CodeVeil 3.2, по заявлению разработчиков, реализована динамическая защита во время исполнения, что сильно затрудняет задачу. Необходимо детально исследовать нативный код шифровщика. Мне кажется, что создание unpacker’а — лишь вопрос времени. Пока никто эту задачу не решил, так что дерзай, возможно, получится у тебя. Таким образом, программисту приходится полагаться только на самого себя. Можно шифровать сборки, динамически расшифровывать их во время исполнения и подгружать с помощью Application.Load. В общем, все как в старом добром Assembler’е. А можно воспользоваться виртуальными контейнерами типа ThinApp или Xenocode. Ну а лучше всего и вовсе реализовывать критические участки с помощью неуправляемого кода. ИЗ РОССИИ С ЛЮБОВЬЮ Помни, что только практика способствует твоему развитию. Как видишь, все не так уж сложно, но, заходя на сайт глобального рейтинга www.wechall.net, я с грустью обнаруживаю Россию на 25-м месте. В рейтинге зарегистрировано всего 5 российских хакеров-участников! Давай поддержим нашу страну: регистрируйся на сайтах-челленджах и бросай баллы в копилку Родины. Все описанные действия совершены под музыку Джо Кокера. Слушай блюз и будь счастлив!z DVD dvd На диске ты найдешь все упомянутые в статье тулзы, официальное описание CIL от Microsoft, а также препарируемый CrackMe и его пропатченную версию. 059

Май - Xakep Online
Январь - Xakep Online
УЧИМ КАКОценить сбалансированность системы ... - Xakep Online
ИюНь - Xakep Online
Скачать - Xakep Online
Офисное западло - Xakep Online
ЛУЧШИХ ВИРУСОВ - Xakep Online
Ноябрь - Xakep Online
JIT SPRAY АНАЛИЗ TDSS - Xakep Online
Скачать - Xakep Online
2009 - Xakep Online
ЛЕГКИЙ ХАК - Xakep Online
7 ЧУДЕС KDE - Xakep Online
Скачать - Xakep Online
Взлом GSM - Xakep Online
КОНКУРС - Xakep Online
ВЗЛОМ ИНТЕРНЕТ-МАГАЗИНА: - Xakep Online
с татьи - Xakep Online
WebMoney - Xakep Online
Untitled - Xakep Online
Ноябрь - Xakep Online
Много новогодних конкурсов Много новогодних ... - Xakep Online
Октябрь - Xakep Online
шпион внутри - Xakep Online
c-лето ;) - Xakep Online
тест - Xakep Online
содержание 10 (59) - Xakep Online