Загрузка...

Деобфусцируем python

Тема в разделе Уроки реверсинга создана пользователем ksajfkhsd89fyh3j 8 авг 2021. 2683 просмотра

Загрузка...
  1. ksajfkhsd89fyh3j
    ksajfkhsd89fyh3j Автор темы 8 авг 2021 298 4 май 2021
    Сегодня я расскажу как можно деобфусцировать эту обфускацию https://development-tools.net/python-obfuscator/ Пример кода:
    Код
    print("Лучшая отработка баз https://zelenka.guru/threads/2740630/")
    Обфусцируем на сайте и получаем это
    Код

    import base64, codecs
    magic = 'cHJpbnQoItCb0YPRh9GI0LDRjyDQ'
    love = 'igTP0LQDfAPk0Y7EtgP60YNt0YUD'
    god = 'sNC3IGh0dHBzOi8vbG9sei5ndXJ1'
    destiny = 'Y3EbpzIuMUZiZwp0ZQLmZP8vXD=='
    joy = '\x72\x6f\x74\x31\x33'
    trust = eval('\x6d\x61\x67\x69\x63') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x6c\x6f\x76\x65\x2c\x20\x6a\x6f\x79\x29') + eval('\x67\x6f\x64') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x64\x65\x73\x74\x69\x6e\x79\x2c\x20\x6a\x6f\x79\x29')
    eval(compile(base64.b64decode(eval('\x74\x72\x75\x73\x74')),'<string>','exec'))
    Открываем питон и начинаем деобфусцировать. Все что тут нужно - расшифровать то что в скобочках. начнем с joy
    Код

    >>> joy = '\x72\x6f\x74\x31\x33'
    >>> joy
    'rot13'
    >>>
    Продолжим, но уже в trust
    Код

    >>> z = '\x6d\x61\x67\x69\x63'
    >>> z
    'magic'
    >>>
    Тут видно что есть переменная magic. Поэтому подставляем ее. Продолжаем.
    Код

    >>> x = '\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x6c\x6f\x76\x65\x2c\x20\x6a\x6f\x79\x29'
    >>> x
    'codecs.decode(love, joy)'
    >>>
    Видим что это функция. Так же подставляем ее. В итоге вместо предыдущего должно получится:
    Код

    trust = magic + codecs.decode(love, joy) + god + codecs.decode(destiny, joy)
    Можно этой строкой заменить обычный trust, все так же должно работать.
    затем закрываем python.
    В обфусцированном скрипте удаляем последнюю строку, и добавляем это
    Код

    r = open('res.py','wb')
    r.write(base64.b64decode(trust))
    r.close()
    Должно получится это
    Код

    import base64, codecs
    magic = 'cHJpbnQoItCb0YPRh9GI0LDRjyDQ'
    love = 'igTP0LQDfAPk0Y7EtgP60YNt0YUD'
    god = 'sNC3IGh0dHBzOi8vbG9sei5ndXJ1'
    destiny = 'Y3EbpzIuMUZiZwp0ZQLmZP8vXD=='
    trust = magic + codecs.decode(love, 'rot13') + god + codecs.decode(destiny, 'rot13')
    r = open('res.py','wb')
    r.write(base64.b64decode(trust))
    r.close()
    Затем просто выполняем скрипт, и получаем расшифрованный код в res.py
     
  2. Lol_ya_nn
    Lol_ya_nn 8 авг 2021 . 1032 11 окт 2020
    1. Посмотреть предыдущие комментарии (1)
    2. Lol_ya_nn
      005, статьи вирусологии, ГДЕ ТУТ ВИРУСОЛОГИЯ? СДЕСЬ КУРС КАК ЗАЩИТИТЬ Print(" lolzteam топ 1 форум!")
    3. wtfbrowhoareyou
      Lol_ya_nn, Во-первых, какая вирусология? Речь идет о деобфускации, что как раз таки является частью реверса.
  3. CoderVir
  4. lynossd
    lynossd 26 май 2023 3 11 июн 2022
    имба тема, все понятно :+rep:
     
Top