Автор | С++ (вопросик) |
Если у кого будет идея, как загнать обращение к памяти в функцию, напишите в лс или в скайп kolsya
Спасибо всем...
\
/
Тему закрываю, так как мало кто меня тут понимает... |
для MrSlayer:
Зачем под другую ОС? на любом на линуксе оно будет работать.
Да, ты меня понимаешь :) |
для MrSlayer:
И мне каждый раз не хочется подбирать эту ячейку, как бы это автоматизировать в функции?
ЗЫ - передумал - пусть тема поживет. |
для Koek:
Ну а часть проекта заключается в том, что запускаемая пользователем программа будет сначала творить то, что надо программеру, а только потом только то, что хочет пользователь. И все это будет под винду, с нарушением лицензионного соглашения майкрософта. |
Под винду ОС не даст это сделать, по крайней мере пользователь будет регулярно получать сообщения. К тому же в зависимости от архитектуры INT будет занимать разное количество памяти, соответственно, на локальную переменную ты не попадешь. Плюс если кто-то надумает запустить твою программу с параметрами командной строки, то сначала место выделится под argv[], соответственно все сдвинется вниз.
А вообще это все глупо, делай глобальную переменную вместо локальной. Под нее выделяется место еще до вызова main() |
для Koek:
значит тратим время на что бы придумать велосипед.
будет сначала творить то, что надо программеру тогда проще захардкодить. а ручками рытся в памяти ето плохая затея |
для MrSlayer:
Механическим путем(типа того, как приведено в той строчке), я добился того, что я изменяю значения в винде тех участков памяти, куда доступ закрыт. Правда ОСь потом становится менее адекватной.
А как это автоматизировать - пока для меня проблема. Вот я и пытаюсь найти мысль (и на форме этом тоже) как это упростить. |
для letalis:
Зато это интересно. Что еще делать студенту между пересдачами в гаи и выполнением домашки, если на второе высшее я уже поступил, и при этом успеваю работать?) |
Koek
Access violation ты получишь при изменяю значения в винде тех участков памяти, куда доступ закрыт И это факт |
для MrSlayer:
Не на своем компе еще не тестил. У меня все хорошо. (на виртуалке естественно) |
Koek
Небось ты обращался к области памяти своего же процесса, в другом случае ОС не разрешит этого делать. Смотри в сторону хуков. Создавай экземпляр своей dll внутри другого процесса, а уже потом обращайся к чужой памяти. |
Хороший пример того, как делать не нужно.
Это всё равно, что ездить только по встречной полосе. Интересно же! И получается! Иногда бывают проблемы, но это фигня. Залезем на форум с вопросом "Как повысить комфорт и безопасность при езде по встречке?" Не помогут, так подивятся моей крутости. |
Крутой вираж.. интересно - автор про ООП слыхал? (на всякий - НЕ организация освобождения Палестины)... |
для СвиноПас:
и причем тут ооп? |
для FireSwarm:
Возможно, но нет идеи как сделать "посимпатичней"? |
Ты же пишешь трипак. Гори же ты в аду. |
для ГрязныйРодригес:
хм... я пишу для себя. Лучше бы идею подсказал! |
для Koek:
Рецепт не подскажу, сам таким не занимаюсь, но скажу куда копать.
Что у нас есть. При вызове функции организуется стек. Где? По порядочку всё идёт. Что находится в стеке? Адрес возврата, параметры функции, команды, зона рэд. Зная все эти параметры, можно вычислить нужный адрес, т.е. для первой переменной вызываемой ф-ции без параметров. Можно даже кросплатформенную ф-ю замутить. Но почитать кое чего придётся очень вдумчиво. |
FireSwarm
не получится кросплатформенно :), и уж тем более изменять таким образом память других процессов, как того хочет ТС. |
54. Так без нее сча даже нубы не пишут.... ежель нет объекта - нет программы, процедурно ориентированные фишки даже я забывать уже начал.. |