Перейти к публикации

hunter

Новичoк
  • Публикации

    29
  • Зарегистрирован

  • Посещение

Репутация

0 Neutral

Блок посетителей профиля отключен и не будет отображаться другим пользователям

  1. Итак, по каким-то причинам вы решили изучить , как же все таки пишут эту малварь под винду. Причины, по которым тема может заинтересовать человека, весьма разные, и не обязательно деструктивные - кто-то хочет стать петухом авером/вайтхетом, кому-то просто интересно, как оно устроено. В общем, причин много, и это все лирика. Конечно, в инете есть множество статей вида "пишем ботнет на петоне" и тому подобное школотворчество, и наверняка многие их читали - но толку с таких мануалов весьма немного. Их авторы (зачастую полные нубы) не дают никакого понимания базы, основ, а попросту пишут инструкцию из серии сделай говно на палке из говна и палки, зарабатывая плюсики. Конечно, кому-то и этого достаточно, а кому нет, то читайте дальше. Основной тезис, который нужно усвоить: малварь - это обычная программа, выполняющая те или иные действия. Соответственно, вы должны просто научиться программировать под конкретную платформу. Поскольку большинство интересует именно Windows, то рассмотрим именно эту ОС (да и я ничего, кроме винды, и не знаю). 0х0 Итак, начнем. В школе сначала учатся читать и писать, а потом уже переходят к другим дисциплинам, в случае же нашей темы - вы должны уметь пользоваться Windows , на уровне уверенного пользователя / начинающего сисадмина. Понятно, что если вы читаете эту статью, значит какие-то навыки работы с компьютером у вас есть. Но соц.сети и ютуб это не то, что нужно. Вы должны уметь пользоваться командной строкой Windows (cmd.exe) , "путешествовать" по файловой системе, иметь базовые понятия о .bat файлах, переменной %PATH% (знать что это, уметь добавить/удалить туда значения). Нужно разобраться и настроить виртуальную машину, т.к. во-первых, подобный софт может убить основную ОС, а во-вторых , малварь придется проверять на разных выпусках и версиях винды. Конкретную литературу к этому пункту не могу посоветовать, т.к. у всех разный уровень знаний. Теория: "Утилиты Sysinternals. Справочник администратора."https://rutracker.org/forum/viewtopic.php?t=4222897 https:https://ab57.ru/syssuite.html Практика: установить виртуалку (VirtualBox или другую), поставить туда семерку / ХР. В командной строке перейти в другую папку, на другой диск, создать файл, удалить файл, выполнить программу из цмд . Справку ищите на https://ab57.ru или в гугле. 0х1 Далее, нужно определится с языком программирования, т.е. на чем все это дело будет создаваться. Если вкратце, то учить надо язык Си. Если подробнее - язык программирования должен быть нативным (т.е. никаких фреймворков и прочее) и компилируемым (не скрипты). На эту тему можно много холиварить, почему так , а почему не учить петон, а вот на шарпе... Я уже говорил много раз, как первый язык нужно то, где нет ничего лишнего вида неотключаемых библиотек, фреймворков, сборщиков мусора. Именно чистый код. Изучите это - можете потом писать на чем угодно, но начинать учиться нужно именно с такого языка. Языков много, но в принципе, выбирать можно между Си и Паскалем. Почему не Ассемблер? С него очень тяжело начинать, я знаю это по своему опыту. Изучая Ассемблер в качестве первого языка , вы будете вынуждены учить и сам Асм, и основы программирования, и WinApi (поскольку в Асма нет никакой стандартной библиотеки). Т.е. чтобы вывести строку на экран или там записать в файл, вам надо будет параллельно изучить чудесный мир Windows API, с миллионом параметров и тысячей типов данных , да еще и ксорить дворды конвертировать это в Асм-код. В то время как Си или Паскаль на этом этапе позволят "схалявить" и использовать простые функции. Почему не С++ ? Потому что в нем нет никаких преимуществ перед чистым Си в контексте нужной нам задачи, а учить ООП и новые стандарты с 0 - нереально (и бессмысленно). Настоящие плюсы - это фабрики, шаблоны, итераторы, умные указатели , буст и т.д. и т.п, а не "Си с классами" образца 94 года , как видят С++ многие. Со временем, возможно, вы захотите перейти на плюсы, но не сейчас. Есть еще freebasic и прочая экзотика, но эти языки менее популярны, и в случае чего (нет инклуда, какая-то ошибка) не у кого будет спросить. Вначале обучения это очень важно, когда есть ошибка, которая не гуглится и спросить особо не у кого. Поэтому - либо Си, либо Паскаль. С чего бы не начали, правда, надо учесть, что знание Си (на уровне чтения сорцев) все равно будет нужно , т.к. все эти MSDN и книги содержат примеры именно на этом языке. В данной заметке я тоже буду ориентироваться на Си, поэтому изучайте Си. Касаемо паскаля - если у кого есть на примете хорошая книга для начинающих (и мысли на эту тему) , пишите здесь. Я могу вспомнить только Столярова https://xss.is/threads/28946/ , но и у него паскаль идет сугубо как подготовка к Си-кодингу. Теория: Стивен Прата "Язык программирования С. Лекции и упражнения".https://rutracker.org/forum/viewtopic.php?t=4791274 Она подойдет тем, кто начинает с полного 0, т.к. там все разжевано до мельчайших деталей. Брайан Керниган, Деннис Ритчи. "Язык программирования Си" https://rutracker.org/forum/viewtopic.php?t=32310 более сложная книга (относительно первой), но это классика (авторы создали язык Си). Практика: Все упражнения из книги (закодить самому , разобраться как что и почему работает, поэкспериментировать с разными возможностями языка). Установить Visual Studio, там хорошая пошаговая отладка, подсветка синтаксиса, автодополнение и т.д. Почитать справку, как там дебажить, потестить на практике (регистры, память, переменные). 0х2 Изучив базовые основы языка Си, можно двигаться дальше , а именно - приступить к изучению WinApi. Основная разработка в ОС Windows идет с помощью Win32 Api - это , так сказать, самый низкий (из документированных Майкрософтом) уровень для разработки под винду в юзермоде. Еще есть Native Api и даже прямой вызов сисколов, но пока этого всего не надо. Вам нужно усвоить базовую информацию по разработке под Windows - что такое поток, процесс, служба, как разрабатываются многопоточные приложения и т.д. Параллельно нужно совершенствовать знания языка Си, а именно - изучить базовые алгоритмы. С некоторыми из них вы должны были уже встречаться ранее. Знание алгоритмов нужно, чтобы быть именно нормальным программистом, а не "быдлокодером". Также некоторые системные структуры (да и просто чужие сорцы) могут использовать все эти хэш таблицы, двусвязные списки, и подобное. Конечно, в любом языке программирования давно существуют стандартные библиотечные средства для такого. Но - вам нужно понимать, как все это дело устроено на низком уровне, а уж потом юзать готовое. Вообще, в процессе обучения нужно делать свои "велосипеды", чем больше тем лучше. Теория: Финогенов К.Г "Win32. Основы программирования" https://rutracker.org/forum/viewtopic.php?t=908022 , самая простая и базовая книга по WinApi. К сожалению, автор ее писал лет 20 назад, когда еще все было по другому, но все же. https://firststeps.ru/mfc/winapi/win/apiwind1.html - основы винапи на русском языке, и вообще полезный сайт Керниган, Пайк "Практика программирования" https://rutracker.org/forum/viewtopic.php?t=3049308отличная книга (один из авторов - создатель Си и Go), как раз на тему алгоритмов и разработки в целом. Практика: Напишите простейшие GUI приложения под винду. Никаких компонентов, чистый WinApi (окна, диалоги). Потестируйте разные примеры с книги Финогенова. Доработайте свои примеры из книг по Си (раздел 0х1), добавив туда окна. К примеру, окно, форма ввода открыть такой-то файл, если ок - считать данные с него, если не ок - вывести ошибку. 0х3 Вы уже прошли основы WinApi, более-менее уверенного владеете языком Си, пришла пора полностью погрузится в программирование под Windows. Изучить различные системные механизмы, подробнее ознакомится с процессами, межпроцессным взаимодействием, созданием сервисов, устройством памяти винды, динамические библиотеки и прочая и прочая - в общем, изучить все кирпичики, из которых состоит разработка под Windows. Здесь можно учить все подряд, а можно выбирать только некоторые темы, скажем пропустить службы или там безопасность винды. Советую читать все подряд, т.к. лишних знаний не бывает. Теория: Джеффри Рихтер "Windows via C/C++" https://rutracker.org/forum/viewtopic.php?t=3075398 . Классика системного программирования под винду. Вне зависимости, что еще вы планируете изучать, эту книгу прочитать вы обязаны. Дж. Харт "Системное программирование в среде Windows"https://rutracker.org/forum/viewtopic.php?t=988938 Также неплохая книга, есть задания для самостоятельной работы. Рихтер, Кларк , "Программирование серверных приложений для windows 2000"https://rutracker.org/forum/viewtopic.php?t=298205 далеко не все из этой книги вам понадобится сразу, но некоторые темы (реестр, файлы) следует изучить, т.к. они дополняют первую книгу. Кстати, именно в этой книге есть IOCP (нафиг никому не нужный 20 лет, но внезапно обретший популярность из-за говнолокеров). Практика: В вышеупомянутых книгах много примеров , изучите их, попробуйте что-то изменить, выполните задания по доработке примеров или придумайте сами. Напишите простейший криптолокер, который ищет файлы и шифрует их банальным ксором. Используйте разные технологии (потоки, порт, тредпул), сравните какая эффективней (как сравнивать см. в книге Харта). Напишите компонент (модуль в виде DLL) для вашего криптолокера, пропишите его в реестр ; добавьте отстук на какой-то домен (используя Wininet/winsock/winhttp api, документацию см. в мсдн). 0х4 В книге Рихтера из предыдущего этапа в конце обучения вы столкнулись с понятием инжекта в процесс, перехватом апи функций и подобными темами. Пришло время изучить это все дело подробнее. Нужно учиться изучать программы без исходных кодов, дебажить их, реверсить , понимать логику чужой программы и искать ошибки в своей в боевых условиях. Студийный отладчик помогал все это время в обучении. Но для чужих программ такой халявы не будет, т.к. у вас нет исходных кодов , а только Асм листинг. Чем дебажить? Можно взять как старую OllyDBG (только 32 бита), так и более новый x64dbg, и разбираться. Сначала трейсить пошагово свои же программы, параллельно читая справочник по Ассемблеру. Книжек по последнему есть великое множество, но не все оттуда нужно в данном случае - Асм достаточно понимать, а не писать на нем (тем более под dos, как учит 80% авторов). Знания Ассемблера пригодятся и дальше, для вызова сисколов, сокрытия/перехвата вызовов винапи, разработки шеллкодов и так далее. Теория: "Введение в реверсинг с 0, используя Ида про"https://wasm.in/threads/perevod-vvedenie-v-reversing-s-nulja-ispolzuja-ida-pro.32249/ , зеркало https://yutewiyof.gitbook.io/intro-rev-ida-pro/. "Введение в крекинг с 0, используя оллидбг" https://exelab.ru/ Практика: Реверс и дебаг сначала своих, а потом и чужих (крекми, чужая малварь) приложений. Напишите простой шеллкод (пусть даже захардкодив адреса апи), выполните его. Протестируйте разные методики инжекта в процесс. 0хFF Вот таков примерный курс, изучив который вы сможете уверенно начать разрабатывать простую малварь. Почему простую? Потому что, увы, несмотря на большой объем инфы, многие вещи все равно еще остались за кадром. К примеру, РЕ формат , секьюрити винды, технология СОМ, драйвера (не обязательно учиться писать малварь под ядро, но понимать как там что устроено, весьма желательно), криптография, сеть, NTFS , графика винды (огромная тема, все эти GDI+, win32k.sys) и т.д. и т.п. Но это все дело поправимое, было бы желание учится. Имея базу, можно со всем постепенно разобраться. Дальнейшее чтение: MSDN Марк Руссинович "Внутреннее устройство Windows" "от зеленого к красному" - три статьи, линк ищите сами, на васме или chm копии старого васма. rsdn.org Свен Шрайбер "Недокументированные возможности Windows 2000" ..... тысячи сайтов, страниц, книг.. Дальнейшая практика: реверс чужой малвари, написание своей. Что-то не знаете - реверсите конкурента, читайте аверские обзоры , спрашивайте на форуме. И постоянно учитесь, ведь знание это Сила и главный капитал! Примечания. Статья отображает сугубо мое субъективное мнение и мой личный опыт, никого ни к чему не призывает, просто советует. Конструктивная критика ("сначала лучше изучить Х, а там сделать упор на Y перечитав Z") приветствуется. Неконструктивная ("это все бред, учите петон!") будет удаляться (но никто не запрещает создать свою тему и там расписать свой опыт от и до). Ссылки на материалы, ес-но могут устареть, умереть, переехать, поэтому ищите их по названию в гугле.
  2. hunter

    Карты

    Сколько хочешь ?
  3. hunter

    tg бан

    Та же хуйня. Сидел нормально, и щас бан прилетел. С чем связано??
  4. да, ребята из колонии тоже устраиваются в службу безопасности и службу безопасности банков
  5. постарался, ничего не скажешь
  6. hunter

    траблы PayPalа

    Хлопцы так у палки всегда какие та траблы, свою схему всегда нужно подстраивать под новый лад
  7. hunter

    Cкупы

    У солидных дроповодов есть свои прозвонщики, которые смогу перенаправить твой заказ .
  8. hunter

    ПП рабочие способы вбива

    Дружище, работаю по гифтам уже 2,5 года и все отлично. Ясно, что не постоянно идет вбив но теме не менее, на заводе не вкалываю)
  9. hunter

    Выплаты во время карантина

    Даже не слышал что кто то выплачивает, так что думаю можешь забыть
  10. hunter

    Виртуалка

    Согласен, смотря для каких целей. Дедик можно и в халяве найти, иногда норм попадаются
  11. хуже уже не будет и тут бац бац бац... ?
  12. hunter

    Надежный селлер сс

    скинь в лс
  13. Спасибо, очень интересно и познавательно, правильнее сказать это периодически надо почитывать чтоб не расслабляться.
  14. hunter

    Карта для оплаты

    Много людей налят препейды. Попроси их заплатить. Даже если на препейд пришла чернь - возврат покупки с этого препейда никто делать не будет.
×
×
  • Создать...