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

Discussion in 'WASM.RESEARCH' started by Rel, Feb 18, 2022.

  1. TrashGen

    TrashGen ТрещГен

    Blog Posts:
    0
    Joined:
    Mar 15, 2011
    Messages:
    1,201
    Location:
    подполье
    «Если вы промолвите слово, получите тридцать ударов! Если сохраните молчание, получите тридцать ударов!» (с) Дэшан
    помедитируйте-ка на это, Rel и не переживайте, что я не на вашей и вообще ни на чьей стороне - я могу себе позволить быть человеком по отношению к кому угодно, почему бы и вам не попробовать?
     
    Last edited: Feb 22, 2022
  2. ormoulu

    ormoulu Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2011
    Messages:
    1,206
    :cray:
    --- Сообщение объединено, Feb 23, 2022 ---
    Да
     
  3. TrashGen

    TrashGen ТрещГен

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

    ormoulu Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2011
    Messages:
    1,206
    В мире корпораций, да и вообще в цивилизованом мире все эти протекторы и без того давно стали чем-то неприличным, тем более что опенсорс правит бал. Это теперь локальный феномен местами по СНГ, да на паре сайтов вроде васма (тоже по СНГ). На практике применимость ограничена парой областей вроде малваре да читов с античитами.
    Вопрос в другом.

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

    TrashGen ТрещГен

    Blog Posts:
    0
    Joined:
    Mar 15, 2011
    Messages:
    1,201
    Location:
    подполье
    Врядли ради фана, ради денег, конечно, и из непонимания больших и толстых косяков "защиты", которые они оставили в своих программах. Файнд говорил уже здесь это.
    В случае, что я привел выше, разработчик на делфе, совершенно очевидно, не отдуплял в первых версиях как эта его защита ломается\кейгенится и почему это легко и просто сделать.
     
  6. ormoulu

    ormoulu Well-Known Member

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

    q2e74 Well-Known Member

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

    Thetrik UA6527P

    Blog Posts:
    0
    Joined:
    Jul 25, 2011
    Messages:
    887
    Вот я делал простой модуль (правда на VB6) который ксорит весь код (за исключением расшифровщика) внешним ключом.
     
  9. TrashGen

    TrashGen ТрещГен

    Blog Posts:
    0
    Joined:
    Mar 15, 2011
    Messages:
    1,201
    Location:
    подполье
    а Вот тращ делал и поксорил песь пейлоад на фак вместе с виртуальной машиной. Осмеюсь напомнить, ключом были адреса 4х функций из модуля для расшифровки декомпрессора, вм и прочей картинки, которую Инде предоставил в том же топе по ссылке в начале этого сообщения.
    /me есчо разок кончил^^
     
  10. ormoulu

    ormoulu Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2011
    Messages:
    1,206
    Мне немного лениво ходить по ссылкам (извините), но можно подробностей по поксорингу? Как я понимаю обычный ксор подбирается как нехрен делать просто по предположительным опкодам которые должны быть на том месте.
     
  11. TrashGen

    TrashGen ТрещГен

    Blog Posts:
    0
    Joined:
    Mar 15, 2011
    Messages:
    1,201
    Location:
    подполье
    смотря что за ксор и как долго придется подбирать. легче для нативного модуля это валидный ключ, затем дамп и немного колдовства.
    как morgot сказал в теме по кракме: "у всех такой низкий уровень крякера чтоле?"
     
  12. ormoulu

    ormoulu Well-Known Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2011
    Messages:
    1,206
    Дамп это несомненно хорошо во всех отношениях, но при отсутствии ключа как я понимаю простой ксор это не защита? Если поксореный код конечно больше никак не обфусцирован или там, не пожат хитрым образом.
     
  13. f13nd

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    изображение_2022-02-23_110948.png
    Guardant Stealth. Гавно. Хороший у них только Guardant Code, фиолетовый. Но и то, "хороший" с оговорками.
     
    TrashGen likes this.
  14. TrashGen

    TrashGen ТрещГен

    Blog Posts:
    0
    Joined:
    Mar 15, 2011
    Messages:
    1,201
    Location:
    подполье
    f13nd, не шарю, но снимаю шляпу перед вашими знаниями!
    --- Сообщение объединено, Feb 23, 2022 ---
    любое синхронное шифрование это суть ксор. и ключ может быть разной длины. да много чего может быть, чтобы никто не стал брутфорсить, а поискал ключ, который сам всё расшифрует
     
  15. M0rg0t

    M0rg0t Well-Known Member

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

    f13nd Well-Known Member

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

    M0rg0t Well-Known Member

    Blog Posts:
    0
    Joined:
    Oct 18, 2010
    Messages:
    1,585
    f13nd, но как такое обходят (привязка к серверу)? Нужно поднять левый сервер + отреверсить логику протокола - но если там SSL , это весьма непростая задача. И почему тогда не могут взломать айфоны, в плане разблокировать, сделав левый сервер?

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

    f13nd Well-Known Member

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

    Rel Well-Known Member

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

    Attached Files:

  20. f13nd

    f13nd Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 22, 2009
    Messages:
    2,020
    Не сильно че-то поменялось. Очень остроумный ход с вызовом обработчика 0x49 дважды чтобы проконтролировать не пропатчен ли он, хотя как бы решается простенькой врезкой со счетчиком. Но ладно, если псевдокод надо патчить, таки могём и такое. Искомый вызов 0x49 образуется из 0x8C^0xC5 в псевдокоде, я хочу например заменить обработчик на 0x5E, понравился он мне содержимым. Для этого патчу 0xC5 на 0xD2 и опять предсказуемый успех.
    Code (Text):
    1. #882B: D2
     

    Attached Files:

    TrashGen and Rel like this.