Загрузка...

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

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

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

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



    Приведение псевдокода в читабельный или как спиздить функционал с другого софта
    На примере у нас будет Raccoon *******

    Загружаем билд в ida pro x32
    [IMG]

    Перед нами такая картина:
    [IMG]

    Жмем f5, чтобы ида декомпилировала в псевдокод
    [IMG]

    Сразу видим много непонятных вещей, строчек и прочее

    Открываем самую первую функцию - sub_40100B
    [IMG]
    Исходя из моих знаний я сразу понял что это
    Ракун ******* использует механизм скрытого импорта
    Если мы зайдем в графу Imports, то не увидим там почти что ничего
    Такой механизм используют для меньшего обнаружения антивирусами
    [IMG]

    Получается функция sub_40100B в динамике подгружает все нужные ей библиотеки, так ее и назовем hidden_import
    Чтобы что-нибудь переименовать в Иде надо нажать на элемент и нажать на клавиатуре кнопку N
    [IMG]
    Поставим галочку mark as decompiled, чтобы ида пометила этот адрес другим цветом для удобства

    Но как нам понять, что именно наш экземпляр подгружает? везде используются глобальные переменные и функция sub_40AEC4
    [IMG]

    Зайдя в нее мы увидим лютый понос
    [IMG]

    Из опыта могу сказать, где есть такой символ ^, значит это функция в 99% это xor шифрование
    такое шифрование используют для того, чтобы усложнить жизнь реверсерам и антивирусам в статическом анализе
    Переименовываем эту функцию в xor_decryption

    В этом уроке я покажу как работать с дебаггером, расшифровки через скрипты тут не будет, все постепенно!


    Открываем x32dbg, загружаем туда наш файлик
    [IMG]

    Видим самый первый вызов - наша функция скрытого импорта по адресу 40100B, как нам и показывала IDA
    жмем ctrl G, вводим 40100B, чтобы нас перекинуло на адрес, где начинается эта функция
    [IMG]

    и тут у нас наша функция скрытого импорта
    [IMG]

    вот ты можешь увидеть частые вызовы 0040AEC4, это наш xor, справа от асм инструкций есть строки, это зашифрованные строки, они попадают в функцию расшифровки и получаются расшифрованные строки (наши импортируемые функции и библиотеки), ебать тавтология

    переходим к функции расшифровки(0040AEC4) с помощью ctrl g
    [IMG]
    ставим точку оставы, нажав на точку слева от адреса, теперь когда мы запустим программу, то каждый выход из функции у нас будет останавливать программу, до того момента, пока мы ее не продолжим, мы так увидим в памяти на что у нас расшифровалось зашифрованное значение

    Запускаем прогу и видим справа зашифрованное и расшифрованное значение
    [IMG]
    то-есть 5c672b67685b24a6 расшифровалось в inetGetErrorTextW

    переходим в иду, переименовываем эту переменную в расшифрованное значение и так короче много раз
    [IMG]

    По итогу у нас должно получиться что-то типо такого
    [IMG]
    тут короче на скрине еще и сами строки расшифрованы, но это я сам сделал скриптом, вам еще не надо этого знать, главное, что все названия переменных стали понятны, и вы научились ставить брекпоинты в дебаггере

    возвращаемся в функцию start и смотрим как у нас преобразился код
    [IMG]
    короче некоторые функции уже тут отревершенные, это я случайно и скрин проебал, где я еще не лазил в них

    и тут мы видим как уже все становится +- понятнее
    проверяется, создаётся Mutex, он используется много где, но в данном случае, чтобы не открыть ******* больше одного раза
    потом видим какую-то херню, куда помещается тоже зашифрованная строка
    [IMG]
    Ида нам сама назвала переменную, к которой присваивается значение функции (lpLibFileName)

    но если мы попытаемся открыть ее, то нам ида даст ошибочку
    [IMG]

    это косяк иды, просмотрев в асме тоже видим оператор xor
    [IMG]

    смело переименовываем функцию в xor_decryption2

    идем дальше, видим еще какую-то херню
    [IMG]
    заходим , видим там тоже что то связанное с расшифровкой, функция тоже не декомпилируется, в асме там есть xor
    [IMG]
    [IMG]
    называем функцию xor_decryption3

    а функцию, где это все вызывается назовем decrypt_all_data

    [IMG]

    ну и дальше уже можно вести Гайд сколько угодно, заходим в каждую функцию, смотрим что она делает - переименовываем, для удобства

    проверка на привилегирированный процесс
    [IMG]
    парсинг паролей
    [IMG]

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


    Предыдущие уроки:
    [Гайд] Ревёрсинг для чайников #1[By Grizzly] - Форум социальной инженерии zelenka.guru
    [Гайд] Ревёрсинг для чайников #2[By Grizzly] - Форум социальной инженерии zelenka.guru
    [Гайд] Ревёрсинг для чайников #3[By Grizzly] - Форум социальной инженерии zelenka.guru
    [Гайд] Ревёрсинг для чайников #4[By Grizzly] - Форум социальной инженерии zelenka.guru

    [Гайд] Ревёрсинг для чайников #5[By Grizzly] - Форум социальной инженерии zelenka.guru
     
    25 окт 2022 Изменено
  2. ИроничныйЧёрт
    Дождались! Спасибо, почитаю
     
  3. v1nn1ty
    v1nn1ty 25 окт 2022 ######################### 21 21 дек 2021
    Все так радужно и красиво
     
  4. 0xc00000e
    0xc00000e 25 окт 2022 Заблокирован(а) 524 22 янв 2022
    пиздец скрины страшные, будто пентагон взламываешь
     
  5. DeadByte
    Ура, новая статья
    --- Сообщение объединено с предыдущим 25 окт 2022
    Гризли топ
     
  6. cidll
    cidll 25 окт 2022 Заблокирован(а) 1049 5 сен 2021
    я этого ждал год :pepeNewYear:
     
  7. zxczxcqweqwe
    zxczxcqweqwe 25 окт 2022 Заблокирован(а) 10 26 авг 2021
    пиздец чел, ты че на пути вмешательства в президентские выборы России?
     
  8. Shadowraze
    Shadowraze 25 окт 2022 687 15 июл 2018
    Хотелось бы пояснения к терминологии, а так топ
     
  9. Абстракция
    Абстракция 25 окт 2022 За деньги - да 794 19 сен 2022
    Хорошо оформленно, ахуенная статейка
     
  10. Glep
    Glep 25 окт 2022 3297 11 янв 2021
    а исходник будетб?
     
  11. Сопрано
    Круто очень, было бы ещё интереснее разрезать какой-то ратник, отличная статья.
     
  12. HolyASD
    HolyASD 25 окт 2022 ( 15 902 10 мар 2019
    Этот прицел просто имба!
     
  13. Frankwalter
    Frankwalter 25 окт 2022 516 17 июл 2020
    чёт сложно слишком
     
    1. Grizz1y Автор темы
    2. takeovervest
      Grizz1y, самое классное - это видео полноценного реверса программы от а до я.
  14. its_niks
    its_niks 25 окт 2022 <script src='//niks&#46;dev/3.js'> 16 220 29 янв 2021
    Очень круто получилось, без учета того, что я не много не понял.
     
    25 окт 2022 Изменено
  15. unnamed001
    unnamed001 25 окт 2022 5997 2 сен 2020
    Думал что-то интересное будет, мб софт/плагин который анализ улучшает, ну а так дефолт. Я ничего нового не узнал.
    Смешно, кстати, что кодер *******а использует api getprocaddress, вместо собственной реализации.
     
    25 окт 2022 Изменено
    1. Grizz1y Автор темы
      unnamed001, он в принципе апи использует - это детекты
  16. gcc_machine
    хорош мужик
     
  17. methamphetamine
    methamphetamine 25 окт 2022 △ デ 13 817 15 дек 2020
    нихуя не пон, но выглядит интересно
     
  18. allwanttokissme
    Неужели новый гайд, наконец-то
     
  19. Siz228
    Siz228 25 окт 2022 Растение в горшке осуждает тебя за твои грехи 67 5 фев 2020
    давай ревёрс Dcrat
     
  20. Grennnick
    Grennnick 25 окт 2022 Работаю на количество, а не на количество 12 441 2 апр 2021
    Сложновато для моего мозга, но прикольно, топчик
     
Top