-
Постов
319 -
Зарегистрирован
-
Посещение
-
Победитель дней
43
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент imaginary
-
Да не буду я искать, я его запускала и он работал), укажи, даже интересно
-
Если в CE, то выдели память, потом сделай проверку на соответствие со счётчиком и нулём, записывай новые адреса в выделенную память, пока они не иссякнут, вот пример, создаёшь поток на code, и в foadr по порядку записываются eax регистры создаваемых потоков, на инструкцию приспособить не сложно. А ещё можно нажать на инструкцию, и там выбрать "Показать все адреса с которыми работает эта инструкция".
-
То что он ничем не исполняется Вот можешь посмотреть, как тут скрипт исполняется новым потоком
-
Можешь сделать что то подобное
-
Наверное там стоит защита на регионе памяти, смотри функции VirtualQueryEx что бы найти начало страницы и VirtualProtectEx что бы изменить права доступа к странице.
-
Да будет всё работать, ещё как будет, докажи что нет, на обычной студии 2019
-
Тут .szExeFile это юникод, и потому не const char *, так что всё будет замечательно
-
Главное что код выходит короче, проще наглядней, и работает правильно
-
Зачем тебе такие сложности, напиши без всяких char, у тебя же есть строка
-
вот тут тоже лучше написать unregistersymbol(sjf), а вот в остальном должно работать, так что это ты делаешь что то не верно
-
Float, поскольку команда movss
-
Да точно так же, только в таблице изменить тип на float у адреса (4 байта выделить), для вычислений fpu использовать если надо
-
Большое исследование - моментальное редактирование
imaginary опубликовал запись в блоге в Всякое разное от imaginary
Уже множество раз разными участниками форума поднимался вопрос о внедрении своих функций (например на С++) в чужой процесс и что бы они там правильно исполнялись. То есть что бы можно было написать свой код, потом включить компиляцию, и функция добавляется в чужой процесс без всяких проблем, на неё можно послать поток игры, сделать прыжок и так далее, изменять когда хочешь на высоком уровне, а не на ассемблере. Мною было проведено исследование в котором было поставлена цель сделать это, и по итогам это вполне возможно! и это просто замечательно! ☺️ Нужно просто написать внедряющую часть, которая учитывает различные моменты и восстанавливает зависимости функции в новом процессе. В этих трёх видео показан процесс исследования с нуля, до успешной работы ? В них нет звука вообще, даже кликов, так что советую включить какую то музыку если будите смотреть А ещё в них прокомментированы действия, и некоторые функции взаимодействия с памятью других процессов, что может быть полезно: В первом виде всё медленно из за моей сонности ? Во втором кульминация продуктивности! В третьем к завершению дополнительно рассмотрено как сделать бегающий по экрану квадратик (к сожалению на видео он мерцает, на самом деле это не так), а ещё в нём почему то гора пропусков в конце, постоянно само ставилось на паузу, но это уже после основной части, где эксперимент объявлен успешно завершённым ? (если кто то что то заметит странное то скажите пожалуйста если не лень) Тут показан общий принцип, если кому ни будь это будет интересно, могу продолжить и добавить перенос других зависимостей что бы можно было писать используя типы, или же вызывать другие функции, которые не помечены как внедряемые (то есть перенос вложенных функций) Добавлены видео: Скучное видео в котором делается AOBscan для автоматического поиска Часть 5, в которой код приводится в порядок и создаются универсальные функции, а потом демонстрируется автоматическое размещение на разные адреса, это лучшее видно в плане принципа работы и кода? Демонстрация того что можно сделать, но уже на 64 бит ☺️ -
В directx11 есть такой код вне функции, он получает структуру со слоями, потом, проверяет каждый слой, если слой (адрес) = 0, то не рисует его, а если не 0, то обрабатывает дальше, а потом удаляет, вот, можно поставить слоям нули и они не будут отрисовываться, слои обновляются каждый проход отрисовки (кадр) и их позиция с адресом тоже. Возможно это тебе как то поможет. Но если ты поставишь нули, то слои не будут удаляться, в итоге их много наберётся и они займут память, так что тут нужно смотреть, а если ты уберёшь создание слоя, то будет такая же рассинхронизация и переполнение, потому нужно редактировать содержимое самого слоя ну или искать выше что там указывает количество слоёв и так далее. Найти функцию эту можешь, пройдя отладчиком в какой то функции отрисовки, например отталкиваясь от позиции камеры.
-
У предметов, координаты обычно без таких прямых указателей, у них есть номер, или уникальный адрес в структуре, или просто так в коде, но он не будет повторяться обычно на следующий раз, потому что генерация произойдёт заново, используй для того что бы найти этот предмет скрипт на обращающейся к нему инструкции и фильтр если он нужен
-
Нет, ты можешь сделать фильтр что бы уже проверенные адреса которые не ведут к твоей инструкции игнорировались, до call eax сделать внедрение и там задавать условие вроде такого Я не думаю что у тебя там так много вариантов будет, скорее просто они много раз вызываются
-
Поставь до call eax брякпоинт и после него, там где тебе нужно проверить eax, потом смотришь значение на первом брякпоинте, запускаешь, и так делаешь до попадания на 2 брякпоинт после запуска первого, и вот какое было значение eax до попадания на 2 брякпоинт, это то что тебе нужно
-
Конечно! так и есть ☺️, только нужно использовать отладчик, ставить брякпоинты, и в общем с начала может быть сложно, попробуй искать поиском уменьшилось / увеличилось / не изменилось, когда значение так поступает, может быть найдётся настоящее значение, оно не обязательно совпадёт с визуальным, можешь замораживать сколько останется и проверять