|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
||||||
Трамплин (вставить 5 nop перед jmp)23.04.2021, 17:01. Показов 4115. Ответов 9
Нужно вставить 5 nop'ов в начале какой-нибудь WinAPI функции чтобы обойти проверку на jmp. Как это сделать?
0
|
||||||
| 23.04.2021, 17:01 | |
|
Ответы с готовыми решениями:
9
Вставить в массиве 2 элемента, один перед макс, другой перед минимальным Дан двумерный массив размером 5 * 8, заполненный случайным образом. Вставить перед всеми строками, первый элемент которых делится на3,вставить.... В заданном тексте перед каждой группой цифр, за которой стоит пробел, вставить знак «+», в том случае, если перед этой группой нет знака «-» |
|
841 / 347 / 68
Регистрация: 20.11.2012
Сообщений: 814
|
||
| 23.04.2021, 18:16 | ||
|
Я так понимаю, вы хотите перехватывать API сплайсингом. Тут нужно и правильные привилегии получить и дизассемблер длин иметь (ну или для конкретной функции посмотреть заранее реализацию, что может измениться при очередном обновлении).
1
|
||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
||||||||
| 23.04.2021, 18:30 [ТС] | ||||||||
0
|
||||||||
|
841 / 347 / 68
Регистрация: 20.11.2012
Сообщений: 814
|
||||||||
| 23.04.2021, 18:44 | ||||||||
Сообщение было отмечено eXpl01TeR как решение
Решение
1
|
||||||||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|||||||
| 23.04.2021, 19:51 [ТС] | |||||||
|
https://stackoverflow.com/a/54661410/14410805
0
|
|||||||
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|
| 23.04.2021, 19:52 [ТС] | |
|
Скриншот почему-то не прикрепился (в Cheat Engine когда редактируешь память оно пишет если слишком большая / маленькая длина, я специально написал nop чтобы написало длину)
0
|
|
|
841 / 347 / 68
Регистрация: 20.11.2012
Сообщений: 814
|
|
| 23.04.2021, 21:54 | |
|
В режиме x86 код выше работает.
Проблема в том, что относительное смещение в x64 не влезает в 4-байтный операнд инструкции 0xE9. Почитайте. Можно попытаться выделить память так, чтобы хватило разрядов для относительного прыжка (2 Гб +-), в статье это есть с примером кода (№1). Думаю, можно также полностью перейти на абсолютную адресацию.
1
|
|
|
|
||
| 25.04.2021, 10:52 | ||
|
если уж говорить о проверке, то здесь проверяется флаг (ZF=1). и как выше уже сказали добавление в адрес дополнительных байт просто приведёт в переполнению и программа сломается. и вообще это не правильный метод, точнее не для этой задачи. по факту у вас аж 4 варианта действий: 1. банально убрать условие 2. передать в условие значение *function_A равное 0xe9 3. заменить в регистре значение 0xe9 на значение *function_A 4. изменить флаг ZF на 0
2
|
||
|
841 / 347 / 68
Регистрация: 20.11.2012
Сообщений: 814
|
|
| 25.04.2021, 11:38 | |
|
_lunar_, я так понимаю, что ТС пишет что-то вроде чита и не намерен менять код программы-жертвы. Вопросы задаются относительно кода внедрения, а не относительно проверки в программе. Хотя в таком случае проверка первого опкода вызываемой функции - это что-то не то. Я бы контрольную сумму считал, как минимум...
1
|
|
|
155 / 9 / 2
Регистрация: 14.08.2019
Сообщений: 771
|
|
| 25.04.2021, 21:07 [ТС] | |
|
WhiteP, _lunar_, Спасибо большое за Ваши ответы. Я ещё достаточно неопытен, но мне очень интересно развиваться в подобном направлении. Прошу прощения если мои вопросы показались или покажутся (в будущем) глупыми. <3
Добавлено через 2 минуты Не по теме: _lunar_, Так-же, я хотел бы извиниться за своё поведение вот в этой теме
1
|
|
| 25.04.2021, 21:07 | |
|
Помогаю со студенческими работами здесь
10
Нужно сделать анимацию мотоциклиста, а точнее как он едет, потом заежает на трамплин Вставить элемент перед div-om
Вставить перед каждым ! знаком ? Вставить значение 0 перед элементами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает
Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|