Comeбacк [Немного инфы, немного привет]

  • Автор темы Автор темы 0x000cb
  • Дата начала Дата начала
cpuid inc.
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
6 Авг 2019
Сообщения
1,064
Реакции
760
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
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):
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
кто это?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я думаю, что это нормальная тема анонсировать продажу тулзы, которая ничем не отличается от публичных аналогов, если не уступает им. 99% текста - вода, приправленная ошибочными толкованиями терминов и понятий, которым уже лет 20.

чтобы получить RAT нужен Zydis и OEP
А без zydis и OEP не обойтись? :kappa: Православный XED видимо инструкции не правильно декодит, если речь о релоках заходит. А линейный дизасм запрещен УК РФ.
 
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):
Пожалуйста, авторизуйтесь для просмотра ссылки.
Прорезюмируй суть отсыла, будь добр, потому что доверять такому голословному совету я не могу. Не будь быдлом, изложи в паре абзацев, почему я, и те, кто сейчас в ридонли должы прочесть то, что ты указал? Какова суть, основная концепция, в чем драма...???
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
которая ничем не отличается от публичных аналогов
Ждал такого комента. Я возможно неправильно искал, могёшь подсказать где есть аналоги?
приправленная ошибочными толкованиями терминов и понятий, которым уже лет 20.
Буду рад если исправишь меня, я не отрицаю что возможно неправильно понял инфу, не хочется разносить бред из-за того что я неправильно написал.
Православный XED видимо инструкции не правильно декодит, если речь о релоках заходит. А линейный дизасм запрещен УК РФ.
Ну если подскажешь как это перенести на JNA буду только рад)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Прорезюмируй суть отсыла, будь добр, потому что доверять такому голословному совету я не могу. Не будь быдлом, изложи в паре абзацев, почему я, и те, кто сейчас в ридонли должы прочесть то, что ты указал? Какова суть, основная концепция, в чем драма...???
Ты выделил абсолютно все, не понимаю о каком именно совете идёт речь.
 
2.1. Запрещено оскорбление участников форума в любом виде. В том числе проявление любой грубости, угроз и нецензурных высказываний даже в скрытой форме.
Ты выделил абсолютно все, не понимаю о каком именно совете идёт речь.
Пожри говна, уёбок. Кто ты такой, чтобы указывать мне, человеку, на место в жизни? Ты почему считаешь, шарлатан, что кто-то должен тебя внимательно слушать и мотать на ус чью-то очередную сомнительную модель мироустройства, вместо того, чтобы работать над своей, каждодневно совершенствуя её в ногу со временем? Хуесос ты, а не авторитет. Забирай свое говно и иди кормить им свою мамашу, припёздок. Тоже мне, блеадь, философ, кумир миллионов. Нахуй отсюда пошел со своей лапшой, не расслышал? Будешь люмпенам её развешивать, а здесь люди себя уважающие собрались. Распиаренный ублюдок. А ведь многие идиоты еще и платят пдобным опущенцам за их пропагандистские лекции. Вали отсюда, никчемный придурок. Пришел к дженьельменам и начал среди них срать, пытаясь выдать говно свое за нечто сверх-необхолдимое. Но не вышло, накормили ублядка сполна. А теперь проваливай и больше сюда не суйся, щенок.
 
Пожри говна, уёбок. Кто ты такой, чтобы указывать мне, человеку, на место в жизни? Ты почему считаешь, шарлатан, что кто-то должен тебя внимательно слушать и мотать на ус чью-то очередную сомнительную модель мироустройства, вместо того, чтобы работать над своей, каждодневно совершенствуя её в ногу со временем? Хуесос ты, а не авторитет. Забирай свое говно и иди кормить им свою мамашу, припёздок. Тоже мне, блеадь, философ, кумир миллионов. Нахуй отсюда пошел со своей лапшой, не расслышал? Будешь люмпенам её развешивать, а здесь люди себя уважающие собрались. Распиаренный ублюдок. А ведь многие идиоты еще и платят пдобным опущенцам за их пропагандистские лекции. Вали отсюда, никчемный придурок. Пришел к дженьельменам и начал среди них срать, пытаясь выдать говно свое за нечто сверх-необхолдимое. Но не вышло, накормили ублядка сполна. А теперь проваливай и больше сюда не суйся, щенок.
Все окей? Дурку вызывать надо?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ждал такого комента. Я возможно неправильно искал, могёшь подсказать где есть аналоги?
А что твоя тулза то умеет? Дампить? Так дамперов полно(scylla/ph/etc...). Сигсканить? Так это в ида есть. Фиксить импорты? Этого в интернетах хватает (scylla/wannabeUIF/importREC/etc) Ответь мне на вопрос про уникальные фичи твоей тулзы. (ну кроме всратого ЯП)

Буду рад если исправишь меня, я не отрицаю что возможно неправильно понял инфу, не хочется разносить бред из-за того что я неправильно написал.
Как так то? Разработчик тулзы для работы с PE не шарит за него. А гонору то было ...

Пример: У нас есть функция NtLoadLibrary которая вызывается из дллки ntdll.
Задача: Как заставить системный лоадер пропатчить функцию которая лежит поверх вызова (Т.е в дллке чтобы не делать огромную простыню из оффсетов, компилятор просто закидует вызов в отдельную функцию, которые вызывают другие функции (Уж сорян за тафтологию)).
Ответ: Поместить функцию которую нужно патчить, и через которую будет проходить вызов функции из либы в IAT. Для этого нужно: указать дллку в которой лежит нужная нам функция, указать оффсет по которому лежит функция в дллке (т.е ntdll), указать где лежит функция для патча в нашей дллке.
Шикарное обьяснение работы системы импортов. Не думал пойти преподавать в гарварде CS?

OEP - Обычный DLLMain
OEP - Original Entry Point aka DLLMain так и запишем.

[Текущий базовый адрес + 0x351D].
Я так понимаю релокать можно только указатели?

Для обратной загрузки (:siyozna:) дампа в процесс нужно 3 вещи: IAT (Imports Address Table), RAT (Relocations Address Table), OEP (OriginalEntryPoint/DLLMain).
Угу, это определенно весь возможный список. (spoiler: нет) А если ты обходишься минимально необходимым набором, ответь мне. Накой ляд тебе релоки? Что мешает форсить адрес для выделения памяти. hint: VirtualAlloc msdn.

2. RAT - Обычные релокации, юзаются чтобы указать дллке где лежат данные внутри неё.
Пример: Глобальные переменные/Внутренние функи/Динамические данные.
Задача: У нас есть переменная [offsetTo] нужно сделать так чтобы программа поняла что лежит сейчас в переменной. [offsetTo] это глобальная переменная, именно по этому нужно чтобы программа понимала что СЕЙЧАС лежит в переменной. По стандарту значение в этой переменной: 0x24.
Ответ: Глобальная переменная [offsetTo] загрузится в динамическую память, и будет изменятся 24/7, но выгрузим её мы.
И так, компилятор указал что оффсет по которому лежит значение в переменной в памяти это [Текущий базовый адрес + 0x351D].
Теперь добавляем в RAT это: Оффсет переменной в памяти - 0x351D, Значение по стандарту - 0x24, Места где используется переменная - 0x032A, 0x950E. Запускаем. Магия.
Есчо одно описание заслуживающие оскара .

Ну если подскажешь как это перенести на JNA буду только рад)
Православный ЯП однако ты выбрал для разработки этой софтины(гидра привет). Но доеб не к дизасму был, а к формулировке. Если ты пытаешься обьяснить алгоритм работы для чего ты конкретизируешь используемые тобой библиотеки, как единственно верные для этой задачи. На кой ляд тебе OEP необходим для поиска релоков в дампе можешь обьяснить? Или линейный дизасм использовать религия не позволяет. (Сразу контрю аргумент про скрытые инструкции. Рекурсивным дизасмом в дампе ты рискуешь потерять больше половины необходимого кода.)

p.s
Красивые истории про автоматический отлом софта этой тулзой можешь рассказывать свидетелям иегова. А нормальных людей, но не разбирающихся в теме уведомляю. Процент софтов с которыми это чудо будет реально работать близиться к 1%. Но такие софты отламываются и без крутых тулз от нолика за 1 секунду обычным хуком на WPM/списком загруженных библиотек.
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А что твоя тулза то умеет? Дампить? Так дамперов полно(scylla/ph/etc...). Сигсканить? Так это в ида есть. Фиксить импорты? Этого в интернетах хватает (scylla/wannabeUIF/importREC/etc)
Все по отдельности, у меня все в одном и с приятным интерфейсом. Да, согласен, это не оправдание, но это априоре удобнее чем скачивать кучу разных утилит.
Как так то? Разработчик тулзы для работы с PE не шарит за него. А гонору то было ...
С чего бы? Я не писал что я гипер-мега разработчик который за все шарит, я предполагаю что у меня есть ошибки в формулировке, не хочу дизинформировать народ своими ошибками.
Я так понимаю релокать можно только указатели?
Есть у меня такая глупая привычка, писать ПРИМЕР, если я привожу лишь один ПРИМЕР.
Православный ЯП однако ты выбрал для разработки этой софтины(гидра привет).
Не понимаю в чем доеб однако.
На кой ляд тебе OEP необходим для поиска релоков в дампе можешь обьяснить?
То с чего нужно начинать анализировать дамп.
Накой ляд тебе релоки? Что мешает форсить адрес для выделения памяти. hint: VirtualAlloc msdn.
А что тогда мешает тогда перезапускать приложение пока адреса библиотек не станут как в дампе?

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

То с чего нужно начинать анализировать дамп.
Не понимаешь терминологии? Загугли.

Энивей, я просил объяснить где я ошибся ты начал джаст доебываться к тексту, хз даже где ты меня исправлял.
Все твои объяснения с "примерами" - всеобъемлющий пиздец, который к реальности не имеет никакого отношения. Я даже найти места не могу, за что бы зацепиться. Они в корне не верны, от начала и до конца.

Все по отдельности, у меня все в одном и с приятным интерфейсом. Да, согласен, это не оправдание, но это априоре удобнее чем скачивать кучу разных утилит.
Все это "многобразие уникальных функций" поставляется с x64dbg.

А что тогда мешает тогда перезапускать приложение пока адреса библиотек не станут как в дампе?
Например то, что системные библиотеки до ребута всегда по одним и тем же адресам грузиться будут. Уж извни, ASLR тут тебе не поможет. Собсна конструктивного ответа почему нет я так и не услышал.
 
Назад
Сверху Снизу