Морфинг x86 и x64

Тема в разделе "WASM.BEGINNERS", создана пользователем gato.negro, 28 янв 2021.

  1. gato.negro

    gato.negro New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2021
    Сообщения:
    3
    Привет! Подскажите более-менее полные реализации, все равно на каком языке программирования.
    На входе бинарный x86 код, на выходе тоже бинарный код;) Понятно, что вызовы API и тд заморфить сложно, некоторые условные переходы тоже. И вообще какой должен быть нормальный морфер? Граф вызовов наверное надо стоить? Есть такие реализации ? Прежде чем делать свой - хотелось бы ознакомиться с чужими наработками.
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Это вряд ли технически возможно в полном объеме. Можно канеш map-файл линкера заюзать или какие-то умные дизассемблеры, но с этим или без этого все равно в общем случае сложно отличить код от данных. Куда проще реализовать морфер на базе исходных кодов или какого-то промежуточного представления типа LLVM IR или GIMPLE, возможно, что на уровне объектных файлов можно что-то подумать, но нужна хорошая библиотека, которая может их разбирать, модифицировать и сохранять для линкера (возможно radare2 подойдет, или что-то такое).
    --- Сообщение объединено, 28 янв 2021 ---
    Ну VMProtect, но с открытыми исходными кодами я не припоминаю таких, если знает кто, то напишите.
     
    M0rg0t нравится это.
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Общие случаи - это удел теоретиков. Для практики достаточно частных случаев, выдаваемых конкретными компилями, а там все нормально отличается. Ну и элемент интерактивности в инструмент добавить, если понадобится морфить что-то специфическое, собираемое вручную из опкодов.
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ну ты сам то практик? Запилил уже что-то такое для частных случаев? Может на гитхабе уже лежит и можно на это посмотреть?
     
  5. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Rel,
    А то. Не морферы, правда, а декомпили, но отделять код от данных там тоже нужно. Буду ли я тебе что-то доказывать? Хмм, дай подумать... :)
     
  6. gato.negro

    gato.negro New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2021
    Сообщения:
    3
    Короче смотреть не на что, каждый делает свой велосипед?
     
  7. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    gato.negro,
    В первую очередь тебе нужно будет дизассемблерное ядро. Подавляющее число "виксеров" такое не осилят, поэтому все, что они могут выдать, это скрипты на петоне для иды/гидры/радара/ллвм. Вот и чекай соответствующие репозитории/гитхабы.
     
  8. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Так о чем речь тогда? Или просто пофлудить, как обычно?
     
  9. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Rel,
    Речь о том, что в реальности код от данных отделяется просто.
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ну напиши морфер бинарей тогда, какая проблема, все данные от кода ты отличишь, потом продашь свои наработки какому-нить вмпротекту, им будет очень интересно.
     
  11. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    999
    rmn, а как ведет твой дизасм на коде с антидебаг вставками?
     
  12. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Rel,
    Когда он мне понадобится, тогда и напишу, не сомневайся.

    q2e74,
    Если ты собираешься морфить какой-то код, то какой смысл юзать в нем антидизасм-техники? Добавляй их генерацию в сам морфер.
     
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ну а пока просто пофлудишь, как обычно, ясно-понятно.
     
  14. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Каждый выживает как хочет. Но между тем у меня есть 2 технические статьи здесь, да и нубасам я довольно часто помогаю. Вот чего я не делаю, так это не бью себя тапком в грудь за заслуги, которые никто не видел.

    Ну в этом мы с тобой похожи. Но не уверен кем лучше быть, недееспособным гавном или спецом без мотивации.
    --- Сообщение объединено, 28 янв 2021 ---
    Indy_, скажи честно, тебе просто обидно, что я раньше тебя сказал, что задача отличить код от данных не имеет решения в общем случае, да?
     
    Win32Api нравится это.
  15. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.576
    Не видел ни разу для бинарников какого-либо морфера. Морфят сорцы, исходный код. Для бинарников есть протекторы и подобное. Нет, ну может есть какие-то гении, что могут "пересобрать" ехе, но мне личное такое неизвестно.
    У зомбы был вирус мистфаль или как там его, с подобной идеей.

    даже если и отличать, толку то.
     
  16. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ну как минимум факт, что в оупен сорсе ничего нормального в этой теме нет, о чем то говорит. Собранный исполняемый файл уже потерял в процессе компиляции и линковки всю ценную информацию о коде, которую можно было бы использовать для морфа. В этом сложность. Ну или возможно просто все кругом "такое не осилят, поэтому все, что они могут выдать, это скрипты на петоне для иды/гидры/радара/ллвм", и это звучит так по спецовому, прям как будто у нас теперь два спеца на форуме образовалось.
     
    M0rg0t нравится это.
  17. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Это какую он там информацию потерял кроме идентификаторов?
    --- Сообщение объединено, 29 янв 2021 ---
    О том, что все "специалисты" сидят и дружно ждут, когда на гитхабе появится "хорошая библиотека, которая может их разбирать, модифицировать и сохранять для линкера"?
     
    galenkane нравится это.
  18. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    301
    а шо нам пацанам
     
  19. R81...

    R81... Active Member

    Публикаций:
    0
    Регистрация:
    1 фев 2020
    Сообщения:
    149
  20. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    301
    а можно детально про "средства работы"?