Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.
Как расшарить папку
A: (Drunkard)
Оригинальная ссылка: нету

Вариант 2 (NT)
// Открытие общего доступа к папке в WinNT, Win2000
 
 // Один из самых простых способов по критерию трудозатрат программиста
 
 // Для организации общего доступа используем командный процессор и команду net.
 
 // С этой целью в командной строке следовало бы написать, например :
 
 // net share sharefold=d:\temp\myserv
 
 // Вот и реализуем этот метод через функцию на языке С
 
 // Полное описание net share смотри по команде net help share
 
 
 
 #include <stdlib.h>
 
 // Описание функции
 
 BOOL OpenShareNT(char* NetName, char* LocalName);
 
 // В случае успеха возвращает TRUE, иначе FALSE.
 
 // Первый параметр: LocalName - полный локальный путь к "расшариваемой" папке
 
 // например "d:\\temp\\myserv" (Внимание! Путь не должен заканчиваться символом '\\')
 
 // Второй параметр: NetName - имя, которое будет видно в сети (например "sharefold")
 
 
 
 BOOL OpenShareNT(char* LocalName, char* NetName)
 
 {
 
     BOOL AddShare=FALSE;
 
     char Str[MAX_PATH];
 
     int Error;
 
 // Проверим доступен ли командный процессор
 
     Error=system(NULL);
 
 
 
     if(Error < 0)
 
     {
 
      // Обработчик ошибки: Командный процессор Windows недоступен.
 
     }
 
     else
 
     {
 
         sprintf(Str, "net share %s=%s", NetName, LocalName);
 
 // При исполнении системной команды мелькнет черный экран - не пугайтесь :)
 
         Error=system(Str);
 
 
 
         if(Error < 0)
 
         {
 
          // Обработчик ошибки: Невозможно открыть Общий доступ к папке.
 
         }
 
         else AddShare=TRUE; // Успешно
 
     }
 
     return AddShare;
 
 }
 
 
 
 // Закрытие общего доступа к папке в WinNT, Win2000
 
 #include <stdlib.h>
 
 // Описание функции
 
 BOOL CloseShareNT(char* NetName);
 
 // В случае успеха возвращает TRUE, иначе FALSE.
 
 // Параметр: NetName - существующее сетевое имя
 
 
 
 BOOL CloseShareNT(char* NetName)
 
 {
 
     BOOL CloseShare=FALSE;
 
 
 
     char Str[MAX_PATH];
 
     int Error;
 
 // Проверим доступен ли командный процессор
 
     Error=system(NULL);
 
 
 
     if(Error < 0)
 
     {
 
      // Обработчик ошибки: Командный процессор Windows недоступен.
 
     }
 
     else
 
     {
 
         sprintf(Str, "net share %s /DELETE", NetName);
 
 // При исполнении системной команды мелькнет черный экран - не пугайтесь :)
 
         Error=system(Str);
 
         if(Error < 0)
 
         {
 
          // Обработчик ошибки: Невозможно закрыть Общий доступ к папке.
 
         }
 
         else CloseShare=TRUE; // Успешно
 
     }
 
     return CloseShare;
 
 }
Очевидно, что обе функции легко объединить в одну, и добавив третий параметр в список параметров первой функции, анализировать действие, толи открывать доступ, толи закрывать.


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS