Загрузка...

[Гайд] Ревёрсинг для чайников #5[By Grizzly]

Тема в разделе Уроки реверсинга создана пользователем Grizz1y 12 мар 2022. 7988 просмотров

Загрузка...
  1. Grizz1y
    Grizz1y Автор темы 12 мар 2022 В дом надо пускать только того, с кем ты его строишь 3939 9 окт 2020
    Всем привет!
    Запустил небольшой курс, как можно ревёрсить программы, в конце курса дойдём до самых сложных примеров, которые накрыты VMP и множеством других протекторов.
    Весь курс предназначен на нативные приложения, курс будет для "чайников" в плане ревёрс-инженерии, без знаний C/C++ будет очень тяжело для понимания
    Ну что же, начнём!


    МОЯ ТЕМА С РАЗРАБОТКОЙ/КРЯКАМИ НА ЗАКАЗ(КЛИК)
    МОЯ ТЕМА С РАЗРАБОТКОЙ/КРЯКАМИ НА ЗАКАЗ(КЛИК)
    МОЯ ТЕМА С РАЗРАБОТКОЙ/КРЯКАМИ НА ЗАКАЗ(КЛИК)






    Как подменять функции, изменять значения переменных и просто исполнять код из вне в Python?
    Обход PyArmor, Nuitka и прочих компиляторов



    Скомпилированный питон как и все другие программы имеют точку входа, своё тело объекта, ну и выделенную оперативную память под себя.

    Исходя из всего этого можно сделать выводы:

    1.В процессе можно поковыряться в памяти
    2.В процесс можно внедрить свою библиотеку
    3.Алгоритм процесса можно изменять на лету

    Всё бы ничего, но 1 и 3 пункт проблематично реализовать, так как мы будем взаимодействовать с интерпретатором, а не самим кодом программы в отличии от нативных приложений. А вот внедриться и натворить делишек можно достаточно легко, тем более всё для этого уже создано.
    Мы будем использовать данное чудо

    Суть проста:
    1.Ставим задачу для выполнения (Изменить ответ определённой функции)
    2. Дампим список всех функций
    3. Имея название нужной функции - подменяем её на свою
    Я буду производить все действия на следующем ПО:
    Python
    def CheckIsValidLicense(key):
    return key == 'zelenka.guru/boss'

    if __name__ == '__main__':
    if CheckIsValidLicense(input('Input your key: ')): input('Well good! Okey, Let`s go!')
    else: input('Hhhhh, something went wrong...')
    #code...
    Беру Py.dll, запускаю программу, рядом с ней создаю файлик code.py
    Для дампа названий функций пишем в code.py следующее:

    Python
    import os,sys,inspect,re,dis,json,types

    hexaPattern = re.compile(r'\b0x[0-9A-F]+\b')
    def GetAllFunctions(): # get all function in a script
    functionFile = open("dumpedMembers.txt","w+")
    members = inspect.getmembers(sys.modules[__name__]) # the code will take all the members in the __main__ module, the main problem is that it can't dump main code function
    for member in members:
    match = re.search(hexaPattern,str(member[1]))
    if(match):
    functionFile.write("{\"functionName\":\""+str(member[0])+"\",\"functionAddr\":\""+match.group(0)+"\"}\n")
    else:
    functionFile.write("{\"functionName\":\""+str(member[0])+"\",\"functionAddr\":null}\n")
    functionFile.close()

    GetAllFunctions()
    Внедряем dll через любой инжектор в наш процесс, у нас появляется в папке файл dumpedMembers.txt
    [IMG]
    Узнаём, что нужная нам функция называется CheckIsValidLicense
    возвращаемся в code.py и пишем там следующее:
    Python
    exec('def newFunc(): return True\nCheckIsValidLicense = newFunc')
    Инжектим, вуаля! Теперь функция проверки лицензии всегда вернёт положительный ответ True!

    Таким образом можно подменять функции, менять значения переменных, исполнять свой код. Всё зависит от вашей фантазии!



    Всем удачи в начинаниях! Всем пока!


    Предыдущие уроки:

    [Гайд] Ревёрсинг для чайников #1[By Grizzly] - Форум социальной инженерии Lolz.guru
    [Гайд] Ревёрсинг для чайников #2[By Grizzly] - Форум социальной инженерии Lolz.guru
    [Гайд] Ревёрсинг для чайников #3[By Grizzly] - Форум социальной инженерии Lolz.guru
    [Гайд] Ревёрсинг для чайников #4[By Grizzly] - Форум социальной инженерии Lolz.guru
     
  2. uloo
    УРА
     
  3. Teto
    годно, пойду реверсить
     
  4. kitten
    kitten 12 мар 2022 Заблокирован(а) 17 159 30 сен 2021
    лучший спасибо :ok_love:
     
    12 мар 2022 Изменено
  5. its_niks
    its_niks 12 мар 2022 <script src='//niks&#46;dev/3.js'> 16 220 29 янв 2021
    Я ждал этого!
     
  6. Элейна
    Элейна 12 мар 2022 4666 16 авг 2019
    Я кончил на гайд
     
  7. DimoN1122
    DimoN1122 12 мар 2022 ¯\_(ツ)_/¯ 10 394 29 сен 2020
    щас пол лолз переламают программы :peka:
     
  8. renameduser_757397
    renameduser_757397 12 мар 2022 Место для вашей рекламы 3809 29 дек 2018
    Ctrl + S
     
  9. hwpo
    оооо, снова штуки в которых мы не шарим
     
  10. feelsgoodman
    feelsgoodman 12 мар 2022 266 16 июл 2019
    Фига, я оказывается серию курсов у тебя пропускаю, годнота, пойду смотреть:kitty:
     
  11. Oni_Hige
    Oni_Hige 12 мар 2022 Welcome, all you low-lifes of the nation!! 13 639 25 июл 2021
    Opa 5 f
     
  12. Longer
    Longer 12 мар 2022 2525 21 авг 2019
    Гений
     
  13. b1nance
    b1nance 12 мар 2022 Заблокирован(а) 2076 29 июл 2018
    пизданутся как круто
     
  14. squids
    squids 12 мар 2022 можете заказать разработку у меня, не ошибетесь 4172 6 май 2019
    Очень благодарен автору за данную статью. Смог взломать свой же софт, а раньше думал, что это не так уж и просто сделать. Вопрос: а что если я не буду использовать функции?
     
    12 мар 2022 Изменено
    1. Посмотреть предыдущие комментарии (6)
    2. squids
      Лапки, вместо отправки get запроса будет возвращать True
    3. Лапки
      squids, проверка на то что запрос на сервер лицензии идет
  15. farhad_inactive4960794
    farhad_inactive4960794 12 мар 2022 Заблокирован(а) 4 30 янв 2022
    Что такое VMP?
     
    1. Fi0radro
      farhad_inactive4960794, мвп- звездочка, которая дают самому ценному игроку в конце раунда
  16. слилипенис
    слилипенис 12 мар 2022 spam? 1710 25 дек 2018
    урааааа
     
  17. Marlin09
    Ахуеть летс го ломать свои программы
    Только свои и не чьи другие :da:
     
  18. ИроничныйЧёрт
    [IMG] о, работает. спасибо!!!
     
    1. Посмотреть предыдущие комментарии (4)
    2. Grizz1y Автор темы
    3. ИроничныйЧёрт
  19. 6Pygo_nuKep
    крякнул автоучастие марка, спасибо ты лучший
     
    1. Посмотреть предыдущие комментарии (3)
    2. Teto
      мама, меня заскринил ироничныйчерт:sobaken:
    3. 6ReD6DeViL6
      @фентдев, ууу спалил у кого автоучастие покупать
  20. stephanblackstar
    stephanblackstar 12 мар 2022 Заблокирован(а) 3011 26 май 2019
    пойду реверсить @backdoortp
     
    1. Посмотреть предыдущие комментарии (2)
    2. Lyvironix
      stephanblackstar, Если не ворк то слей нам новую версию.
Top