информационная безопасность
без паники и всерьез
 подробно о проекте
Сетевые кракеры и правда о деле ЛевинаВсе любят медАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Мощные индийские ключи 
 Срочные патчи для критических уязвимостей... 
 Очередной рекордный патч Microsoft 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Искодник C++, а ты компилируешь его как C 08.03.03 08:12  Число просмотров: 1355
Автор: ?? . Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Что означает запись:

stack.ExpandableStackBase=PCHAR(stack.ExpandableStackBottom)+x;
^^^^^как это понять?
Что такое PCHAR ? Разве так можно тип использовать ?
<programming>
Непонятки с VC6 06.03.03 15:54  
Автор: ?? Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Проблема такая в общем
Есть пример на vc (из книжки нэббета - пример создания процесса - 6.2)
Пытаюсь откомпилить его в vc6....
Сообщения об ошибках....

Вот кусок кода

IO_STATUS_BLOCK iosb;
USER_STACK stack = {0};
OBJECT_ATTRIBUTES oa = {sizeof oa,0,name,OBJ_CASE_INSENSITIVE};
NtOpenFile(&hFile,FILE_EXECUTE | SYNCHRONIZE,&oa,&iosb,FILE_SHARE_READ,FILE_SYNCHRONOUS_IO_NONALERT);
oa.ObjectName = 0;
NtCreateSection(&hSection,SECTION_ALL_ACCESS,&oa,0,PAGE_EXECUTE,0x01000000,hFile);
NtClose(hFile);
NtCreateProcess(&hProcess,PROCESS_ALL_ACCESS,&oa,NtCurrentProcess(),TRUE,hSection,0,0);
SECTION_IMAGE_INFORMATION sii;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^вот это вот ЗДЕСЬ не нравится компилятору
NtQuerySection(hSection, SectionImageInformation,&sii,sizeof sii,0);
NtClose(hSection);

а далее компилящийся вариант того же самого,только sii раньше разместил

SECTION_IMAGE_INFORMATION sii;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^вот это вот в таком месте программы нормально компилится
IO_STATUS_BLOCK iosb;
USER_STACK stack = {0};
OBJECT_ATTRIBUTES oa = {sizeof oa,0,name,OBJ_CASE_INSENSITIVE};
NtOpenFile(&hFile,FILE_EXECUTE | SYNCHRONIZE,&oa,&iosb,FILE_SHARE_READ,FILE_SYNCHRONOUS_IO_NONALERT);
oa.ObjectName = 0;
NtCreateSection(&hSection,SECTION_ALL_ACCESS,&oa,0,PAGE_EXECUTE,0x01000000,hFile);
NtClose(hFile);
NtCreateProcess(&hProcess,PROCESS_ALL_ACCESS,&oa,NtCurrentProcess(),TRUE,hSection,0,0);
NtQuerySection(hSection, SectionImageInformation,&sii,sizeof sii,0);
NtClose(hSection);

Так вот собсна вопрос - почему приходится описание переменных вначале проги делать - иначе они не понимаются при компиляции....
Пример собирал в ддк 2000 - Free Build Environment и далее в нужном каталоге запускал nmake
Искодник C++, а ты компилируешь его как C 06.03.03 16:08  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Искодник C++, а ты компилируешь его как C 08.03.03 08:12  
Автор: ?? . Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Что означает запись:

stack.ExpandableStackBase=PCHAR(stack.ExpandableStackBottom)+x;
^^^^^как это понять?
Что такое PCHAR ? Разве так можно тип использовать ?
Искодник C++, а ты компилируешь его как C 08.03.03 16:33  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
> Что означает запись:
>
> stack.ExpandableStackBase=PCHAR(stack.ExpandableStackBottom
> )+x;
> ^^^^^как
> это понять?
> Что такое PCHAR ? Разве так можно тип использовать ?
Приведение типа в С++-стиле. В C++ приведение даже к примитивным типам (не классам) можно записывать а-ля конструирование объекта. Правда, запись char *(stack.ExpandableStackBottom), увы, не работает - нужно пользоваться typedef.
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach