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

Вопрос. Как читать эти гребанные документации?

Bidiyamakura

RAID-массив
Пользователь
Регистрация
10.12.2024
Сообщения
56
Реакции
5
Всем ку. Програмирую на С++ ну тут как будто не важно. Вот могу там всякие оопэшэчки структуры Циклы и тд и тп. НО когда я хочу уже что-то сам сделать к примеру кейлогер. Захожу в документацию, а там НИЧЕГО НЕ ПОНЯТНО. ладно я еще разобрался чем VOID отличается от void. Не ну это ващееее. Можете чем нибудь помочь там я незнаю пэжэшка. А то у меня стена щас. Стараюсь разобраться а один хер чёт не выходит. Помогите😭
 
Типы все по факту отвечают

Вот пример:
Шаги для использования всех документов:

  1. Вы начинаете писать свой проект
  2. Вы выбираете следующую функцию или шаг, который собираетесь предпринять.
  3. Переходите к документации, чтобы выяснить, как язык/библиотека/фреймворк, который вы используете, делает то, что вы хотите сделать.
  4. Пишете и тестируете какой-то код, если он работает так, как вы хотите, возвращаетесь к шагу 2 и начинаете заново.
  5. Если он не работает так, как вы хотите, реализуете/отлаживаете функциональность и используете документацию в качестве справочника. Когда он заработает, возвращаетесь к шагу 2 и начинаете заново.
Документация - это руководство по использованию инструмента, обычно в ней есть краткое руководство, чтобы вы поняли API, и справочник, в котором подробно описаны все функции.

Вы не читаете все от начала до конца, вы читаете руководство, чтобы начать, и ищете все остальное, что вам нужно, когда вам это нужно.


Могу ещё привести свой пример. Недавно писал софт для создания зеркал сайтов, и там нужно было использовать bs4 -- до этого с ней вообще не работал.

Что делал: сначала прочитал быстрый старт, потом начал просто пробовать писать код. Например, сделал функцию, которая ищет все картинки на странице. Потом зашёл в документацию, нашёл раздел про поиск по дереву, посмотрел, какие функции там есть, что они принимают и что возвращают. И в итоге я уже понимал примерно 60% того, что нужно для написания этого софта.

Конечно, можно спросить у гпт, но он иногда не даёт всей информации или показывает не самый удачный вариант. А в документации часто есть более правильная реализация, которую гпт просто не показал. Меня это очень часто не волнует, я спрашиваю у гпт, но про доки не забываю
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Всем ку. Програмирую на С++ ну тут как будто не важно. Вот могу там всякие оопэшэчки структуры Циклы и тд и тп. НО когда я хочу уже что-то сам сделать к примеру кейлогер. Захожу в документацию, а там НИЧЕГО НЕ ПОНЯТНО. ладно я еще разобрался чем VOID отличается от void. Не ну это ващееее. Можете чем нибудь помочь там я незнаю пэжэшка. А то у меня стена щас. Стараюсь разобраться а один хер чёт не выходит. Помогите😭
Почему не начал с GO/C?
 
Всем ку. Програмирую на С++ ну тут как будто не важно. Вот могу там всякие оопэшэчки структуры Циклы и тд и тп. НО когда я хочу уже что-то сам сделать к примеру кейлогер. Захожу в документацию, а там НИЧЕГО НЕ ПОНЯТНО. ладно я еще разобрался чем VOID отличается от void. Не ну это ващееее. Можете чем нибудь помочь там я незнаю пэжэшка. А то у меня стена щас. Стараюсь разобраться а один хер чёт не выходит. Помогите😭
Мил человек. Метод определенного интеграла тебе в помощь. Пендосы зовут его "разделяй и властвуй", но мне это название противно в данном контексте.
В чем суть метода определенного интеграла? Да всё просто. Любую сложную задачу бьем на кусочки. В каждом кусочке берем по точке и вычисляем значение. В данном случае пытаемся понять что мы вообще хотим и параллельно отвечая на главный вопрос: "А нахрена?". Как только вы это сделали - задача перестает быть сложной.
Дабы не быть голословным рассмотрим Ваш пример - кейлоггер.

Для начала дадим определение - своими словами и максимально просто.
Кейлоггер - это программа, которая отслеживает нажатия клавиш и куда-то их записывает - в текстовый файл ли, шлет ли на сервер - в данном случае не важно. Я намеренно взял самый простой пример, дабы не усложнять.
Теперь применяем метод пристального всматривания и понимаем, что задача у нас бьется, как минимум, на две:
1) непосредственно перехват нажатий клавиш.
2) фиксация результата - для простоты будем писать текстовый файл. А поскольку мы всё же хотим, в итоге, отправлять это всё на сервер, которого у нас пока нет, то мы заложим интерфейс, который будет принимать перехваченные клавиши и, в зависимости от реализации, либо писать в файл/буфер/произвольное устройство вывода, либо отправлять на сервер - можно чуть заморочиться и сделать его тоже устройством вывода.
3) поскольку это кейлоггер, который предназначен для плохого, то есть позиционируется как вредоносное ПО, то неплохо было бы научиться скрывать его деятельность - сначала от пользователя, потом от антивирусов и EDR. Но это уже другая история. Тем не менее - это всё решаемо.

ну а теперь наши задачи выглядят не такими уж и страшными.
смотрим на первую задачу. Тут как бы очевидно, что мы можем либо загуглить "WinAPI обработка нажатий клавиш", либо, если мы всё же хотим всё сделать красиво - лезем в Русиновича и там, отыскав нужный раздел - внимательно изучаем его.
Затем пишем простенькую функцию, которая будет выводить коды нажатых клавиш в консоль. После этого можно считать первую часть задачи выполненной и смело переходить ко второй.

А вот тут уже интереснее.
Опять же. Идем самым простым путем - пишем интерфейс., принимающий коды клавиш и пару реализаций - запись в текстовый файл, вывод в консоль, ну сервера у нас еще нет, но мы можем сделать под него заготовку.
А на сладкое оставим механизм взаимодействия между двумя модулями. Тут тоже вариантов масса - хочешь - через коллбеки, хочешь - реализуй свою систему сигналов и слотов как в Qt или boost, просто сделать один модуль частью другого - крайне не рекомендую, но для начала сойдет - и тупо вызывать его методы напрямую. Но это уже всё детали. Как говорит мой любимый Роберт Мартин, он же Дядюшка Боб, он же автор "Чистого кода" и "Чистой архитектуры" - я до самого последнего момента откладываю детали реализации. Поэтому тут я оставлю Вам самостоятельный выбор.

А вот с третьей задачей - тут не всё так тривиально. Но. Тем не менее. Попробуем разбить ее на подзадачи. Что мы имеем:
1) сокрытие активности - от пользователя - для начала скроем консольное окно, затем спрячем процесс или же изменим его имя, а дальше только ваша фантазия. Придумывайте маленькие фичи и затем реализуйте их.

Я это всё к чему - никто в документации не напишет как создать кейлоггер. Да оно нам и не надо. Главное - уметь в декомпозицию и анализ. И, да, не используйте вы гопоту - она же, просто хосподи, CHAT GPT - она даже дерьмо с первого раза коричневым не сможет сделать. Годится только для рутинных задач. Да и то, я руками быстрее напишу, поскольку на объяснение этой залупе своих хотелок - порой уходит больше времени, чем на самостоятельное написание кода.
 
Последнее редактирование:
Почему не начал с GO/C?
да не важно какой ЯП. Важно уметь думать. А видосики с ютуба этому не учат.
 


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