Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2012, 18:59   #11
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
Вы так записываете в память, которая может быть занята в любой момент другим процессом (или даже вашим) и тогда все рухнет!
Никакой другой процесс не имеет доступа к адресному пространству вашего.
demoniqus
Есть же функции работы со строками, часть из них вы уже используете.

Вот Вам надо создать буфер способный вмещать две строки.

Код:
char* string1 = "qwerty";
char* string2 = "dummy";

int L1 = strlen(string1);
int L2 = strlen(string2);

char* bufer = new char[L1 + L2 + 1]; // +1 для записи \0 в конце

strcpy(bufer, string1);
strcat(bufer, string2);
EUGY вне форума Ответить с цитированием
Старый 18.04.2012, 18:27   #12
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Никакой другой процесс не имеет доступа к адресному пространству вашего.
VirtualAlloc\WriteProcessMemory зачем тогда?
counter вне форума Ответить с цитированием
Старый 19.04.2012, 00:17   #13
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
VirtualAlloc\WriteProcessMemory зачем тогда?
Процесс должен очень постараться, чтобы записать в чужое адресное пространство. У TC просто нарушение стека, а из-за высказывания о том, что чужой процесс может изменить состояние памяти другого, у него может создаться ложное понятие о своей ошибке.
WriteProcessMemory -ну, допустим.
Но это уже хак, позволяющий переписать состояние даже корректно выделенной памяти. И выходи-не выходи за пределы выделенного массива, данные можно изменить.
Я это так понимаю.
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переполнение stas45rus Паскаль, Turbo Pascal, PascalABC.NET 1 11.01.2012 20:54
переполнение буфера goluzov Общие вопросы C/C++ 21 28.11.2011 09:04
Как подменить адрес возврата функции func на адрес функции f используя переполнение буфера buf и функции gets dmitrii6120 Помощь студентам 6 14.11.2011 20:10
переполнение буфера Dimarik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.07.2011 02:24
Переполнение стека Ake Паскаль, Turbo Pascal, PascalABC.NET 3 30.05.2009 22:39