1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Возможно ли реверснуть обфусцированную программу.

Тема в разделе "WASM.RESEARCH", создана пользователем neutronion, 31 мар 2010.

  1. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Читал недавно нашего великого гуру Криса, говорит ежели будут обфусцировать экзэшники, то каюк придет
    реверсерам, не смогут они разложить программу. Правда он оговаривается, что возможно использования трейсинга.
    Что думают профи?
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Думаю что Крис пошутил.
     
  3. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.411
    Адрес:
    Russia
    Clerk
    Конечно. При чем вообще практически никак не мешает реверсу.
    neutronion
    Прежде чем таким образом цитировать Криса, могли бы указать источник, и страницу. Может быть вы его не так поняли.
     
  4. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    вот что я писал...
    Будущее обфускации готовит хакерам совсем не радужные перспективы. С ходу можно назвать трансляторы Си-кода в байт-код Машин Тьюринга, Стрелок Пирса, Сетей Петри и многих других примитивных машин. Производительность современных процессоров это уже позволяет. В практическом плане это означает полный мрак стандартным методам анализа кода. Если вычистить мусор и удалить избыточность, внесенную "запутывателями" теоретически вполне возможно (но практически очень и очень сложно), то "распутать" байт-код Сетей Петри уже никак невозможно! Это однонаправленный процесс и развернуть его на 180 градусов не сможет и сам Джа. Написать анализатор байт-кода, повышающий уровень абстракции — вполне возможно, вот только даже на таком уровне придется очень долго разбираться: что, как и куда.
    Анализ типа "черного ящика" сулит намного большие перспективы, равно как и создание виртуальной машины, отрезающей защиту от внешнего мира. Дизассемблеры уже остановились в своем развитии и скоро вымрут как мамон
     
  5. dermatolog

    dermatolog New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    405
    Адрес:
    Екатеринбург
    kaspersky
    С удовольствием посмотрю на быстродействие более-менее сложного алгоритма после перевода его на Машину Тьюринга :))
     
  6. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    cтрелкой
     
  7. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    dermatolog
    посмотрите на продукты фирмы рови. они вообще на жабе выполняются на которой реализована сеть петри дешифрующая видеопоток в реальном времени (причем даже не на x86, а на микроконтроллере).

    со своей стороны я бы посмотрел как вы бы предложили разбирать код более или менее сложной малвари за разумное время.

    одна компания предалага 100,000 фунтов любому кто за 24 часа ответит на вот что делает некий код. исходные тексты виртуальной машины есть. на си. десяток строк. код виртуальной машины 3кб или 256 инструкций (трехадресные дв. слова). а сама виртуальная машина какой-то гибрид NOR с NAND и еще XOR'ом. первый уровень - виртуальый код расшифровывает сам себя. на втором уровне происходит динамическая расшифровка. третий уровень еще одна виртуальная машина. дальше его я не прошел. первые два прошел только потому что модифицировал сорцы виртуалки добавив в них деббагер и логгер.


    а там задача была такая. реализована f(x). переписать ее на си. ну или разобраться что это за f(x) методов черного ящика ;) x - бигнум. так что брутефорт не катит.

    один парень из пекина таки это поломал. и получил 100,000 фунтов. но он задействовал хуман ботнет. а там всего-то было 256 инструкций в которых были впихунты два расшифровщика и еще одна виртуалка. то есть на саму функцию f(x) инструкций почти не оставалось. она была примитивна до ужаса. но все равно хрен взломаешь.
     
  8. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    рр....... верните редактирование....
    я какбэ хотел написать что "стрелкой пирса называется логическая операция" %)
     
  9. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    GoldFinch
    ну это понятно. разговор о том, что этой логической операции достаточно для имплементации любого алгоритма. если у нас есть виртуальный ЦП реализующий NOR, то остальное на фиг не нужно. даже регистры. достаточно стека. хотя это будут тормоза. значит регистры не нужны, только $PC и возможность адресации памяти. ну и гейт для взаимодейстия с внешним миром. но а так мы имеем только NOR. или NAND. причем это не так уж и медленно работает.

    кстати, а вы в курсе, что обфускация на таком уровне уже давно используется в чипах чтобы их не драли? так что методика отработанная ;)

    кстати, мы уже спорили с дерматологом про средства анализа. понятное дело, что обфускация это не панацея, даже если она абсолютная.
     
  10. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    не ужели Крис вернулся! Я то думал вы ушли от нас навсегда. В хакере ни одной статьи с 2009 года. Думал бандюки или фсбэшники
    забрили.
     
  11. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    ... после знаковой статьи в хакере от 2008 года 12 номер. Там про уязвимость некоторых процессоров интела. Вот и подумал грешным
    делом, что взяли человека в оборот.
     
  12. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    прошу прощения за офтоп
     
  13. neutronion

    neutronion New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    1.100
    Однако, Крис, позвольте заметить, что для борьбы с обфускацией требуются новые инструменты, более мощные возможно, чем Ида.
    Тогда получиться, что такой инструмент сможет создать только большая корпорация с большим бюджетом. А поскольку создание
    такого инструмента может быть коммерчески не выгодно, то тогда и создать более или менее приемлемый инструмент против
    обфускации будет затруднительно.
     
  14. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Если все хорошие программы начнут обфусцировать, то на машине клиента будет просто жуткие тормоза. Потому, что ни один процессор не потерпит такого издевательства. Частоты ядер почти не растут, а простое увеличение их количества будет добавлять быстродействия лишь некоторое время.
    Поэтому хорошие программы никогда не будут накрывать этим г.... А разные говённые программы и сейчас накрываются всяким мудрёными протами. Крэкеры всегда будут заняты.

    И ещё, если 20 лет назад крекеру показать сегодняшний навороченный прот, то он просто повеситься от безысходности. Но сегодня же ломают эти проты?
    А с появлением крутых защит вырастет поколение более крутых крэкеров. И для анализа ваших сетей Петри будут использовать нейросети или что-нибудь покруче. Или прямое подключение к компу =O....
     
  15. seniour_juggler

    seniour_juggler Member

    Публикаций:
    0
    Регистрация:
    27 дек 2009
    Сообщения:
    35
    Ну есть у вас транслятор из Си или асма в байт-код какого-то виртуального процессора. Получаем, что каждой инструкции или набору инструкций промежуточного кода (если это из C перевод) или каждой инструкции или набору инструкций асма, как зачастую бывает, соответствет какой-то фиксированный или несколько (немного обычно) шаблонов. Такие шаблоны обычно пытаются спрятать - напихать левых инструкций, которые работают с левой памятью, лапша джамповая, предвычисляемые константы (по-научному - неявные предикаты) и т.д. Одним словом, морфят сверху. Как только удасться разгрести то, что натворил метаморф, что зачастую возможно, осатется анализ шаблонов и нахождение обратного соотвтетствия. Так что, если принцип работы защищалки известен, то декомпилировать, думается мне, возможно. Вопрос лишь в геморрое :) Вот вычисления над зашифрованными данными - это тема, имхо, для обфускации. В ряде случаев, если заюзать механизмы white-box (заменить инструкции или их наборы табличками подстановок на небольшое число бит), так делать можно. Хотя, тут товарищ из IBM нашел решение задачи вычисления над зашифрованными данными в принципе: http://eprint.iacr.org/2009/616.pdf Но до того как это доработать напильником дойдут не скоро те люди, которые пишут защиту :)
     
  16. tex32

    tex32 New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2009
    Сообщения:
    202
    Реверс погубит альтернатива в выборе софта. Когда человеку не нужно будет платить за конкретный продукт, а будет возможность выбрать из десятка аналогов по приемлемым условиям. Ковыряют не ради идеи, а ради результата. "Зачем будет нужно копать, когда можно не копать!" (с)
     
  17. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    tex32
    есть вещи у которых нет аналогов.
    если кто-то хочет реверснуть что-то конкретное с конкретными целями, он не будет искать альтернативу
     
  18. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    neutronion
    > не ужели Крис вернулся!
    а мыщъх никуда и не удалялся. а мои (временные) исчезновения носят сезонный характер.

    > Я то думал вы ушли от нас навсегда. В хакере ни одной статьи с 2009 года.
    из хакера - возможно и навсегда. сейчас мне есть где публиковаться, а вот времени, увы, на этот нет. даже мой блог задвинут и заброшен.

    > Думал бандюки или фсбэшники забрили.
    ну в некотором роде да. щас на правительство работаю.

    > Однако, Крис, позвольте заметить, что для борьбы с обфускацией
    > требуются новые инструменты, более мощные возможно, чем Ида.
    ес-но. не в hex-редакторе же такие вещи ломать ;) инструменты для борьбы с обфускацией пишутся, но как-то лениво и все больше под "себя". на рынке кое что присутствует (ну типа оригами для жабы), но какое-то кривое и не вполне работающее.

    > Тогда получиться, что такой инструмент сможет создать только
    > большая корпорация с большим бюджетом. А поскольку создание
    смотря что мы пишем. для чего-то хватит и нескольких человек, а для чего-то пока вообще нет даже теоритического понимания как это можно проанализировать за разумное время.

    Z3N
    > Если все хорошие программы начнут обфусцировать,
    > то на машине клиента будет просто жуткие тормоза.
    как ни странно, но сейчас даже видепоток декодируется с дикой обфускацией. чисто для примера - мой ноут который даже совсем не десктоп делает mplayer'ом до 300 fps при пережатии dvd без ресайза в mp4. а уж раскодируется это и вовсе при нулевой загрузке процессора.

    > Поэтому хорошие программы никогда не будут накрывать этим г....
    ну вот вирусы накрывают. а мне с ними трахаться приходится.

    > Крэкеры всегда будут заняты.
    увы. крэкерство вымирает. как умерло радиолюбительство, хотя сейчас для него созданы все условия, о которых раньше и мечтать не приходилось. и обфускация тут не при чем. просто народ теряет интерес к компам, а творческие люди переключаются на что-то другое.

    > И ещё, если 20 лет назад крекеру показать сегодняшний навороченный прот,
    > то он просто повеситься от безысходности. Но сегодня же ломают эти проты?
    так ведь никто не говорит, что обфускация делает анализ _невозможным_. но вот соотошение затраченного времени к полученному результату... лет 20 назад программы ломались потому, что не было возможности их легально купить. лет 10 назад потому что найти заветный jx было быстрее, чем ввести номер кредитки (даже у тех у кого она была). а сейчас... ну вот я совершенно не понимаю зачем ломать шаровары? времени на это уйдет... и не факт, что программа не будет падать. и потом никаких обновлений нет. и поддержки. а она иногда требуется. вот щас в раре (а он у меня зарегистрированный) обнаружил баг. буду писать в сапоорт и требовтаь фикса. не восстанавливает время создания папок в консольной версии сцука.

    > А с появлением крутых защит вырастет поколение более крутых крэкеров.
    "это мы уже слышали" (с)

    > И для анализа ваших сетей Петри будут использовать нейросети
    чем тут помогут нейросети?

    > или что-нибудь покруче. Или прямое подключение к компу =O....
    хотелось бы услышать конкретные предложения. сети петри известны давно. и даже на вики описаны с картинками. попробуйте с ними поиграться и предложите вменяемый способ анализа.

    seniour_juggler
    > Ну есть у вас транслятор из Си или асма в байт-код какого-то виртуального процессора.
    > Получаем, что каждой инструкции или набору инструкций промежуточного кода
    это слишком большое упрощение. а если виртуальный процессор реализует одну лишь инструкцию NAND, то у нас даже и опкодов не будут. один данные ;)

    > (если это из C перевод) или каждой инструкции или набору инструкций асма,
    > как зачастую бывает, соответствет какой-то фиксированный или несколько
    > (немного обычно) шаблонов. Такие шаблоны обычно пытаются спрятать
    с шаблонами проще, конечено, но можно и без шаблонов. и целевой код (ну в смысле данные) можно заоптимизить, после чего вообще не понять как оно работает и что оно делает. не говоря уже о том, что можно задействовать различные разделы математики, которые в школе не изучаются. типа на входе имеем набор состояний A, на выходе B. а функция F, отвечающая за преобразование, допустим, табличная, но нетривиальная. комбинируя такие "кирпичики" можно собрать все, что угодно. в простейшем случае F это (как уже говорилось) может быть NAND. ну или набор разных функций типа NOT, OR, XOR, AND чтобы это быстрее пахало.

    > - напихать левых инструкций, которые работают с левой памятью, лапша джамповая,
    обфускация такого типа убирается элементарно. но это уже позавчерашний день

    tex32
    > Реверс погубит альтернатива в выборе софта.
    реверсят не только для взлома ;)

    > Когда человеку не нужно будет платить за конкретный продукт,
    или когда цены на продукты будут адекватны зарплатам :derisive:

    > а будет возможность выбрать из десятка аналогов по приемлемым условиям.
    такого не будет никогда. даже из браузеров особо выбирать не приходится, а ведь это очень жирный шматок рынка. и бесплатность браузеров "оплачивается" рекламой.

    > Ковыряют не ради идеи, а ради результата.
    вот как раз куча народа ковыряет ради интереса.


    > "Зачем будет нужно копать, когда можно не копать!" (с)
    а чтобы размяться ;)
     
  19. luckysundog

    luckysundog New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2008
    Сообщения:
    106
    хорошая такая, научно-фантастическая дискуссия :)
     
  20. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    kaspersky
    А можно ссылку на это оригами? До сих пор не приходилось слышать, что-то сомнительно очень...