Views
3 years ago

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

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

взлом ОЛЬГА

взлом ОЛЬГА ЯВНО НЕ ПРИСПОСОБЛЕНА ДЛЯ АНАЛИЗА .NET-СБОРОК ИСХОДНЫЙ IL-КОД HTTP://WWW links Для описания команд IL бегом на MSDN: http://msdn. microsoft.com/enus/library/system. reflection.emit. opcodes_fields.aspx Интересуют средства защиты .NET-приложений? Тогда тебе сюда: • www.codewall.net • www.chilkatsoft. com/dotNetCrypt.asp • www.eziriz.com • www.xheo.com/ products/codeveil/ default.aspx 056 Описание всех директив ты найдешь в официальном документе Common Language Infrastructure (CLI), Partition II: Metadata Definition and Semantics на нашем диске. Вся логика работы приложения реализуется с помощью команд. Полный их перечень ты можешь найти в MSDN (http:// msdn.microsoft.com/en-us/library/system.reflection.emit. opcodes.ldlen.aspx). Учти, что символы подчеркивания нужно заменять на символы точки. Любая операция в MSIL исполняется на стеке. Перед вызовом какой-либо смысловой команды, например, вызова функции, в стек кладутся ее параметры. Это очень похоже на ассемблер, однако в отличие от распространенных конвенций вызова stdcall и cdecl, переменные кладутся в том порядке, в котором они определены в прототипе функции. За установку переменных в стек отвечают команды семейства ld… Например, ldloc загружает локальную переменную по ее имени или порядковому номеру, ldstr предназначена для загрузки строки. Обратную операцию осуществляют команды st… (store), забирающие значение с вершины стека в локальную переменную. Очисткой стека занимается сама вызываемая функция, — после чего на вершину стека она кладет возвращаемое значение. После объявления переменных (конструкция init() предназначена для инициализации переменных значениями по умолчанию) производится вызов функции Write. Для этого в стек кладется строка с сообщением, которое будет выведено на экран. Далее используется команда call, вызывающая статический метод Write из класса System.Console сборки mscorlib. При вызове указывается прототип функции, — чтобы компилятор мог определить, какую из перегрузок использовать. При вызове нестатических методов перед параметрами в стек нужно положить ссылку на экземпляр класса, а при вызове после call нужно поставить ключевое слово instance. Для вызова виртуальных методов применяй callvirt. Далее вызывается функция ReadLine, и строка парсится в число, которое сохраняется в первой переменной. Перед вызовом функции вывода на экран результатов переменные в стеке подвергаются преобразованию в ссылочные типы (обертки) с помощью команды box32. Остальное должно быть ясно без пояснений. Еще один важный момент для реверсера — это отлов ветвлений. В IL ветвления создаются с использованием семейства команд b… (от branch). За детализацией беги на MSDN. ПОПРОБУЙ СЛОМАЙ МЕНЯ Уже чувствуешь себя крутым? Тогда пора что-нибудь да поломать. Идем на любой сайт с челенджами и скачиваем задание из раздела cracking в стиле .NET. Я тебе покажу на одном из них, как все просто и красиво. Из этических соображений раскрывать ресурс я не буду, но если интересно, можешь выяснить и сам, посмотрев внимательно внутрь бинарника. Приложение app14 содержит на форме текстбокс и кнопку. В текстбокс нужно ввести правильную фразу, тогда обработчик кнопки выведет кодовое слово, которое и является решением. При неправильной фразе выводится какая-то лабуда. Забыл сказать: для редактирования IL очень удобно использовать утилу Red Gate’s .NET Reflector с установленным плагином Reflexil. Утила хороша тем, что на основе IL восстанавливает код на некоторых языках высокого уровня, включая шарп. Реверсинг превращается в увлекательное занятие анализа исходных кодов. Итак, загружаем в Reflector нашего подопытного и смотрим саммари по классам и методам. Видим два класса — Encrypt и, собственно, класс формы под названием goes. Можно вкуривать в реализацию Encrypt — она несложная, но я предпочел посмотреть, что же происходит при нажатии заветной кнопки. Обработчик ищется элементарно, по прототипу функции. Она должна принимать два параметра: первый типа object и второй типа EventArgs. Таких функций всего две и по названию очевидно, что нам интересна функция vla_Click. Выбираем по правой кнопке меню Disassemble и видим чистый c#! Политика разглашения информации об уязвимости Это соглашение имеет ряд нюансов. Например, хакер, обнаружив уязвимость, ищет контакты, чтобы направить соответствующий запрос производителю. Если по истечении пяти дней производитель отмалчивается, вводит в заблуждение своих пользователей какими-то способами или некорректно вступает в диалог, то ему отправляется повторное письмо. Выжидаются еще пять рабочих дней, после чего баг-хантер вправе помещать описание о баге на собственном ресурсе или в публичные багтраки. При этом в письме требуется оговорить и согласовать дату публикации, чтобы производитель успел выпустить обновление или советы по защите от эксплуатации. Важно отметить, что если стороннее третье лицо опубликовало данные об эксплуатации найденной тобой уязвимости, ты можешь смело постить ее подробности без согласования с кемлибо. Вот такая арифметика. XÀÊÅÐ 07 /127/ 09

взлом LOG EXPLOIT: XMB 1.9.11 RANDOM PASSWORD RESET VULNERABILITY REFLECTOR ПОКАЗЫВАЕТ ИСХОДНЫЙ КОД НА C# Код обработчика нажатия кнопки в CrackMe private void vla_Click( object sender, EventArgs e) { int[] numArray = new int[12]; VariantType type = (VariantType) Conversions.ToInteger( MyProject.Computer.Registry.GetValue( @"HKEY_CURRENT_USER\valid", "", 0)); decimal num = new decimal(((((double) type) + 1.5) * ((double) type)) + 0.025); if (this.txt.Text == "somerandomvl") { Interaction.MsgBox(RuntimeHelpers. GetObjectValue(Encrypt. ParseandDecrypt(Conversions. ToString(Encrypt.ParseandEncrypt( "ydXX!if not txt is blah youfailed")))), MsgBoxStyle.Exclamation, "585mfg9gf"); } else { Interaction.MsgBox(RuntimeHelpers. XÀÊÅÐ 07 /127/ 09 GetObjectValue(Encrypt.ParseandDecrypt( "ydXX!if not txt is blah youfailed")), MsgBoxStyle.Exclamation, "585mfg9gf"); } if (Convert.ToDouble(num) == (((((double) type) + 1.5) * ((double) type)) + 0.025)) { if ((type == VariantType.Empty) | (MyProject.Application.Info.DirectoryPath. Length.ToString().Length == 0x1ca)) { Interaction.MsgBox("nope", MsgBoxStyle.Information, "sorry"); } else if ((((this.txt.Text != this.txt. Text) & false) | false) | (type == VariantType. Null)) { this.txt.Text = Conversions.ToString( Encrypt.ParseandDecrypt( "fm`{f}kpwrn")); } } } WARNING warning Наилучшую защиту своих сборок от анализа ты получишь в случае использования Xenocode PostBuild (http:// www.xenocode.com/ products/postbuildfor-net), позволяющего компилировать приложение в нативный код со статическим включением сторонних сборок. 057

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