cpuid inc.
-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
q. Кажется что прошло не так уж и много времени, но поверьте, это было время огромных перемен.
Что изменилось:
- DumpInvoker вырос в огромный проект под названием DPT (Dump Processing Tool). (Лицензия на год от 1,5k ? ? ? )
- DPT обрёл: D2D (DumpToDLL/Из дампа в полноценную дллку без зависимостей), SmartDumper, Invoker, Терминал для управления сегментами, и многое другое. (+GUI)
- DPT на Java (JNA/JFX/Etc stuff).
Q/A (Question/Answer):
Q: Ну а как жи OneTapPatcher веть это твой праект?
A: Да. Только вот я выпускал серию тем где объяснял что OneTapPatcher перерос в DumpInvoker. С DPT я так и не смог создать тему, т.к был в бане. Просить кого-то как минимум глупо, т.к это мой проджект.
Q: А что будет дальше с OneTap? Перестанешь ним заниматься?
A: Планирую перестать. Для обновы уже есть целых 2 человека, которые делают одно и тоже. Никсер (niceiq) и чел который кидает всем фри версию. Не знаю что по рмс/стиллеров у обоих, юзабле на свой страх и риск.
Q: И как ты собираешься билдить из сырого дампа полноценную дллку?
A: Главное это то, что представляет из себя дамп: Полноценную дллку с готовыми адресами и стёртым хеадером, или же кусок рандомного абстрактного кода. Из первого можно легко собрать дллку/Вызвать дамп, из второго все куда сложнее.
Для начала тебе нужно понять что представляет из себя этот кусок абстрактного кода, возможно это просто пару функций, а возможно это полноценный сегмент.
Q: Ну у меня в этом дампе сегмент, что дальше?
A: Для обратной загрузки (:siyozna:) дампа в процесс нужно 3 вещи: IAT (Imports Address Table), RAT (Relocations Address Table), OEP (OriginalEntryPoint/DLLMain).
SmartDumper достаёт их всех если работает прямо в процессе.
И так, для чего нужен каждый из них:
1. IAT - Указывает системному загрузчику по какому оффсету лежит импорт в дллке, чтобы он заменил этот адрес на текущий адрес функи.
Пример: У нас есть функция NtLoadLibrary которая вызывается из дллки ntdll.
Задача: Как заставить системный лоадер пропатчить функцию которая лежит поверх вызова (Т.е в дллке чтобы не делать огромную простыню из оффсетов, компилятор просто закидует вызов в отдельную функцию, которые вызывают другие функции (Уж сорян за тафтологию)).
Ответ: Поместить функцию которую нужно патчить, и через которую будет проходить вызов функции из либы в IAT. Для этого нужно: указать дллку в которой лежит нужная нам функция, указать оффсет по которому лежит функция в дллке (т.е ntdll), указать где лежит функция для патча в нашей дллке.
2. RAT - Обычные релокации, юзаются чтобы указать дллке где лежат данные внутри неё.
Пример: Глобальные переменные/Внутренние функи/Динамические данные.
Задача: У нас есть переменная [offsetTo] нужно сделать так чтобы программа поняла что лежит сейчас в переменной. [offsetTo] это глобальная переменная, именно по этому нужно чтобы программа понимала что СЕЙЧАС лежит в переменной. По стандарту значение в этой переменной: 0x24.
Ответ: Глобальная переменная [offsetTo] загрузится в динамическую память, и будет изменятся 24/7, но выгрузим её мы.
И так, компилятор указал что оффсет по которому лежит значение в переменной в памяти это [Текущий базовый адрес + 0x351D].
Теперь добавляем в RAT это: Оффсет переменной в памяти - 0x351D, Значение по стандарту - 0x24, Места где используется переменная - 0x032A, 0x950E. Запускаем. Магия.
3. OEP - Обычный DLLMain. Тут даже без задачи.
Пример: Системный лоадер выгрузил дллку в память, теперь он вызовет DLLMain с аргументами, т.к в хеадере написан оффсет где лежит этот самый OEP.
Q: Нихуя не понял. У меня дамп без хеадера, тут везде написано что нужен хеадер, ты еблан?
A: Хеадер нужен для системного загрузчика, но можно и без него обойтись, если хорошенько постараться.
Чтобы получить IAT нужно просто просканировать сегмент в процессе, чтобы получить RAT нужен Zydis и OEP, и немного магии, чтобы получить OEP нужен паттерн или же рантайм.
Q: Соболезную. И что теперь делать?
A: Ждать релиза софта/Пойти поиграть с OneTap/ПРОСИТЬ У МЕНЯ ONETAPPATCHER (Этим чувакам я особенно рад).
Q: Т.е мне нужно будет покупать этот софт чтобы дампнуть чит и играть с ним без лаунчера?
A: И да, и нет. Если в чите есть VMP/Аналогичная штучка которая защищает все что только можно и мутирует код - я не помогу. Ну а по поводу покупки: Иду по стопам продавца onetap.
Q: А нахуя мне эта информация?
A: Немного инфы никогда не помешает.
P.S Нет, на зоне не насиловали.
P.P.S Стикерпак про никсера (Telegram):
Что изменилось:
- DumpInvoker вырос в огромный проект под названием DPT (Dump Processing Tool). (Лицензия на год от 1,5k ? ? ? )
- DPT обрёл: D2D (DumpToDLL/Из дампа в полноценную дллку без зависимостей), SmartDumper, Invoker, Терминал для управления сегментами, и многое другое. (+GUI)
- DPT на Java (JNA/JFX/Etc stuff).
Q/A (Question/Answer):
Q: Ну а как жи OneTapPatcher веть это твой праект?
A: Да. Только вот я выпускал серию тем где объяснял что OneTapPatcher перерос в DumpInvoker. С DPT я так и не смог создать тему, т.к был в бане. Просить кого-то как минимум глупо, т.к это мой проджект.
Q: А что будет дальше с OneTap? Перестанешь ним заниматься?
A: Планирую перестать. Для обновы уже есть целых 2 человека, которые делают одно и тоже. Никсер (niceiq) и чел который кидает всем фри версию. Не знаю что по рмс/стиллеров у обоих, юзабле на свой страх и риск.
Q: И как ты собираешься билдить из сырого дампа полноценную дллку?
A: Главное это то, что представляет из себя дамп: Полноценную дллку с готовыми адресами и стёртым хеадером, или же кусок рандомного абстрактного кода. Из первого можно легко собрать дллку/Вызвать дамп, из второго все куда сложнее.
Для начала тебе нужно понять что представляет из себя этот кусок абстрактного кода, возможно это просто пару функций, а возможно это полноценный сегмент.
Q: Ну у меня в этом дампе сегмент, что дальше?
A: Для обратной загрузки (:siyozna:) дампа в процесс нужно 3 вещи: IAT (Imports Address Table), RAT (Relocations Address Table), OEP (OriginalEntryPoint/DLLMain).
SmartDumper достаёт их всех если работает прямо в процессе.
И так, для чего нужен каждый из них:
1. IAT - Указывает системному загрузчику по какому оффсету лежит импорт в дллке, чтобы он заменил этот адрес на текущий адрес функи.
Пример: У нас есть функция NtLoadLibrary которая вызывается из дллки ntdll.
Задача: Как заставить системный лоадер пропатчить функцию которая лежит поверх вызова (Т.е в дллке чтобы не делать огромную простыню из оффсетов, компилятор просто закидует вызов в отдельную функцию, которые вызывают другие функции (Уж сорян за тафтологию)).
Ответ: Поместить функцию которую нужно патчить, и через которую будет проходить вызов функции из либы в IAT. Для этого нужно: указать дллку в которой лежит нужная нам функция, указать оффсет по которому лежит функция в дллке (т.е ntdll), указать где лежит функция для патча в нашей дллке.
2. RAT - Обычные релокации, юзаются чтобы указать дллке где лежат данные внутри неё.
Пример: Глобальные переменные/Внутренние функи/Динамические данные.
Задача: У нас есть переменная [offsetTo] нужно сделать так чтобы программа поняла что лежит сейчас в переменной. [offsetTo] это глобальная переменная, именно по этому нужно чтобы программа понимала что СЕЙЧАС лежит в переменной. По стандарту значение в этой переменной: 0x24.
Ответ: Глобальная переменная [offsetTo] загрузится в динамическую память, и будет изменятся 24/7, но выгрузим её мы.
И так, компилятор указал что оффсет по которому лежит значение в переменной в памяти это [Текущий базовый адрес + 0x351D].
Теперь добавляем в RAT это: Оффсет переменной в памяти - 0x351D, Значение по стандарту - 0x24, Места где используется переменная - 0x032A, 0x950E. Запускаем. Магия.
3. OEP - Обычный DLLMain. Тут даже без задачи.
Пример: Системный лоадер выгрузил дллку в память, теперь он вызовет DLLMain с аргументами, т.к в хеадере написан оффсет где лежит этот самый OEP.
Q: Нихуя не понял. У меня дамп без хеадера, тут везде написано что нужен хеадер, ты еблан?
A: Хеадер нужен для системного загрузчика, но можно и без него обойтись, если хорошенько постараться.
Чтобы получить IAT нужно просто просканировать сегмент в процессе, чтобы получить RAT нужен Zydis и OEP, и немного магии, чтобы получить OEP нужен паттерн или же рантайм.
Q: Соболезную. И что теперь делать?
A: Ждать релиза софта/Пойти поиграть с OneTap/ПРОСИТЬ У МЕНЯ ONETAPPATCHER (Этим чувакам я особенно рад).
Q: Т.е мне нужно будет покупать этот софт чтобы дампнуть чит и играть с ним без лаунчера?
A: И да, и нет. Если в чите есть VMP/Аналогичная штучка которая защищает все что только можно и мутирует код - я не помогу. Ну а по поводу покупки: Иду по стопам продавца onetap.
Q: А нахуя мне эта информация?
A: Немного инфы никогда не помешает.
P.S Нет, на зоне не насиловали.
P.P.S Стикерпак про никсера (Telegram):
Пожалуйста, авторизуйтесь для просмотра ссылки.