683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
||||||
1 | ||||||
Аналог VirtualProtect08.03.2009, 11:13. Показов 5845. Ответов 24
Метки нет (Все метки)
есть ли в Линукс аналог VirtualProtect
Добавлено через 6 минут 55 секунд функцию нашел токо вот чето не получается
0
|
08.03.2009, 11:13 | |
Ответы с готовыми решениями:
24
VirtualProtect VirtualProtect Использование VirtualProtect VirtualAlloc и VirtualProtect? |
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|||||||||||
08.03.2009, 11:38 | 2 | ||||||||||
Вот инетересно, для кого люди пишут функции так, чтобы они возвращали различные значения на ошибках и при отсутствии ошибок. Убедись. Проверяй возвращаемое значение из mprotect. Она у тебя -1 вернет. То есть, не запротектит область памяти. То есть *p=*p^0x666; вызовет Segmentation fault.
Еще ты очень круто доверяешь всему, что делаешь. Проверки надо делать! Вот ты вызвал malloc. Проверь, что у тебя не ноль. проверь возврат из mprotect. проверь значение c перед вызовом mprotect.
0
|
Любитель давать советы
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
|
||||||
08.03.2009, 12:13 | 3 | |||||
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
||||||
08.03.2009, 13:15 [ТС] | 4 | |||||
но я ведь потом восстанавливаю в PROT_EXEC
Добавлено через 29 минут 30 секунд
0
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||||||
08.03.2009, 13:57 | 5 | |||||
Ну как я пытался понять, ты хочешь изменить код в памяти. Я могу сделать это, например так:
Если бы ты открыл man-страницу, то надо было три раза перечитать: Тогда бы ты увидел сообщение о Invalid argument в mprotect.Исключение EINVAL -
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
||||||
08.03.2009, 14:03 [ТС] | 6 | |||||
а модешь пояснить для чего нужен pagesize?
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
08.03.2009, 14:20 [ТС] | 8 |
0
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||||||
08.03.2009, 14:23 | 9 | |||||
Тебе же написали в документации к функции, что адрес должен быть выровнен по границе страницы. Какие после этого могут быть вопросы.
P. S. если трудно понять булевы операции, то я делал и так:
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
08.03.2009, 14:24 [ТС] | 10 |
да не все ясно
не заметил про ман
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
08.03.2009, 14:39 [ТС] | 12 |
а в каком файле _SC_PAGE_SIZE?
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
08.03.2009, 14:45 [ТС] | 14 |
No manual entry for sysconf
а почему у меня нет мана? может мне че установить?
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
||||||
08.03.2009, 15:33 [ТС] | 16 | |||||
да что тут смешного,а??а еще говорят убунту для новичков даже мана нет
все поставил все маны для девеллопера Добавлено через 38 минут 19 секунд
0
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||||||
08.03.2009, 15:43 | 17 | |||||
Да, блин, я ж кому говорил все проверять. И я в первом сообщении спросил тебя, что это такое?
Я все это писал в первом сообщении. Забил? У тебя есть переменная с она определяет, сколько памяти. Почему ты ее, не проверяешь, а? может ты там -20 байт памяти меняют права доступа, а? Убицца можно ((( Добавлено через 2 минуты 53 секунды
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
||||||
08.03.2009, 15:43 [ТС] | 18 | |||||
Я се проверяю прост чтоб листинг большой не был так прикрепил
0
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||||||
08.03.2009, 15:48 | 19 | |||||
Ёпрст, пойми ты уже.
Страница у тебя например начинается с 800 адреса а адрес функции 850. Доходит на какую длину начиная с 800 нужно менять права доступа? Чтобы до 850 достать и дальше насколько тебе нужно. А у тебя что? Какое-то, блин, магическое:
Блин у тебя это количество байт начиная со страницы! Не с начала функции! Ты же адрес границы страницы передаешь! Ты меняешь права с начала страницы, а пишешь с начала функции. Разница есть?
0
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
|
|
08.03.2009, 15:52 [ТС] | 20 |
блин терь ясно значит адрес страницы нужно,а я то думал любой адрес
а как тода узнать мне адрес страницы где моя функция P.S. просто в винде VirtualProtect использует колличество байт
0
|
08.03.2009, 15:52 | |
08.03.2009, 15:52 | |
Помогаю со студенческими работами здесь
20
Обход VirtualProtect VirtualProtect и отловление ошибок Адресация процедур на asm (дублирование кода, VirtualProtect) Некорректное возвращения значения GetModuleFileName и VirtualProtect + MessageBox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |