Загрузка...

[Guide] Reversing for dummies #5[By Grizzly]

Thread in Reversing Lessons created by Grizz1y Mar 12, 2022. 8230 views

  1. Grizz1y
    Grizz1y Topic starter Mar 12, 2022 В дом надо пускать только того, с кем ты его строишь 4250 Oct 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. Rei
    Rei Mar 12, 2022 out of tune
    годно, пойду реверсить
     
  4. kitten
    kitten Mar 12, 2022 Banned 17,159 Sep 30, 2021
    лучший спасибо :ok_love:
     
  5. its_niks
    its_niks Mar 12, 2022 make testers great again! 16,760 Jan 29, 2021
    Я ждал этого!
     
  6. Элейна
    Элейна Mar 12, 2022 4658 Aug 16, 2019
    Я кончил на гайд
     
  7. DimoN1122
    DimoN1122 Mar 12, 2022 ¯\_(ツ)_/¯ 10,468 Sep 29, 2020
    щас пол лолз переламают программы :peka:
     
  8. renameduser_757397
    renameduser_757397 Mar 12, 2022 Место для вашей рекламы 3806 Dec 29, 2018
    Ctrl + S
     
  9. hwpo
    оооо, снова штуки в которых мы не шарим
     
  10. feelsgoodman
    feelsgoodman Mar 12, 2022 266 Jul 16, 2019
    Фига, я оказывается серию курсов у тебя пропускаю, годнота, пойду смотреть:kitty:
     
  11. Oni_Hige
    Oni_Hige Mar 12, 2022 Welcome, all you low-lifes of the nation!! 14,338 Jul 25, 2021
    Opa 5 f
     
  12. Longer
    Longer Mar 12, 2022 2524 Aug 21, 2019
    Гений
     
  13. b1nance
    b1nance Mar 12, 2022 Banned 2072 Jul 29, 2018
    пизданутся как круто
     
  14. squids
    squids Mar 12, 2022 можете заказать разработку у меня, не ошибетесь 4631 May 6, 2019
    Очень благодарен автору за данную статью. Смог взломать свой же софт, а раньше думал, что это не так уж и просто сделать. Вопрос: а что если я не буду использовать функции?
     
    1. View previous comments (6)
    2. squids
      Лапки, вместо отправки get запроса будет возвращать True
    3. Лапки
      squids, проверка на то что запрос на сервер лицензии идет
  15. farhad_inactive4960794
    Что такое VMP?
     
    1. Fi0radro
      farhad_inactive4960794, мвп- звездочка, которая дают самому ценному игроку в конце раунда
    2. s0lim
      Fi0radro, он имеет в виду vmprotect
    3. renameduser_757397
  16. слилипенис
    слилипенис Mar 12, 2022 spam? 1712 Dec 25, 2018
    урааааа
     
  17. Marlin09
    Ахуеть летс го ломать свои программы
    Только свои и не чьи другие :da:
     
  18. ИроничныйЧёрт
    [IMG] о, работает. спасибо!!!
     
    1. View previous comments (4)
    2. Grizz1y Topic starter
    3. ИроничныйЧёрт
  19. 6Pygo_nuKep
    крякнул автоучастие марка, спасибо ты лучший
     
    1. View previous comments (3)
    2. Rei
      мама, меня заскринил ироничныйчерт:sobaken:
    3. 6ReD6DeViL6
      @фентдев, ууу спалил у кого автоучастие покупать
    4. Мандалорец
      @фентдев, не работает же :broccoli:
  20. stephanblackstar
    stephanblackstar Mar 12, 2022 Banned 3011 May 26, 2019
    пойду реверсить @backdoortp
     
    1. View previous comments (2)
    2. ИроничныйЧёрт
    3. Lyvironix
      stephanblackstar, Если не ворк то слей нам новую версию.
Loading...
Top