Гайд [Reverse-Engineering] Лоадер INTERIUM

Разработчик
Статус
Оффлайн
Регистрация
18 Мар 2020
Сообщения
435
Реакции[?]
856
Поинты[?]
180K
=========================================================

Ахтунг! Пожалуйста, перед тем как оставлять комментарий по поводу темы, прочитайте текст в рамке.

Скажу сразу, это перезалив моей статьи с другого форума, поэтому очень высока вероятность того, что информацию которую вы для себя откроете в этой статье более чем не актуальна. (Исключение: CrackMe)

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

=========================================================

Шалом.

Сегодня хочу поведать о том как я реверсил лоадер известного мувмент чита - Interium.

1. Введение
Никакого хейта к кодерам интериума у меня нет, занимаюсь реверсом не для того чтобы кому-то поднасрать с высока своими кряками, а для того чтобы познавать всегда что-то новое. Однако, я испытал настоящий баттхёрт анализируя защиту в лоадере, о всех косяках в защите я не буду рассказывать, расскажу о тупых методах поиска и фатальной для проекта уязвимости из-за которой я без труда пропатчил авторизацию в лоадере.

2. Лоадер
Лоадер накрыт VMProtect, но кодеры назвали две секции с протектором зачем-то Themida.

1.png

Забавно, что кодеры решили возлагать надежды полностью на протектор и не пытаться сделать что-то самим кроме защиты от школоты, поэтому в лоадере так много пробелов в защите. Итак, что же ищет лоадер интериума и как он это делает? У него есть три типа проверки: Чекать имена окон, чекать имена запущенных процессов и чекать наличие файла с логами.

Проверяет имена окон он очень тупо и предсказуемо, в вечном цикле через FindWindowA он проверяет:
Для просмотра содержимого вам необходимо авторизоваться.


2.png

Как же обходить подобные проверки? Да, можно обойтись простым Window Renamer'om, который будет менять название окна на какое пожелаешь. Но всё же я покажу как легко избавиться от подобных проверок. Ставим бряк на FindWindowA, так как он находится в бесконечном цикле то бряк сработает моментально, смотрим регистр EAX и узнаем, что первым делом он чекает есть ли окна с названием Process Hacker.

3.png

В стеке мы можем увидеть адрес из которого был сделан вызов, переходим к нему и видим следующее:



Как вы уже могли понять из скриншота, достаточно пропатчить джамп или пронопать проверку. И так же можно сделать с остальными проверками, следующее он будет проверять на наличие Process Dumper, он обходится таким же способом.

Переходим к следующему типу проверки: Проверка запущенных процессов.
На самом деле я уже рассказывал как с этим бороться в прошлом своем туториале по разбору CrackMe. Достаточно поставить RET в начало функции и второй козырь интериума выходит из строя. Не буду тут расписывать что он ищет, а покажу вам скрин, потому что он пиздец как много ищет))





О третьем типе поиска не очень интересно говорить, разработчики тут так же меня развеселили тем, что пытались найти логи титанхайд на диске С, во время дебага не раз замечал как лоадер пытается найти по такому пути лог "C:\\TitanHide.log"



Теперь расскажу о связи с сервером и какой кринж можно словить анализируя их связь. Соединение там держится на сокетах и http реквестах, про сокеты тут можно забыть, так как серверу вообще поебать на подобные махинации с клиентом. Зацикливаем внимание на http реквестах, именно тут произошел фатальный косяк кодеров, когда у вас имеется подписка вы можете спокойно нажать на кнопку 'INJECT', однако во время всего этого вызывается функция HttpOpenRequestW и передает серверу данные о клиенте по типу "Логин, пароль" и тому подобное. Но если перехватить эту функцию и перейти по ссылке, то оригинальный зашифрованный модуль интериума начнет скачиваться на ваш рабочий стол. Это действительно так, я даже потом сдампил регион виртуальной памяти чита с игры, да бы сравнить размер и разница там была буквально в килобайте.


На скрине слева оригинальный модуль чита полученный с сервера и справа дамп с виртуальной памяти игры.



Казалось бы, раз модуль качается только с кнопки 'INJECT', то у человека без подписки нет шансов получить доступ к модулю. Сильно же я ошибался найдя еще три проверки с авторизацией, после которых будет решено впустить вас в следующее окно с инжектом, или выдать ошибку о том что нет подписки или выдать ошибку о невалид данных. Пронопав все три проверки вы получите чудо как на моём скрине:

Не имею подписки, и юзера с никнеймом 'Colby5Covington' нет на форуме интериума. Самое забавное, что сервер интериума все равно дал разрешение на скачку модуля чита.



4. Бонус
Для просмотра содержимого вам необходимо авторизоваться.


Подписывайтесь на блог моей команды :)
Пожалуйста, авторизуйтесь для просмотра ссылки.


На этом всё. Всем добра и позитива.​
 
09-29-2022 Thu 18:48:59
Эксперт
Статус
Оффлайн
Регистрация
28 Ноя 2019
Сообщения
1,211
Реакции[?]
406
Поинты[?]
103K
=========================================================

Ахтунг! Пожалуйста, перед тем как оставлять комментарий по поводу темы, прочитайте текст в рамке.

Скажу сразу, это перезалив моей статьи с другого форума, поэтому очень высока вероятность того, что информацию которую вы для себя откроете в этой статье более чем не актуальна. (Исключение: CrackMe)

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

=========================================================

Шалом.

Сегодня хочу поведать о том как я реверсил лоадер известного мувмент чита - Interium.

1. Введение
Никакого хейта к кодерам интериума у меня нет, занимаюсь реверсом не для того чтобы кому-то поднасрать с высока своими кряками, а для того чтобы познавать всегда что-то новое. Однако, я испытал настоящий баттхёрт анализируя защиту в лоадере, о всех косяках в защите я не буду рассказывать, расскажу о тупых методах поиска и фатальной для проекта уязвимости из-за которой я без труда пропатчил авторизацию в лоадере.

2. Лоадер
Лоадер накрыт VMProtect, но кодеры назвали две секции с протектором зачем-то Themida.

Посмотреть вложение 185585

Забавно, что кодеры решили возлагать надежды полностью на протектор и не пытаться сделать что-то самим кроме защиты от школоты, поэтому в лоадере так много пробелов в защите. Итак, что же ищет лоадер интериума и как он это делает? У него есть три типа проверки: Чекать имена окон, чекать имена запущенных процессов и чекать наличие файла с логами.

Проверяет имена окон он очень тупо и предсказуемо, в вечном цикле через FindWindowA он проверяет:
Скрытое содержимое

Посмотреть вложение 185587

Как же обходить подобные проверки? Да, можно обойтись простым Window Renamer'om, который будет менять название окна на какое пожелаешь. Но всё же я покажу как легко избавиться от подобных проверок. Ставим бряк на FindWindowA, так как он находится в бесконечном цикле то бряк сработает моментально, смотрим регистр EAX и узнаем, что первым делом он чекает есть ли окна с названием Process Hacker.

Посмотреть вложение 185589

В стеке мы можем увидеть адрес из которого был сделан вызов, переходим к нему и видим следующее:



Как вы уже могли понять из скриншота, достаточно пропатчить джамп или пронопать проверку. И так же можно сделать с остальными проверками, следующее он будет проверять на наличие Process Dumper, он обходится таким же способом.

Переходим к следующему типу проверки: Проверка запущенных процессов.
На самом деле я уже рассказывал как с этим бороться в прошлом своем туториале по разбору CrackMe. Достаточно поставить RET в начало функции и второй козырь интериума выходит из строя. Не буду тут расписывать что он ищет, а покажу вам скрин, потому что он пиздец как много ищет))





О третьем типе поиска не очень интересно говорить, разработчики тут так же меня развеселили тем, что пытались найти логи титанхайд на диске С, во время дебага не раз замечал как лоадер пытается найти по такому пути лог "C:\\TitanHide.log"



Теперь расскажу о связи с сервером и какой кринж можно словить анализируя их связь. Соединение там держится на сокетах и http реквестах, про сокеты тут можно забыть, так как серверу вообще поебать на подобные махинации с клиентом. Зацикливаем внимание на http реквестах, именно тут произошел фатальный косяк кодеров, когда у вас имеется подписка вы можете спокойно нажать на кнопку 'INJECT', однако во время всего этого вызывается функция HttpOpenRequestW и передает серверу данные о клиенте по типу "Логин, пароль" и тому подобное. Но если перехватить эту функцию и перейти по ссылке, то оригинальный зашифрованный модуль интериума начнет скачиваться на ваш рабочий стол. Это действительно так, я даже потом сдампил регион виртуальной памяти чита с игры, да бы сравнить размер и разница там была буквально в килобайте.


На скрине слева оригинальный модуль чита полученный с сервера и справа дамп с виртуальной памяти игры.



Казалось бы, раз модуль качается только с кнопки 'INJECT', то у человека без подписки нет шансов получить доступ к модулю. Сильно же я ошибался найдя еще три проверки с авторизацией, после которых будет решено впустить вас в следующее окно с инжектом, или выдать ошибку о том что нет подписки или выдать ошибку о невалид данных. Пронопав все три проверки вы получите чудо как на моём скрине:

Не имею подписки, и юзера с никнеймом 'Colby5Covington' нет на форуме интериума. Самое забавное, что сервер интериума все равно дал разрешение на скачку модуля чита.



4. Бонус
Скрытое содержимое

Подписывайтесь на блог моей команды :)
Пожалуйста, авторизуйтесь для просмотра ссылки.


На этом всё. Всем добра и позитива.​
Я испугался немного когда перешел на страницу "бонуса"
Расчлененка блять.
 
Пользователь
Статус
Оффлайн
Регистрация
30 Июн 2019
Сообщения
1,064
Реакции[?]
65
Поинты[?]
0
крякни радугу с гайдом)))
сергей зор когда то крякал подменой сервера
 
Забаненный
Статус
Оффлайн
Регистрация
5 Сен 2020
Сообщения
986
Реакции[?]
275
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу