• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Как правильно изучать malware-кодинг под Windows

Я бы сказал, что нужны структуры данных, и очень, ОЧЕНЬ хорошая логика при обработке состояний. Состояния это вообще отдельная тема. Вот пример. Пишем граббер, казалось бы простой модуль, пройдись рекурсивно по путям в поисках файлов с нужным разрешением и весом.
Какие подводные камни видишь? Если никаких - то тебя подводит логика, а логика тут надо хорошая. Обыграем несколько состояний, чтобы понять подводные камни. Мы дали указания прогрузить файлы, пускай с небольшим весом, jpg. Но граббер не знает на самом деле, сколько этих файлов будет на пк. Нюанс в весе. Нам надо рассчитать свободное место на сервере и суммарный вес файлов. Получается желательно делать пречек, который найдёт все нужные нам файлы на пк, возьмёт их вес и произведёт подсчёт вида свободное место на сервере минус суммарный вес файлов. И только после этого начинать качать файл. Или другое состояние. Мы начали качать файл весом к примеру 2гб. При этом на фронте есть функционал по выгрузке архива лога, в котором в том числе присутствуют сграбленные файлы. Файл ещё качается, а юзер нажал скачать архив с логом на половине загрузки(1гб) Что произойдет? В архиве будут только подгруженные чанки файла(1гб) или фронт не даст скачать архив? (Мы же чанками качаем да? Не как быдло же, не загружаем же весь файл в оперативу?) А может ввести алерт, который скажет о том, что архив нельзя скачать ибо граб файлы не подгрузились? Окей, ввели. А что делать, если при этом бот больше не выйдет в онлайн(ушёл в офф на скачанных 1гб), получается, юзер не сможет скачать архив вовсе, будет алертить? Надо вводить параметр force получается, иначе архив из-за недограбленного файла нельзя будет скачать вовсе. Окей. Некст состояние. Бот на половине загрузки уходит в офф. Что делать, когда он вернётся в онлайн? Получается, надо либо заново перекачивать файл, либо продумать механизм меток, чтобы понимать с какой части файла продолжать догрузку. Окей. Но в админках зачастую присутствует функционал выгрузки сразу нескольких архивов для каждого бота?) Получается нам надо проделать все проверки для всех ботов.
И это только граббер, лайтовый взгляд на проблему, и он оторван от контекста выполнения. То есть продумать как он после перезагрузки запускаться будет, каким образом ему будет передаваться метка загрузки, к примеру.
По этому логика решает, даже не математика. Если все хорошо с ней, то в бой
P.S хз, почему люди, проверяющие софты, так мало на таком акцентируют внимание. Имхо проработка состояний один из важных аспектов при разработке и надо смотреть как оно все проработано, если бы я покупал софт, обращал бы внимание на такие нюансы... при этом дохуя стиллеров на рынке , типо с граббером, но по сути вы вникали вообще как у них это работает?
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
при этом дохуя стиллеров на рынке , типо с граббером, но по сути вы вникали вообще как у них это работает?
95% стилеров на рынке собирают рекурсией с учетом веса пакуют в zlib. Ничего увдивительного. Всем селлерам похуй и они не будут над такими вещами замарачиваться. Лишь бы говно склепать и продать.
И да, удивительно, отстук таких стилеров временами достигает овер 85%. Магия? Сомневаюсь.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А тут стало обидно
Почему? Не изобретать свое, а грамотно по RFC реализовать готовый проверенный алгос можно. Если , конечно, ты понимаешь что делаешь (немало людей лоханулись с самопальными реализациями, из-за путаницы с битами, псевдослучайными числами и т.д.).
А вот чтобы закодить свой супер алгос, ес-но нужно быть математиком высочайшего уровня.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
В локерах с какими кодерами не общался все кричат в один голос что IOCP - панацея. Я тут не соглашусь допустим несколько дисков расшареных на сервере, один быстрый, другой медленный. Большие файлы будут забивать очередь на сканирование пула и будет писать на большой скорости, пока другой диск простаивает.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
это не белый проект. кроме анталитиков, твой код ху кто увидет. и время жизни у него ограниченый.

Да у всего время органичено, особенно если работать массово со спамом, или связками эксплойтов, но если грамотно накодить детект виртов и алго определения ботов то можно достичь более успешного результата
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Спасибо за подробный план. Начал учить чистый С после питона. Но скажите, как обстоят дела с математикой? Хватит школьной математики для написания мальварей, или в этой области вообще она почти не нужна?

Вполне хватит, так как ты нового ничего не придумаешь, будешь как и все копипастить подправляя под себя кодес.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Да у всего время органичено, особенно если работать массово со спамом, или связками эксплойтов, но если грамотно накодить детект виртов и алго определения ботов то можно достичь более успешного результата
лучшем чем что?) . ты щас о своих резултатах или чей то результат не устраивает
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я бы сказал, что нужны структуры данных, и очень, ОЧЕНЬ хорошая логика при обработке состояний. Состояния это вообще отдельная тема. Вот пример. Пишем граббер, казалось бы простой модуль, пройдись рекурсивно по путям в поисках файлов с нужным разрешением и весом.
Какие подводные камни видишь? Если никаких - то тебя подводит логика, а логика тут надо хорошая. Обыграем несколько состояний, чтобы понять подводные камни. Мы дали указания прогрузить файлы, пускай с небольшим весом, jpg. Но граббер не знает на самом деле, сколько этих файлов будет на пк. Нюанс в весе. Нам надо рассчитать свободное место на сервере и суммарный вес файлов. Получается желательно делать пречек, который найдёт все нужные нам файлы на пк, возьмёт их вес и произведёт подсчёт вида свободное место на сервере минус суммарный вес файлов. И только после этого начинать качать файл. Или другое состояние. Мы начали качать файл весом к примеру 2гб. При этом на фронте есть функционал по выгрузке архива лога, в котором в том числе присутствуют сграбленные файлы. Файл ещё качается, а юзер нажал скачать архив с логом на половине загрузки(1гб) Что произойдет? В архиве будут только подгруженные чанки файла(1гб) или фронт не даст скачать архив? (Мы же чанками качаем да? Не как быдло же, не загружаем же весь файл в оперативу?) А может ввести алерт, который скажет о том, что архив нельзя скачать ибо граб файлы не подгрузились? Окей, ввели. А что делать, если при этом бот больше не выйдет в онлайн(ушёл в офф на скачанных 1гб), получается, юзер не сможет скачать архив вовсе, будет алертить? Надо вводить параметр force получается, иначе архив из-за недограбленного файла нельзя будет скачать вовсе. Окей. Некст состояние. Бот на половине загрузки уходит в офф. Что делать, когда он вернётся в онлайн? Получается, надо либо заново перекачивать файл, либо продумать механизм меток, чтобы понимать с какой части файла продолжать догрузку. Окей. Но в админках зачастую присутствует функционал выгрузки сразу нескольких архивов для каждого бота?) Получается нам надо проделать все проверки для всех ботов.
И это только граббер, лайтовый взгляд на проблему, и он оторван от контекста выполнения. То есть продумать как он после перезагрузки запускаться будет, каким образом ему будет передаваться метка загрузки, к примеру.
По этому логика решает, даже не математика. Если все хорошо с ней, то в бой
P.S хз, почему люди, проверяющие софты, так мало на таком акцентируют внимание. Имхо проработка состояний один из важных аспектов при разработке и надо смотреть как оно все проработано, если бы я покупал софт, обращал бы внимание на такие нюансы... при этом дохуя стиллеров на рынке , типо с граббером, но по сути вы вникали вообще как у них это работает?
Позволь усовершенстововать твой план.
Рекурсией ищем файлы, берем их размер. Записываем их во времнный буфер выделенный в куче. После сжимаем и отправляем на гейт. Гейт в свою очередь создает таблицу такого рода и заносит туда данные:
| Путь файла | Имя файла | Размер файла | Загруженная часть файла | Поинт файла | Размер загруженной части файла | Успех |
После гейт просчитывает как ты сказал на доступное место на гейте Т.е. сумарный учет файлов по таблицу "Размер файла" - Дисковое пространсвто гейта. После гейт сортирует файлы по приоритету. Как? Passwords.txt, login.txt, bank.xlcs - впервую очередь заносит в бд, а после в таск.
После наша малварь обращается к гейту за заданием. А задание получает примерно такого рода:
"%sПуть файла%sПоинт файла%s"
Наш граббер берет путь файла, ставит поинт и читает данные, скажем, 5мб в буфер. Этот буфер сжимается. А после отправка на гейт.
Гейт в свою очередь прнимает сжатые данные, учитывает размер данных, после заносит в содержимое файла в таблице + увеличивает поинт. А после процесс обратно продолжается, до окончания файла (когда загруженная часть файла == размер файла). После ставится галочка на столбец "успех" и переходим к след файлу.
Зачем такой гемор? Очень просто, поинт нужно на сервере ставить. На то есть причины. Какие? Вот каким образом будут сохраняться поинты файла в твоем граббере? В локальных структурах? А если комп офнется, то пизда. Писать в реестр палево, пистаь в файл палево.
В моеме случае у бота есть две функции. И очень простые - отправить задание и делать дела по заданию от гейта.
Какие функции надо? Рекурсивный сбор названия файлов + размер. А после по заданию читаем файлы и сжимаем. И рантайм будет чистый.
Главное гейт продумать. А это изи часть.
В моем плане то, что выше описал есть недочеты (да, это я знаю, можно улучшить), но общую картину уловил)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
лучшем чем что?) . ты щас о своих резултатах или чей то результат не устраивает
О своих и резалтах своих партнеров ))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не поздно ли научиться писать вредоносные программы для окон?
Потому что сейчас люди занимаются банковскими операциями по телефону. В Windows популярна область, требующая выкупа. Имеет ли смысл обращаться к вредоносным программам для мобильных устройств? Или это будет пустой тратой времени и слишком поздно, если новичок начнет изучать вредоносные программы для Windows?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не поздно ли научиться писать вредоносные программы для окон?
Потому что сейчас люди занимаются банковскими операциями по телефону. В Windows популярна область, требующая выкупа. Имеет ли смысл обращаться к вредоносным программам для мобильных устройств? Или это будет пустой тратой времени и слишком поздно, если новичок начнет изучать вредоносные программы для Windows?
Если у тебя сомнения перед изучением, значит не стоит изучать.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А что если по всей жизни одни сомнения?
определенно за малварь кодинг могу сказать это. Ты прост понимаешь, что в эту сферу не идут потому что это тренд, перспективно, и прочая хуита. Идут лишь, чтоб тупо ебашить, потому что нравится.

А если сомнения? Лучше соверишть ошибку, чем прожить всю жизнь в сомнениях.
 
Почему? Не изобретать свое, а грамотно по RFC реализовать готовый проверенный алгос можно. Если , конечно, ты понимаешь что делаешь (немало людей лоханулись с самопальными реализациями, из-за путаницы с битами, псевдослучайными числами и т.д.).
А вот чтобы закодить свой супер алгос, ес-но нужно быть математиком высочайшего уровня.
А после всего этого выученого можно будет писать майнер?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ты прост понимаешь, что в эту сферу не идут потому что это тренд, перспективно, и прочая хуита. Идут лишь, чтоб тупо ебашить, потому что нравится.
Именно так. Это должно нравится.
Касаемо перспективности - это опять же, холиварный вопрос. Мы не знаем, что будет дальше, может майкрософт введет цифровые подписи для любого нативного кода, или еще что.. Понятно, что хорошо бы сейчас быть в 95 году, и изучать все это дело на пике популярности. Но что есть то есть. Сомневаетесь - учите андройд, как и было сказано выше. Или веб, вот веб кодинг никогда не умрет, правда там тренды меняются раз в полгода, а знания трехлетней давности уже не нужны, в отличии от фундаментальных знаний лоу левела.

А после всего этого выученого можно будет писать майнер?
О каком майнере речь?
Если закодить свой майнер для какой-то валюты, изучив криптопротоколы , то для такого дела нужны глубокие знания той же математики, ассемблера (причем не на том уровне, как я упоминал в статье, а именно погружение в тему, оптимизации и т.д.).
Если взять с гитхаба xmrig, добавить туда автозагрузку и т.д. и грузить терпилам под видом "читов для гта5", то да, после всего выученного в статье это сделать можно.
 
Сомневаетесь - учите андройд, как и было сказано выше. Или веб, вот веб кодинг никогда не умрет, правда там тренды меняются раз в полгода, а знания трехлетней давности уже не нужны, в отличии от фундаментальных знаний лоу левела.
Если так размышлять, то и про андроид мальвари так же можно легко сказать. Так же, придумают либо подписи, либо запретят с неизвестных источников устанавливать приложения и все поезд уйдет.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Если так размышлять, то и про андроид мальвари так же можно легко сказать. Так же, придумают либо подписи, либо запретят с неизвестных источников устанавливать приложения и все поезд уйдет.
Если так хотели, то давно сделали бы.
Значит кому-то выгодно, чтоб киберкриминалистика жила.
А если даже будут запрещать, то люди которые неделями ворочат миллионами не будут сидеть сложа руки.
 
Если так хотели, то давно сделали бы.
Значит кому-то выгодно, чтоб киберкриминалистика жила.
А если даже будут запрещать, то люди которые неделями ворочат миллионами не будут сидеть сложа руки.
про то и речь
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх