ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

проблема со строками C++
  #1  
Старый 16.12.2008, 17:24
fire64
Участник форума
Регистрация: 01.04.2008
Сообщений: 200
Провел на форуме:
1059196

Репутация: 39
По умолчанию проблема со строками C++

суть проблемы такая

есть код следующего вида


PHP код:

#define MRSG  "\x31\xFF\x30\x2E\x30\x2E\x30\x2E\x30\x3A\x30\x00"


int main int argcchar **argv )
{

    
char *parametr = ( argv[1] );

    
char connect[250];

    
strcat (connectMRSG );
    
strcat (connectparametr);

         return  
0;


в результате объединения строк получается следующее

\x31\xFF\x30\x2E\x30\x2E\x30\x2E\x30\x3A\x30 + parametr

тоесть байт x00 из строки исключается


вопрос, как сделать

\x31\xFF\x30\x2E\x30\x2E\x30\x2E\x30\x3A\x30\x00 + parametr
 
Ответить с цитированием

  #2  
Старый 16.12.2008, 17:27
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Скопировать первую, потом ноль, потом вторую

только вот в "строках" C не может быть 0, поэтому это называется не строкой, а буффером.
 
Ответить с цитированием

  #3  
Старый 16.12.2008, 17:35
fire64
Участник форума
Регистрация: 01.04.2008
Сообщений: 200
Провел на форуме:
1059196

Репутация: 39
По умолчанию

ок, из MRSG убрал ноль

сделал так

PHP код:

char connect
[250];

strcat (connectMRSG );
strcat (connect"\x00" );
strcat (connectparametr); 
толку нет, ноля все равно нет
 
Ответить с цитированием

  #4  
Старый 16.12.2008, 18:11
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Код:
#define MRSG  "\x31\xFF\x30\x2E\x30\x2E\x30\x2E\x30\x3A\x30\x00" 
...
memcpy(connect, MRSG, sizeof(MRSG)-1);
memcpy(connect+sizeof(MRSG)-1, parametr, strlen(parametr));
...
memcpy находится в string.h

Последний раз редактировалось bons; 16.12.2008 в 18:22..
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ