![]() |
eXeL@B —› Софт, инструменты —› Ariadne Framework & Deobfuscator |
<< . 1 . 2 . 3 . |
Посл.ответ | Сообщение |
|
Создано: 29 ноября 2011 23:50 · Поправил: reversecode · Личное сообщение · #1 Ariadne – это фреймворк для всех, кто занимается reverse engineering и смежными задачами (анализ вирусов, защита ПО и ее анализ, forensic и т.д.). Во всех этих случаях Ariadne позволит сэкономить существенную часть времени за счет предоставления решения нудных типовых задач. А ведь создание кода, решающего эти нудные типовые задачи, может занимать до 80% времени! При этом никто не застрахован от повторения уже неоднократно совершенных кем- то ошибок, исправление которых отнимает время. Ariadne позволит сэкономить время и творческий потенциал для решения действительно инновационных задач. демо версия http://www.slideshare.net/dschelkunov/on-deobfuscation-in-practice какая то презентация, если кто может скачайте и переложите на нормальный фо ps мне почему то кажется это работа кого то с форума, не? ![]() |
|
Создано: 03 декабря 2011 12:26 · Поправил: HaRpY · Личное сообщение · #2 PE_Kill пишет: Т.е. она реализована, она есть, но увидеть ее не получится, ибо в паблик релизах работа только с трассой. Применение оптимизации трассы (не полное покрытие кода), я, даже подумав немного, придумать не могу. Дык, я специально и дал простой примерчик в надежде узреть результат такой реализации... Ariadne пишет: Если кому-нибудь, тем не менее, нужна полноценная деобфускация CFG, то мы готовы обсуждать это, но конкретно с заказчиком. В таком случае это будет сугубо индивидуальный продукт для конкретного заказчика под его требования на базе нашего движка. Получается, что "эта самая реализация" - совсем отдельный проект(ы), которые, скорее всего, будут затачиваться под конкретные обфускаторы. Панацеи нету. PE_Kill пишет: Применение оптимизации трассы (не полное покрытие кода), я, даже подумав немного, придумать не могу. Ну, как вспомогательное средство, будет полезным. Допустим, быстро найти "нужную" развилку или что-то в этом роде. ![]() |
|
Создано: 03 декабря 2011 20:06 · Личное сообщение · #3 Раз возникли вопросы, хотелось бы пояснить некоторые моменты. Во-первых, это фреймворк для работы с кодом, а не просто деобфускатор. Т.е. все вещи можно дописывать самому по мере необходимости. Теперь что касается генерации, оптимизации, а также статика и динамика. Генерация и оптимизация, в основном - достаточно отдельные компоненты. Сначала генерируется промежуточный код на основе снятия трассы эмулятором. А потом проходит статик и/или динамик оптимизация этого уже переведённого кода. Соответветственно, если была сделана генерация трассы, то и оптимизация пойдет только переведённого кода, т.е. тоже трассы. А статик и динамик - это просто разные методы оптимизации. Динамик использует при оптимизации эмулятор и позволяет работать с указателями, а также содержит некоторые специфичные приёмы оптимизации. Полное покрытие у нас имеется. Пример мы приводили выше. Если интересно, можем прогнать и пример для CRC на полном покрытии, но алгоритмы полного покрытия обсуждаются отдельно и пока не присутствуют в продукте. HaRpY пишет: Ну, как вспомогательное средство, будет полезным. Допустим, быстро найти "нужную" развилку или что-то в этом роде. Как вариант. HaRpY пишет: Получается, что "эта самая реализация" - совсем отдельный проект(ы), которые, скорее всего, будут затачиваться под конкретные обфускаторы. Панацеи нету. Generic-тулза либо будет плохо работать в силу той же консервативности и плохо оптимизировать, либо безбожно бажить. С другой стороны, отчасти благодаря тому, что многие дерут техники друг у друга под копирку, можно создать некоторое generic-ядро, которое содержит базовые техники, которые наверняка сработают, которое можно заточить под конкретные трюки и под конкретный обфускатор и сделать относительно безбажный продукт. Наш движок в публичном виде и является таким generic-ядром с определенной интерактивностью в виде плагина для IDA. ![]() |
|
Создано: 03 декабря 2011 20:57 · Поправил: reversecode · Личное сообщение · #4 меня вот другое интересует рано или позно количество клиентов которые купят фреймворк выростет и все внимание и время на багрепорты итд будет направлено на них рассматривали ли вы условия при которых будете уделять внимание тех кто не покупает но пользуется демо и захотят каких то фиксов? тоесть что бы все не превратилось в андеграунд как с IDA где ильфак давно сказал что если вы не оффициальный клиент - то идите лесом, на вас время нет да и я надеюсь на самом сайте будете обновлять инфо о обнвовленном sdk после баг фиксов и не прийдется угадывать что вышла новая или пофикшеная версия методом сравнения md5 ![]() |
|
Создано: 03 декабря 2011 21:31 · Личное сообщение · #5 reversecode пишет: рассматривали ли вы условия при которых будете уделять внимание тех кто не покупает но пользуется демо и захотят каких то фиксов? Мы сильно заинтересованы в качестве движка. От этого многое зависит для нас. Внимание уделять однозначно будем и будут баги - будем фиксить. Будут предложения - будем стараться учитывать. Демка будет обновляться. Планируется, что версия демки будет обновляться по мере обновления движка. По багам можно на этот ник в личку стучать, чтобы было пооперативнее. reversecode пишет: да и я надеюсь на самом сайте будете обновлять инфо о обнвовленном sdk после баг фиксов Вот как-раз сейчас готовится очередной фикс ![]() ![]() |
|
Создано: 04 декабря 2011 12:33 · Личное сообщение · #6 Ariadne пишет: Полное покрытие у нас имеется. Пример мы приводили выше. Если интересно, можем прогнать и пример для CRC на полном покрытии, но алгоритмы полного покрытия обсуждаются отдельно и пока не присутствуют в продукте. Мне просто было интересно оценить работу и возможности Вашего движка. Надеюсь, Вы понимаете, что в качестве результата, ожидалось получить именно процедуру максимально приближенную к исходной... Что надо сделать, используя Ваш фреймворк, чтобы получить такой результат? Насколько это будет трудоемко? ![]() |
|
Создано: 04 декабря 2011 21:06 · Личное сообщение · #7 HaRpY пишет: Надеюсь, Вы понимаете, что в качестве результата, ожидалось получить именно процедуру максимально приближенную к исходной... Конечно. Очень хорошо понимаем. Хочется решения, чтобы сразу пыщ, и все деобфусцировалось до исходного, да еще и с помощью публичной демки ![]() HaRpY пишет: Что надо сделать, используя Ваш фреймворк, чтобы получить такой результат? Насколько это будет трудоемко? Используя наше API и написать генерацию из машинного кода не в трассу IR, как сейчас на паблике в демке, а в полное покрытие. Иными словами, отдать алгоритмам деобфускации CFG, а не трассу. Кстати, во вложении деобфусцированный алгоритм для CRC с учетом полного покрытия ![]() было: 3439 instructions, 808 variables, 96 blocks стало: 169 instructions, 21 variables, 55 blocks ![]() ![]() |
|
Создано: 04 декабря 2011 22:31 · Поправил: HaRpY · Личное сообщение · #8 |
|
Создано: 05 декабря 2011 23:37 · Личное сообщение · #9 |
|
Создано: 06 декабря 2011 13:36 · Личное сообщение · #10 zeppe1in пишет: указываю начало, указываю конец. на выходе пустота. что не так? Если он сказал, что оптимизировано успешно, и ошибок никаких не было, то возможно этот код и не делает реально ничего, потому и пусто? Возможно и баг. Они вполне могут быть. Все-таки речь идет о ранней бете. Поэтому, если у кого-то что-то не заработало, плз, кидайте в личку. Мы обязательно посмотрим и постараемся пофиксить. ![]() |
|
Создано: 11 декабря 2011 16:25 · Личное сообщение · #11 |
|
Создано: 11 декабря 2011 17:13 · Личное сообщение · #12 В самом фреймворке есть возможность генерить асм-код, это вынесено в АПИ. Это было сделано, чтобы была возможность сохранять результат работы в исполняемый файл. Но для анализа на наш взгляд больше подходит промежуточный код ввиду большей компактности. Поэтому да, всё верно, результатом работы плагина служит только окно с промежуточным кодом, генерация асм-кода в плагине не используется. ![]() |
|
Создано: 17 октября 2012 21:38 · Поправил: vnekrilov · Личное сообщение · #13 Решил написать в этой, почти год заброшенной теме, чтобы не плодить еще одну тему. Столкнулся с одной программой (DLL), в которой обфусцирована часть кода, связанная с формированием запроса на сервер разработчика. DLL написана на Borland Delphi, и мне нужно деобфусцировать код. Трассирование кода дает мегабайты текстового файла, который сложно анализировать и он, по большому счету, не нужен. Попытался применить Ariadne Framework & Deobfuscator, но получил нулевой файл, хотя в строке состояния написано, что все прошло успешно. До этого деобфускацией особо не занимался, поскольку не было необходимости. Так, немного по Asprotect, но там обфускация очень слабая. EXECryptor тоже имеет слабую обфускацию кода, и оригинальный код, при некотором терпении можно восстановить вручную. Других деобфускаторов я что-то не встречал - или они приватные, или плохо искал. CodeDoctor тут тоже не сработал. Возможно, что кто-то сможет подсказать, где еще можно посмотреть деобфускаторы. Заранее благодарен за любую подсказку. ![]() |
|
Создано: 17 октября 2012 22:15 · Личное сообщение · #14 |
|
Создано: 18 октября 2012 20:29 · Личное сообщение · #15 vnekrilov http://gdtr.wordpress.com/2012/10/03/decv-a-decompiler-for-code-virtualizer-by-oreans/ Вот я так понял он в иде деобфусцирует питоновым скриптом. ----- zzz ![]() |
|
Создано: 18 октября 2012 22:02 · Поправил: reversecode · Личное сообщение · #16 |
|
Создано: 18 октября 2012 22:15 · Личное сообщение · #17 |
<< . 1 . 2 . 3 . |
![]() |
eXeL@B —› Софт, инструменты —› Ariadne Framework & Deobfuscator |