Приложение  откроет сайт и удалится  

                                                     Из  разговора на базаре:    Вот тебе кукиш, чего хочешь того и купишь.

Адрес документа

http://shabronov_s2.dyn-dns.ru/temp/melodii_rnd_del/melodii_rnd_del.doc     инд: 2-22-4    

Архив программ

http://shabronov_s2.dyn-dns.ru/temp/melodii_rnd/melodii_rnd_del.zip

 

От автора:

·        Продолжение темы программирования на FORTH. Пример "ликвидации следов" приложения.

·        Исходные условия смотрите в теме  "Открываем сайт из списка по случайному закону"

Вступление

·        Данная программа, из  области задач поиска, но добавлена способность "самоудаляться".

·        Автор напоминает, что на своем авторском сайте для себя и своих знакомых располагает музыкальные фото события. Соединил  и поместил на своем сайте. 

·        Теперь на сайте есть ссылка, которая запускает случайным образом  музыкальные сайты.

 

·        По ссылке загружается *.exe приложение, открывает сайт из списка по случайному закону и удаляется.

·        Ниже на рисунках-gif показан процесс "музыкального появления" сайтов.

 

·        Если скучно стало друг, ты нажми, увидишь вдруг. ...

 

Текст программы.

·         Программа находиться в архиве  , это текстовый файл melodii_rnd.f

·         Приведен ниже в  таблице текст начинается от раздела "самоудаления". Работа  без удаления смотрите в теме  "Открываем сайт из списка по случайному закону"

 

\  окончился текст программы для работы без удаления

\ ================================================================================================================================

 

CREATE melodii_rnd.txt  0 , 0 ,  ( резервируем адрес и количество записанного в памяти это файл данных melodii_rnd.txt )

\ далее  открываем и записываем  в тело exe приложения  файлы поиска музыки  на этапе компиляции

 

: MELODII_RND_MEM ( слово для подготовки файл простое исполнение требует многих подготовительных слов )

     S" melodii_rnd.txt"   ( An N --  имя файла в котором выполняется поиск  )

     R/W OPEN-FILE-SHARED

     0<>   IF DROP  7 EMIT 7 EMIT BYE THEN ( выходим с пиком если нет файла )

     ( fr -- ) DUP ( fr fr --  открыли файл получили дескриптор и продублировали далее считаем размер файла  )

     FILE-SIZE ( fileid -- ud ior  ) 2DROP ( fr N2 -->  подсчитали Nf и перевели  в одинарное значение из двойного слова )

     DUP  ALLOCATE THROW    (  fr Nf Af  -- заняли память под exe файл начало Af в количестве Nf   )

     SWAP ( fr Af Nf --- в стеке данные выделенной памяти под размер проверяемого файла ) 

     2DUP ( fR Af Nf Af Nf - задублировали  )

     4 PICK ( fr Af Nf Af Nf fr - достали из глубины стека дескриптор открытого файла )

     READ-FILE ( c-addr u1 fileid -- u2 ior )  2DROP (  -->  считали файл в память  и убрали значение считанных байт )

     ( fr Af Nf --  )   ROT CLOSE-FILE ( fr -- ior ) DROP  ( и закрыли тот файл который ужо в памяти  )      

     ( An Nf -- )

;

 

    MELODII_RND_MEM ( An N -  в стеке адрес начала данных и количество )

    DUP  melodii_rnd.txt 4 + ! (  кол-во байт )

    HERE melodii_rnd.txt !  ( adr nачала тут )

    DUP ALLOT   ( An N ) melodii_rnd.txt @ SWAP CMOVE ( перенесли в память программы что бы пользоваться при исполнении )

 

: CREATE_FILE_DELET  ( - создаем файл cmd  в котором пишем удаление через 2 секунды и запускаем его )

   S" del_file_muz.cmd" 2DUP DELETE-FILE ( c-addr u -- ior ) DROP 2DUP ( An n An n---- )

   R/W   CREATE-FILE-SHARED  DROP ( FR -- ) 

   S" TIMEOUT /T 2 /NOBREAK"  2 PICK  WRITE-FILE THROW ( FR - строка задержки выполнения на 2 секунды )

    S" __" ( FR An n -- ) 0x0D 2 PICK C!  0xA 2 PICK 1+ C!  2 PICK WRITE-FILE THROW ( FR - КОД ВК-ПС   )

   S" del melodii_rnd_html_and_delete.exe" 2 PICK WRITE-FILE THROW ( FR )

   CLOSE-FILE ( fileid -- ior ) DROP

   0x100 PAUSE  ( пауза на 255 милисекунд на подготовку файла операционной системой )

   START_link_clik ( запуск командной строки  для удаления файл *.exe )

 ;

 

: START_WWW_RND_TEST_DELETE ( -- запуск  ссылок содержащихся в файле  и удаление после исполнения )

      melodii_rnd.txt DUP  @  SWAP 4 + @ ( Af Nf --  все в памяти ужо )

      POISK_WWW_IN_MEM      ( Af Nf -- An Nf  Ns --   выполняется поиск cтрок в выделенной памяти )

      RND_NS_UST            ( An Nf Ns --  An Nf Nsrnd'  из полученного количества случайным образом выбираем число )

      POISK_NS_IN_MEM       ( An Nf Nsrnd -- Ac Ns -- получаем строку выбранную случайно )

      START_link_clik       ( An n -- выполняем текст ссылки открываем ее браузером )

      CREATE_FILE_DELET  ( - создаем файл cmd  в котором пишем удаление через 2 секунды и запускаем его )

      BYE  ( останавливаем приложение  и файл  через 2 секунды  удалиться )

;

\ добавили другое  стартовое слово для формирования программы удаления файла после исполнения  

  

'  START_WWW_RND_TEST_DELETE   TO <MAIN>     ( установили выполняемое слово )

   S" melodii_rnd_html_and_delete.exe" SAVE  ( записали файл выполнения )

  

   BYE   ( вышли из компиляции текста  )

\ текст программы окончен

 

 

Получение программы из текста.

·        Текст есть, нужен компилятор языка программирования FORTH. Это файл  100_spf4.exe  Он так же находиться в архиве.

·        Кроме того,  в архиве и другие версии FORTH

o       spf4.exe    - версия для приложений до 4мб.

o       JPF375C.EXE - версия компактная, размер ~40кб

o       spf4wc.exe  - версия в формате окна WINDOWS

·        Создать новый  файл melodii_rnd_html_and_delete.exe – выполнить в каталоге компиляцию текста компилятором FORTH spf4.exe   \\100_spf4.exe  melodii_rnd.f <enter>   Сформируется новый исполняемый файл.

·        Ниже на рисунке-gif приведена последовательность распаковки архива melodii_rnd_del.zip и компиляции приложения со всеми версиями FORTH.

 

·        В файле melodii_rnd.txt  расположены ссылки автора. Но Вы можете заменить их на свои.

·        Редактировать txt файл можно любым ТЕКСТОВЫМ редактором, например БЛОКНОТОМ.

·        Формат файла текстовый, кодировка 1251 WIN русская.

·        Для открытия сайтов браузером требуется один файл melodii_rnd_html_and_delete.exe   

·        После открытия сайта, формируется файл формата CMD  del_file_muz.cmd

·        С текстом:

o       TIMEOUT /T 2 /NOBREAK

o       del melodii_rnd_html_and_delete.exe

·        Файл *.exe прекращает работу после открытия сайта.

·        Файл cmd начинает выполняться через 2 секунды и удаляет файл приложения *.exe.  

·        Таким образом файла приложения нет. Остался только след удаления.

·        Однако! Надо помнить, что удален только заголовок из файловой системы, и специальными программами можно "вытащить" данный файл.

·        Файл требуется удалять, что бы при скачивании, не было сообщения, что он уже существует.

 

Выводы  

·        Данная  программа повторяет вызов заставок и "привязывает" точку вызова к "списку вызова".

·        Автор постарался дать текст упрощенный, "ученический" и  в максимально подробном стиле, для уяснения алгоритма. Задача темы показать основные принципы работы FORTa

·        Программа не устанавливается, не прописывается в системные библиотеки.

·        Программа работает под операционными системами WINDOWS 95/98/NT/2000/XP/Vista/Win7/8/10 и использует только функции api- ядра системы

·        Программа написана на языке Форт версия  spf4.exe – автор  А. Черезов  http://www.forth.org.ru

·        Программа доступна для использования, изучения и модификации всем желающим.

·        За модифицированный  тест отвечает сам модификатор. Автор может, при наличии времени, только кратко провести консультацию по используемым им forth-словам.

·        Автор оставляет за собой право на модификацию и улучшение алгоритма и отображения.

---------------------------------------------------------------------------------------------------------------------------------

Автор - Шабронов Андрей Анатольевич  Тс.  +7 913-905-8839     e_mail -  shabronov@ngs.ru  

ред. 2017-11-26  .

    Успехов и здоровья!