Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
pEntity
130 / 144 / 28
Регистрация: 12.12.2012
Сообщений: 1,406
1

VirtualProtect + memcpy - Заблокировать функцию?

11.11.2013, 19:31. Просмотров 404. Ответов 0
Метки нет (Все метки)

Здравствуйте. Мне необходимо в .dll файле заблокировать функцию.

Как это в теории ?

Получить оффсет,можно и сигнатуру,но пускай будет оффсет. Разрешить запись с помощью VirtualProtect. Изменить адрес на nop,чтоб процессор не увидел эту функцию. Вернуть флаги VirtualProtect.

Я получил её оффсет.

.text:1008CEA0 sub_1008CEA0 proc near ; DATA XREF: .rdata:100FBC38o

0x8CEA0 -> 0x8CEA1

Далее я затрудняюсь объяснить почему nop именно такая в 5 байтов:

const unsigned char ret[] = {0x90, 0x90, 0x90, 0x90, 0xE9};

Далее разрешаю запись,изменяю адрес,возвращаю флаги.


DWORD oldflags;
VirtualProtect((void*)GETREALADDR(0x8CEA1), sizeof(ret), PAGE_EXECUTE_READWRITE, &oldflags);
memcpy((void*)GETREALADDR(0x8BC2E), ret, sizeof(ret));
VirtualProtect((void*)GETREALADDR(0x8CEA1), sizeof(ret), oldflags, &oldflags);

В итоге приложение закрывается когда вызывается моя функция. Блок не удался.


Кто может подсказать,что делает инструкция 0xE9 ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2013, 19:31
Ответы с готовыми решениями:

Memcpy, buffer overflow. Может ли возникнуть ошибка в функции memcpy
Бывает ли на практике такое, что код #define size 1000; // some value int x, y; /* ... */...

Подскажите функцию аналог memcpy()
Функция memcpy() копирует из одного массива в другой первые size элементов. А есть аналогичная...

VirtualProtect
Где можно узнать значение последнего параметра VirtualProtect (typedef DWORD* PDWORD) PDWORD...

memset, memcpy
Использую MSVS 2008. Почему memcpy работает только с char? То есть, такой код работает: int...

2d ---> 1d array и memcpy
Можно ли сконвертировать двумерный массив в одномерный с помощью memcpy? Если да, то будет ли...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2013, 19:31

Не работает memcpy
Нужно просто полностью скопировать первый массив, во второй, длина у них одинакова. Делаю так:...

VirtualProtect
Привет всем. Не могу получить доступ к User32.dll. procedure TForm1.Button1Click(Sender:...

Аналог VirtualProtect
есть ли в Линукс аналог VirtualProtect Добавлено через 6 минут 55 секунд функцию нашел токо вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru