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

Как выстроить путь в MalDev без копипасты ?

diniila

HDD-drive
Пользователь
Регистрация
15.01.2023
Сообщения
33
Реакции
5
Здравствуйте! Христос воскрес!
Я новичок в C, изучаю его уже несколько недель и стремительно продвигаюсь.
Моя конечная цель — не просто учиться ради интереса, а серьёзно освоить разработку вредоносного ПО в рамках Red Team и MalDev.
Я начал проходить курсы MalDev Academy, но без твёрдого плана обучения становится сложно:


Я не хочу быть скрипт-кидди — мне важно понимать каждую функцию, каждый шаг.
Но сейчас я не знаю, какие темы приоритетны, в каком порядке их изучать и как выстроить путь.
Мне нужен совет опытных разработчиков:
 — С чего лучше начинать?
 — Какой план развития подойдёт, чтобы двигаться уверенно и без пробелов?
 — Какие ресурсы реально полезны, а какие — трата времени?


Благодарю заранее за любую помощь или рекомендации.
 
Сначала выучить С\С++
Потом можно приступать к изучению WinAPI и паралельно изучать как работает ОС виндовс
Потом начинай реверсить слитые проекты и разбираться в техниках которые там используються
 
Сначала выучить С\С++
Потом можно приступать к изучению WinAPI и паралельно изучать как работает ОС виндовс
Потом начинай реверсить слитые проекты и разбираться в техниках которые там используються
Спасибо, посоветуешь какие-нибудь ресурсы для этого? Я учу русский, но пока совсем не говорю свободно
 
Спасибо, посоветуешь какие-нибудь ресурсы для этого? Я учу русский, но пока совсем не говорю свободно
Для начала перестань учить и русский и C одновременно, освободи ресурсы для чего-то одного.
Примерный план действий смотреть тут: https://xss.pro/threads/39427/
Слитые сурсы для изучения брать либо на github либо на vxunderground

Good Luck
 
Здравствуйте! Христос воскрес!
Я новичок в C, изучаю его уже несколько недель и стремительно продвигаюсь.
Моя конечная цель — не просто учиться ради интереса, а серьёзно освоить разработку вредоносного ПО в рамках Red Team и MalDev.
Я начал проходить курсы MalDev Academy, но без твёрдого плана обучения становится сложно:


Я не хочу быть скрипт-кидди — мне важно понимать каждую функцию, каждый шаг.
Но сейчас я не знаю, какие темы приоритетны, в каком порядке их изучать и как выстроить путь.
Мне нужен совет опытных разработчиков:
 — С чего лучше начинать?
 — Какой план развития подойдёт, чтобы двигаться уверенно и без пробелов?
 — Какие ресурсы реально полезны, а какие — трата времени?


Благодарю заранее за любую помощь или рекомендации.
Есть только 1 рабочий совет, который заставит тебя двигаться. Он не университетский, но этот совет - гарантия того, что ты не бросишь.
1) изучаешь синтаксис выбранного языка и кое какую базу.
2) ставишь перед собой реальную задачу что-то сделать, в идеале, если ты знаешь, что с этого поимеешь деньги/репутацию на форуме.
3) начинаешь курить направления, как делают другие, делать их себе. Даже если многое будет копипаст.
4) углубление в понимание процессов должно исходить из нужды разобрать и адаптировать работающее, сделать лучше, это должно быть естественным продолжением твоего интереса копнуть и понять, что за ширмой. Копаешь только в релевантные твоим задачам области -> это формирует опыт и при больших количествах повторений -> твой опыт становится очень обширным.
5) если начнешь сразу лезть в дебри, без понимания зачем тебе эта тема и почему, читая все как справочник - сгоришь и бросишь как и 99% начинающих, из-за объема информации, у тебя не будет стимулов запоминать что-то конкретное, все не выучишь.
 
Pour commencer, arrêtez d’apprendre le russe et le C en même temps, libérez vos ressources pour une seule chose.
Voir le plan d'action approximatif ici : https://xss.pro/threads/39427/
Les ressources divulguées pour l'étude peuvent être récupérées soit sur github, soit sur vxunderground

Bonne chance
Русский язык и язык C — это совсем разные вещи, они изучаются в совершенно разных контекстах и по разным причинам, но я понимаю, что ты veux сказать.
Я умею разделять ces deux aspects, не волнуйся.
Спасибо за советы — пойду посмотрю всё это !
 
вообще ООП знать, понимать алгоритмы, методы сортировки, шифрования тоже не плохо было бы. Зная алги и методы допустим бинарных деревьев/графов можно такие чудеса творить, в том числе и применять в malw разработке.

Допустим ты можешь придумать свой простой алг шифрования на базе матриц(A , A^t плюс добавить еще что-то).
Ты можешь по разному его реализовать, на базе массивов, так и на базе двусвязанных списков(самописных). Короче изучай эту тему пригодится. Но тут лучше даже почитать книги:
Д. Кнут: его алгоритм сортировки к примеру лучше чем то, что в паблике и нейронках.

И параллельно winapi изучай, по этой части могу посоветовать нейронки copilot она норм разбирает и дает инфу по какой-то отрасли .
 
вообще ООП знать, понимать алгоритмы, методы сортировки, шифрования тоже не плохо было бы. Зная алги и методы допустим бинарных деревьев/графов можно такие чудеса творить, в том числе и применять в malw разработке.

Допустим ты можешь придумать свой простой алг шифрования на базе матриц(A , A^t плюс добавить еще что-то).
Ты можешь по разному его реализовать, на базе массивов, так и на базе двусвязанных списков(самописных). Короче изучай эту тему пригодится. Но тут лучше даже почитать книги:
Д. Кнут: его алгоритм сортировки к примеру лучше чем то, что в паблике и нейронках.

И параллельно winapi изучай, по этой части могу посоветовать нейронки copilot она норм разбирает и дает инфу по какой-то отрасли .
Я допустим занялся графами, и я уже в голове складываю как можно придумать алги шифрования и тд.
 
вообще ООП знать, понимать алгоритмы, методы сортировки, шифрования тоже не плохо было бы. Зная алги и методы допустим бинарных деревьев/графов можно такие чудеса творить, в том числе и применять в malw разработке.

Допустим ты можешь придумать свой простой алг шифрования на базе матриц(A , A^t плюс добавить еще что-то).
Ты можешь по разному его реализовать, на базе массивов, так и на базе двусвязанных списков(самописных). Короче изучай эту тему пригодится. Но тут лучше даже почитать книги:
Д. Кнут: его алгоритм сортировки к примеру лучше чем то, что в паблике и нейронках.

И параллельно winapi изучай, по этой части могу посоветовать нейронки copilot она норм разбирает и дает инфу по какой-то отрасли .
Это очень интересно, спасибо. А о какой книге ты говоришь? Я вижу, что Дональд Кнут выпустил несколько.
Что касается уроков, я использую ChatGPT с подпиской — он мне сильно помогает, хоть и делает немало ошибок.
В таких случаях я просто отправляю ему примеры кода с GitHub или из MalDev Academy, и он на их основе исправляется.
Но, как я уже говорил ранее, цель — это действительно всё понять, а автоматизмы придут со временем.
 
Это очень интересно, спасибо. А о какой книге ты говоришь? Я вижу, что Дональд Кнут выпустил несколько.
Что касается уроков, я использую ChatGPT с подпиской — он мне сильно помогает, хоть и делает немало ошибок.
В таких случаях я просто отправляю ему примеры кода с GitHub или из MalDev Academy, и он на их основе исправляется.
Но, как я уже говорил ранее, цель — это действительно всё понять, а автоматизмы придут со временем.
Искусство программирования для ЭВМ

Там норм про алги написано. Ток оттуда. Там есть то что нейронки дают в не оптимизированном виде/примитив.
Просто алгоритмы оттуда почитай.
 
Искусство программирования для ЭВМ

Там норм про алги написано. Ток оттуда. Там есть то что нейронки дают в не оптимизированном виде/примитив.
Просто алгоритмы оттуда почитай.
Хорошо, большое спасибо за твою ценную помощь !
 
Никак, да и зачем, неужели ты готов потратить десятки лет своей жизни на очередной велосипед?
Это от усталости. Вряд-ли ты задавался этим вопросом в начале своего пути. Скорее, были горящие глаза и шаг в неизвестность, потому что просто интересно. Подойди к детям, которые лепят пасочки в песочнице, спроси, в чем смысл жизни и зачем вы делаете этот велосипед, они тебе скажут, дядя бля, отьебись, мы просто получаем удовольствие, нам нраицца.
 
Последнее редактирование:
А нахрен нужен ООП? Тем более в языках типа Си в которых он нативно отсутствует. Для таких задач как малвдев нужно максимально абстрагироваться от абстракций. ООП в малвдеве чаще вреден, чем полезен: он добавляет лишние метаартефакты (vtable, RTTI), увеличивает сигнатуру в памяти, усложняет контроль исполнения и вызывает лишние конструкторы/деструкторы, особенно это критично для shellcodов и техник вроде reflective DLL. Малварь требует минимализма, предсказуемости и полной прозрачности на уровне системных вызовов и памяти, что проще и надёжнее реализуется в процедурном стиле на C. ООП может быть уместен в инструментах (например, C2-сервере), но не в боевом пейлоаде.

вообще ООП знать, понимать алгоритмы, методы сортировки, шифрования тоже не плохо было бы. Зная алги и методы допустим бинарных деревьев/графов можно такие чудеса творить, в том числе и применять в malw разработке.

Допустим ты можешь придумать свой простой алг шифрования на базе матриц(A , A^t плюс добавить еще что-то).
Ты можешь по разному его реализовать, на базе массивов, так и на базе двусвязанных списков(самописных). Короче изучай эту тему пригодится. Но тут лучше даже почитать книги:
Д. Кнут: его алгоритм сортировки к примеру лучше чем то, что в паблике и нейронках.

И параллельно winapi изучай, по этой части могу посоветовать нейронки copilot она норм разбирает и дает инфу по какой-то отрасли .
 
А нахрен нужен ООП? Тем более в языках типа Си в которых он нативно отсутствует. Для таких задач как малвдев нужно максимально абстрагироваться от абстракций. ООП в малвдеве чаще вреден, чем полезен: он добавляет лишние метаартефакты (vtable, RTTI), увеличивает сигнатуру в памяти, усложняет контроль исполнения и вызывает лишние конструкторы/деструкторы, особенно это критично для shellcodов и техник вроде reflective DLL. Малварь требует минимализма, предсказуемости и полной прозрачности на уровне системных вызовов и памяти, что проще и надёжнее реализуется в процедурном стиле на C. ООП может быть уместен в инструментах (например, C2-сервере), но не в боевом пейлоаде.
ООП ускоряет разработку, делает код более стабильным при меньших затрах на отладку
В ооп есть автоматическое управление памятью
конструкторы и деструкторы и тд - не вижу смысла рассказывать
Да, есть накладки при написании кода с обычным плюсовым крт

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

Но кто мешает написать свой крт? свои базовые контейнеры например вектор, стринги, мапы и тд?
В люмме насколько знаю такое используется, а сверху вообще морфером накрыто так, что даже цэшки не видно
Да, можно сделать свой КРТ и вырезать всё лишнее. Но тогда у тебя уже нет настоящего ООП, как в обычных C++ проектах, ты возвращаешься к контролю на уровне C. Самописный вектор без аллокаций через new и без RTTI это не std::vector, а собственная структура, просто с ООП-стилем, и да оно помогает управлять состоянием, модулями, логикой. Но в пейлоаде или загрузчике это не оправдано, размер и детерминизм важнее, полное понимание потока критично. Никто не хочет, чтобы виртуальный вызов вызвал __cxa_throw из-за бага в объекте, когда ты внедрил shellcode в чужой процесс. Но опять же таки, кто как хочет так и дрочит, я не говорю что ООП это бесполезно в малвдеве, но новичку будет намного полезнее понять сначала процедурный подход, а потом уже от личных желаний учить то что нужно.
 
Да, можно сделать свой КРТ и вырезать всё лишнее. Но тогда у тебя уже нет настоящего ООП, как в обычных C++ проектах, ты возвращаешься к контролю на уровне C. Самописный вектор без аллокаций через new и без RTTI это не std::vector, а собственная структура, просто с ООП-стилем, и да оно помогает управлять состоянием, модулями, логикой. Но в пейлоаде или загрузчике это не оправдано, размер и детерминизм важнее, полное понимание потока критично. Никто не хочет, чтобы виртуальный вызов вызвал __cxa_throw из-за бага в объекте, когда ты внедрил shellcode в чужой процесс. Но опять же таки, кто как хочет так и дрочит, я не говорю что ООП это бесполезно в малвдеве, но новичку будет намного полезнее понять сначала процедурный подход, а потом уже от личных желаний учить то что нужно.
Но тогда у тебя уже нет настоящего ООП, как в обычных C++ проектах, ты возвращаешься к контролю на уровне C. Самописный вектор без аллокаций через new и без RTTI это не std::vector, а собственная структура, просто с ООП-стилем
Реализуй то что тебе нужно в классе вектора или другого контейнера, в чем проблема? RTTI тоже можешь, если тебе так это необходимо
Основная проблема стандартной библиотеки - тянуться тучи других зависимостей, из за этого и вес

новичку будет намного полезнее понять сначала процедурный подход, а потом уже от личных желаний учить то что нужно.
Это само собой, а я говорю про энтерпрайс
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Давно не было такой темы, давайте по новой обсудим почему нужно учить Си в 25 году, и все такое.
Я думаю, петона и чат_гпт достаточно.
 


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