Загрузка...

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

Thread in Reversing Lessons created by Grizz1y Oct 25, 2022. 10,369 views

  1. Grizz1y
    Grizz1y Topic starter Oct 25, 2022 В дом надо пускать только того, с кем ты его строишь 4250 Oct 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
     
  2. ИроничныйЧёрт
    Дождались! Спасибо, почитаю
     
  3. v1nn1ty
    v1nn1ty Oct 25, 2022 ######################### 21 Dec 21, 2021
    Все так радужно и красиво
     
  4. 0xc00000e
    0xc00000e Oct 25, 2022 Banned 519 Jan 22, 2022
    пиздец скрины страшные, будто пентагон взламываешь
     
  5. DeadByte
    Ура, новая статья
    The post was merged to previous Oct 25, 2022
    Гризли топ
     
  6. cidll
    cidll Oct 25, 2022 Banned 1046 Sep 5, 2021
    я этого ждал год :pepeNewYear:
     
  7. zxczxcqweqwe
    zxczxcqweqwe Oct 25, 2022 Banned 10 Aug 26, 2021
    пиздец чел, ты че на пути вмешательства в президентские выборы России?
     
    1. Bababasbebebe
  8. Shadowraze
    Shadowraze Oct 25, 2022 682 Jul 15, 2018
    Хотелось бы пояснения к терминологии, а так топ
     
    1. Grizz1y Topic starter
  9. Абстракция
    Абстракция Oct 25, 2022 За деньги - да 794 Sep 19, 2022
    Хорошо оформленно, ахуенная статейка
     
  10. Glep
    Glep Oct 25, 2022 3296 Jan 11, 2021
    а исходник будетб?
     
  11. Сопрано
    Круто очень, было бы ещё интереснее разрезать какой-то ратник, отличная статья.
     
  12. HolyASD
    HolyASD Oct 25, 2022 ( 15,900 Mar 10, 2019
    Этот прицел просто имба!
     
  13. Frankwalter
    Frankwalter Oct 25, 2022 517 Jul 17, 2020
    чёт сложно слишком
     
    1. Grizz1y Topic starter
    2. takeovervest
      Grizz1y, самое классное - это видео полноценного реверса программы от а до я.
    3. Grizz1y Topic starter
  14. its_niks
    its_niks Oct 25, 2022 make testers great again! 16,760 Jan 29, 2021
    Очень круто получилось, без учета того, что я не много не понял.
     
  15. unnamed001
    unnamed001 Oct 25, 2022 5996 Sep 2, 2020
    Думал что-то интересное будет, мб софт/плагин который анализ улучшает, ну а так дефолт. Я ничего нового не узнал.
    Смешно, кстати, что кодер *******а использует api getprocaddress, вместо собственной реализации.
     
    1. Grizz1y Topic starter
      unnamed001, он в принципе апи использует - это детекты
  16. gcc_machine
    хорош мужик
     
  17. methamphetamine
    methamphetamine Oct 25, 2022 Миксер BTC 24/7 - https://lolz.live/threads/8883088 13,826 Dec 15, 2020
    нихуя не пон, но выглядит интересно
     
  18. allwanttokissme
    Неужели новый гайд, наконец-то
     
  19. Siz228
    Siz228 Oct 25, 2022 Растение в горшке осуждает тебя за твои грехи 67 Feb 5, 2020
    давай ревёрс Dcrat
     
  20. Grennnick
    Grennnick Oct 25, 2022 Работаю на количество, а не на количество 12,909 Apr 2, 2021
    Сложновато для моего мозга, но прикольно, топчик
     
Loading...
Top