Даём на клык 'реверсерам' с помощью XORа строк

Тема в разделе "С/С++, C#, Delphi, .NET, Asm", создана пользователем kent9876, 30.06.2018.

  1. kent9876
    kent9876

    Guest

    Депозит:
    0 р.
    Гарант сделок:
    0
    Статус:
    Оффлайн
    Репутация:
    +0 / -0
    Привет! Надеюсь ты видел сливы всяких софтин, сорика например, или недавний "слив" клиппера Данижа.

    Так вот, сегодня мы будем давать этим сливерам на клык, с помощью XORa строчек.



    СТАРТ
    Первым делом нам нужен сам XOR алгоритм, он строится на обмене при помощи исключающего "OR". Те как это работает..

    Из курса информатики надеюсь все помнят таблицы истинности значения.




    Если X | Y == 1, то результат 1
    Если X&Y == 1, то результат 1
    Если X&Y == 0, то результат 0




    НО! Используя XOR алгоритм, при одинаковых значениях X&Y результат будет O

    Если X&Y == 1, то результат 0
    Если X&Y == 0, то результат 0


    А если приглядеться в результат применения XOR, можно увидеть, что мы можем восстановить одно из слагаемых(X\Y) при помощи второго...

    Z = XOR X and Y
    X = XOR Z and Y
    Y = XOR Z and X
    А вот здесь, можно сделать вывод, что мы можем воссоздать в обратной последовательности наши исходные данные. То-то оно нам и пригодится...

    ACTION
    Использовать для шифрования мы будем Python(3.6). А шифровать мы будем строки в C++ приложении...

    Берем исходник XOR шифрования на Python на моем гитхабе: Что бы посмотреть ссылку войдите или зарегистрируйтесь

    Ставим необходимые модули, и открываем сорц. Спускаемся вниз и находим строчку...

    Код:
    enc = xor("1     ")
    !ОБРАТИТЕ ВНИМАНИЕ НА ЗАМЕНУ СИМВОЛОВ '\r' | '\n'!


    Открыли? -Отлично, теперь нам необходимо проверить работу XOR шифрования.

    Нам необходимо в указатель 'enc' добавить XOR слова 'test', для теста..

    Код:
    enc = xor("test")
    и делаем декрипт этого указателя..

    Код:
    dec = xor(enc)
    Теперь, для теста, нам нужно вывести их на экран..

    Код:
    print("Encrypted string: " + enc)
    print("Decrypted string: " + dec)
    Сейчас вы должны убедиться в том, что строчка правильно расшифровалась. Сверьте значение 'dec' в консоле с вписанной нами строчкой "test".

    !ОБРАТИТЕ ВНИМАНИЕ НА ЗАМЕНУ СИМВОЛОВ '\r' | '\n'!
    Все гуд? Переходим к следующей части..

    MAGIC?
    Теперь нам необходим алгоритм XORа на C++, нам жеж нужно их расшифровывать..

    Что бы посмотреть ссылку войдите или зарегистрируйтесь


    Тоесть, чтобы нам дать на клык реверсерам - необходимо взять строчку, которой вы хотите дать на клык реверсеру.

    Пихуем ее сначала в скрипт на питоне, получаем шифрованную строчку.

    Код:
    Encrypted string: N1212A_DFGFG_Klik (пример из головы)
    Теперь идем обратно в C++ исход и оборачиваем строчку в такой формат:

    Код:
    XOR("N1212A_DFGFG_Klik")
    Вот и все, в памяти строчка расшифруется, получит свой первозданный вид, и продолжит работу. А реверсер пососет ваш длинный ключ))0



    Заключение
    В заключении хочу сказать, что алгоритм эффективен не всегда. Некоторые, более продвинутые реверсеры начнут реверс строк, и таки достанут нужные строки. Но XOR как минимум отобъет основной костяк мамкиных реверсов.

    Есть множество других способов анти-реверс фич, но о них чуть позже. =)


    Оригинал статьи у меня в телеграфе: Что бы посмотреть ссылку войдите или зарегистрируйтесь

    Бложик: Что бы посмотреть ссылку войдите или зарегистрируйтесь
    (если реклама - уберу)
     
    • Нравится Нравится x 1
  2. Eredel
    Eredel

    123

    Депозит:
    0 р.
    Гарант сделок:
    0
    Статус:
    Оффлайн
    Регистрация:
    28.03.2018
    Сообщения:
    19
    Репутация:
    +25 / -2
    Рид учит как делать среньк среньк в ротик крякерам, полезно важно справедливо не врёт покупайте
     
    • Нравится Нравится x 2
  3. Rzeźnik
    Rzeźnik

    123

    Депозит:
    0 р.
    Гарант сделок:
    0
    Статус:
    Оффлайн
    Регистрация:
    06.11.2018
    Сообщения:
    3
    Репутация:
    +1 / -0
    При трассировке твоя "расшифрованная" строка прекрасно палится в стеке.
    После расшифровки и использования её необходимо шифровать обратно.
     
    Последнее редактирование: 06.11.2018
  4. HaRBiNgeЯ
    HaRBiNgeЯ

    123

    Депозит:
    0 р.
    Гарант сделок:
    0
    Статус:
    Оффлайн
    Регистрация:
    08.11.2018
    Сообщения:
    10
    Репутация:
    +1 / -0
    Да ну борода какая то, это максимум против дизассемблера поможет.
    Когда аттачишся к запущеному процессу то там сразу раскрипченые строчки будут если как писал человек выше "их не шифровать обратно".
    Здесь даже и реверсером быть не нужно чтобы уметь тыкнуть Файл -> Присойденится и выбрать процесс.
     
Похожие темы
  1. blocher1337
    Ответов:
    3
    Просмотров:
    1,102
  2. blocher1337
    Ответов:
    10
    Просмотров:
    437
  3. Katiks
    Ответов:
    4
    Просмотров:
    530
  4. dezza

    '

    dezza, 03.02.2018, в разделе: Ищу работу
    Ответов:
    6
    Просмотров:
    559
  5. Kloodyks
    Ответов:
    18
    Просмотров:
    393
Загрузка...
  • О НАС

    DarkWebs.ws — форум, посвященный вопросам заработка в интернете, различные схемы мошенников, IT вопросам и многое другое. Это форум о заработке в сети интернет.

  • FAQ

  • ОТВЕТСТВЕННОСТЬ

    Администрация не несет никакой ответственности за публикации на данном форуме. Если Вы считаете, что в темах и сообщениях может содержаться информация, запрещенная к распространению, просим незамедлительно сообщить Администрации.

    Abuse email: abuse@darkwebs.ws

  • ПАРТНЕРЫ

    Яндекс.Метрика