На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Стирание файла , Как программе стереть саму себя?
    Как описать в программе команду на самоуничтожение?
      Имхо, только создать доп. программку, которая при вызове будет получать ID запущенной проги и по ее завершении уничтожать исполняемый модуль.
        Самоуничтожение программы не возможно
          Denny, в смысле на удаление exe файла?
            ExpandedWrap disabled
              Uses ShellApi;
              procedure TForm1.FormDestroy(Sender: TObject);
              var f:textFile;
                 FileName:String;
              begin
                  FileName:=changefileext(paramstr(0),'.bat');
                  assignFile(f,FileName);
                  rewrite(f);
                  writeln(f,':1');
                  writeln(f,format('Erase "%s"',[paramstr(0)]));
                  writeln(f,format('If exist "%s" Goto 1',[paramstr(0)]));
                  writeln(f,format('Erase "%s"',[FileName]));
                  closefile(f);
                  ShellExecute(Handle, 'Open', PChar(FileName), nil, nil, sw_hide);
              end;
              Можно с помощью сообщения WM_TIMER приказать другому приложению исполнить такой-то код, в данном случае затереть прогу :) А перед этим вырубить эту прогу, чтобы не возмущалась!

              ЗЫ: Сначала надо будет код стирания передать некому приложннию, которое будет тереть прогу. Для этого есть много уязвимостей в виндусе, которые ты и могешь использовать :)
              Вот здесь посмотри:
              http://securitylab.ru/?ID=1671&Search_String=WM_TIMER
              Принцип тотже, только тебе надо затирать прогу :)
              Можешь еще на http://www.securityfocus.com/ и на других сайтах по безопасности. Поищи по строке "WM_TIMER" :)
              Сообщение отредактировано: p_kolya -
                Добавляешь в реестр путь проги в ветку RunOnce при следующем запуске винды, прога сотрется, есть в любом FAQ.

                HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
                Сообщение отредактировано: Art4 -
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0295 ]   [ 16 queries used ]   [ Generated: 9.05.24, 01:50 GMT ]