Расчехляйте свои визоры!

Тема в разделе "WASM.RESEARCH", создана пользователем Rel, 18 фев 2022.

  1. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.008
    Адрес:
    подполье
    «Если вы промолвите слово, получите тридцать ударов! Если сохраните молчание, получите тридцать ударов!» (с) Дэшан
    помедитируйте-ка на это, Rel и не переживайте, что я не на вашей и вообще ни на чьей стороне - я могу себе позволить быть человеком по отношению к кому угодно, почему бы и вам не попробовать?
     
    Последнее редактирование: 22 фев 2022
  2. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    991
    :cray:
    --- Сообщение объединено, 23 фев 2022 ---
    Да
     
  3. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.008
    Адрес:
    подполье
    ormoulu, в общем кипиже пропустили ваш вопрос по поводу асинхрона в защитах. Да были, конечно, такие программы, но взглянем на их создание с точки зрения разработчиков. Если вы это 3 с половиной человека и пишете некоторый специфичный продукт, то вам требуется расширение команды для создания своей нормальной защиты людьми, которые понимают _как_ это будет защищено и _почему_ это будет невозможно сломать без валидного ключа. Такой софт, наверняка узкоспециализированный (мало кто про него вообще знает) и пользуются им те же 3 с половиной человека и покупают его за деньги. Если вы это корпорация, которая у всех на виду, то все эти асинхроны поломают за интерес и на зло в ближайшее же время, используя первый же найденный валидный ключ. Как уже было сказано в этой же теме - всё ломаемо, что будет работать у вас локально на компутере при наличии ключа, а после взлома будет работать и не только лишь на вашем компутере. Ещё короче: сложная защита это личный гемор, а также дополнительный интерес, и мотиватор реверсёров.
    --- Сообщение объединено, 23 фев 2022 ---
    Дабы не быть голословным, вот мой личный опыт такой программы. Если в первых версиях серийный номер проверялся одной функцией, которая по сути ксорила на fuck разнообразные идентификаторы железа, то кейген писался тупым рипом защитной функции из IDA (а ломалось всё битхаком). В последующих версиях заасинхронили участки кода не относящиеся к демо версии, у меня не было ключа, взять его было негде (кроме как купить) и меня это остановило, вообщем-то. Последний раз когда интересовался ею, для этой программы вообще какой-то железячный ключ на флешке чтоле нужен был, ну, то же всё самое, наверное, просто покупать некому, тк лично мне не нужно.
     
  4. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    991
    В мире корпораций, да и вообще в цивилизованом мире все эти протекторы и без того давно стали чем-то неприличным, тем более что опенсорс правит бал. Это теперь локальный феномен местами по СНГ, да на паре сайтов вроде васма (тоже по СНГ). На практике применимость ограничена парой областей вроде малваре да читов с античитами.
    Вопрос в другом.

    Но по факту во времена популярности шароваре, и крякерства соответственно, эти три с половиной человека как только не изгалялись чтоб поинтереснее свой "кракмис" исполнить, некоторые похоже что половину времени разработки только на это тратили. И это не считая всяких вмпротов.
    Неужели тоже исключительно ради фана? И возможность поломать оставляли по той же причине?
    --- Сообщение объединено, 23 фев 2022 ---
    Опять же кейгены, почему ключи не делали криптостойкими?
     
  5. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.008
    Адрес:
    подполье
    Врядли ради фана, ради денег, конечно, и из непонимания больших и толстых косяков "защиты", которые они оставили в своих программах. Файнд говорил уже здесь это.
    В случае, что я привел выше, разработчик на делфе, совершенно очевидно, не отдуплял в первых версиях как эта его защита ломается\кейгенится и почему это легко и просто сделать.
     
  6. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    991
    Помню было эпично, когда кто-то незабвенный (а вот кто не помню, может Бэдгай?) провел исследование по взлому программ социнженерией, сэмулировав для этого юного имбецила школьника из бедной семьи и опубликовал результаты. Статья быстро стала популярной, и что меня тогда немало удивило так это что упомянутые разработчики вместо того чтоб написать "Да, уважаемый потребитель, обрати внимание что наша контора вся из себя благотворительная и социально ответственная" брызгали слюной и обещали "больше никогда и никому, хоть умирающего больного на каталке прикатите, ни единого ключика у нас не получите!".
     
    TrashGen нравится это.
  7. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    841
    ух накидали, НЕ ТРИТЕ ТЕМУ ПОЖАЛУЙСТА, потом почитать и по ссылкам сбегать хочется :) СПАСИБО!
     
  8. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    717
    Вот я делал простой модуль (правда на VB6) который ксорит весь код (за исключением расшифровщика) внешним ключом.
     
  9. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.008
    Адрес:
    подполье
    а Вот тращ делал и поксорил песь пейлоад на фак вместе с виртуальной машиной. Осмеюсь напомнить, ключом были адреса 4х функций из модуля для расшифровки декомпрессора, вм и прочей картинки, которую Инде предоставил в том же топе по ссылке в начале этого сообщения.
    /me есчо разок кончил^^
     
  10. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    991
    Мне немного лениво ходить по ссылкам (извините), но можно подробностей по поксорингу? Как я понимаю обычный ксор подбирается как нехрен делать просто по предположительным опкодам которые должны быть на том месте.
     
  11. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.008
    Адрес:
    подполье
    смотря что за ксор и как долго придется подбирать. легче для нативного модуля это валидный ключ, затем дамп и немного колдовства.
    как morgot сказал в теме по кракме: "у всех такой низкий уровень крякера чтоле?"
     
  12. ormoulu

    ormoulu Active Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    991
    Дамп это несомненно хорошо во всех отношениях, но при отсутствии ключа как я понимаю простой ксор это не защита? Если поксореный код конечно больше никак не обфусцирован или там, не пожат хитрым образом.
     
  13. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.786
    изображение_2022-02-23_110948.png
    Guardant Stealth. Гавно. Хороший у них только Guardant Code, фиолетовый. Но и то, "хороший" с оговорками.
     
    TrashGen нравится это.
  14. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.008
    Адрес:
    подполье
    f13nd, не шарю, но снимаю шляпу перед вашими знаниями!
    --- Сообщение объединено, 23 фев 2022 ---
    любое синхронное шифрование это суть ксор. и ключ может быть разной длины. да много чего может быть, чтобы никто не стал брутфорсить, а поискал ключ, который сам всё расшифрует
     
  15. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.524
    Не пойму, какое отношение имеет сложность шифрования к взлому программ? Выполнения программы предполагает, что весь пошифрованный код выполнится, а значит - ключ так или иначе достанется реверсеру. Ну да, простой ксор на 'fuck' можно сбрутить, а RSA нельзя, но толку то. Шифрование придумали для случаев, когда ключ неизвестен, есть только шифротекст.
    Не особо хороший реверсер, но могу сказать, что лучшей защитой является, наверное, онлайн активация + проверка время от времени на сервере. Вот там да, можно применять асиметричное шифрование. И то - в теории, все можно перехватить и взломать.
     
  16. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.786
    Такая привязка к серверу ничем не лучше того же вон Guardant Stealth, который фактически является хранилищем ключей шифрования. Такие защиты держатся на том, что программа становится Неуловимым Джо, в которой просто не станут рыться за те деньги, которые за это дадут. Вообще пользование пиратским ПО, особенно в коммерческих целях - так себе удовольствие, поэтому граждан, тоговых дать много денег за отлом, исчезающе мало. Почти идеальная и почти непобедимая защита это когда часть функционала программы вынесена на сервер или в донгл, причем такая часть, которую нельзя ни отреверсить ни сэмулировать табличным способом. Но такой подход требует определенных усилий со стороны разработчиков и тупо понимания как будет действовать реверсёр (которого у большинства программистов нет), поэтому встречается редко.
     
  17. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.524
    f13nd, но как такое обходят (привязка к серверу)? Нужно поднять левый сервер + отреверсить логику протокола - но если там SSL , это весьма непростая задача. И почему тогда не могут взломать айфоны, в плане разблокировать, сделав левый сервер?

    Донгл это флешка? А почему нельзя повторить ее функционал? По выносу логики на сервер - тут да, но вопрос в быстродействии, наверное..
     
  18. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.786
    На всех уровнях передачи можно эмулировать, в том числе тупо перехватом апей.
    Донгл это контроллер. Разница в том, в каком качестве его используют. Повторить функционал можно, но только если ты можешь этот функционал воспроизвести. Например в программе, которая шьет какие-нибудь устройства, есть несколько тысяч профилей устройств, содержащих ключ для динамической авторизации на устройстве и параметры записи и прочего. Профили зашифрованы заранее, размер выравнен например до 128 байт, чтобы казалось, что там есть соль. Профиль передается донглу, он его расшифровывает и оставляет себе ключ авторизации, остальное возвращает. Когда приходит очередь авторизоваться донглу отдается сид, он считает алгоритмом (которого у тебя нет) с ключем (которого у тебя нет и он передан неявно) кей и возвращает. Обычно в таких случаях снимают таблицы: всё многообразие сидов сопоставляется со всем многообразием кеев (для 4х4 байта это 0x100000000*4=16Гбайт), но залупа в том, что эта таблица всего для одного из нескольких тысяч профилей. И как бы это тупик, хорошего решения нет. Теоретически используя один сид можно расфасовать профили по группам, в которых ключ одинаковый, и снять таблицы для каждой группы, но это уже для самых отчаянных. И в лучшем случае отлом будет весить несколько сотен гигабайт, что немало удивит заказчика.
     
    M0rg0t нравится это.
  19. Rel

    Rel Well-Known Member

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

    Вложения:

    • sample.exe.zip
      Размер файла:
      40,4 КБ
      Просмотров:
      39
  20. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.786
    Не сильно че-то поменялось. Очень остроумный ход с вызовом обработчика 0x49 дважды чтобы проконтролировать не пропатчен ли он, хотя как бы решается простенькой врезкой со счетчиком. Но ладно, если псевдокод надо патчить, таки могём и такое. Искомый вызов 0x49 образуется из 0x8C^0xC5 в псевдокоде, я хочу например заменить обработчик на 0x5E, понравился он мне содержимым. Для этого патчу 0xC5 на 0xD2 и опять предсказуемый успех.
    Код (Text):
    1. #882B: D2
     

    Вложения:

    TrashGen и Rel нравится это.