Автор темы
Вопрос базовый, и задать его не стыдно.
Когда начинаешь писать что-то близкое к железу или к ядру (шеллкод, драйвер, парсер бинарного формата), встаёт выбор. Одни садятся за ассемблер: полный контроль, никаких абстракций, каждый байт на месте. Кто-то говорит, что сам процесс доставляет удовольствие, даже если времени уходит втрое больше. Другие берут C, Rust или даже Python с ctypes и считают, что лишняя сложность не оправдана, если результат тот же.
Я пока не понимаю, где проходит граница. Есть задачи, где без ассемблера не обойтись (инъекция в чужой процесс, ручная подготовка опкодов). А есть случаи, где тот же C даёт почти такой же контроль, но код читается через неделю без боли.
Если ты новичок и думаешь о том же: спрашивай здесь, тема общая.
Если ты практик и уже выбрал свой стек: ответь одним абзацем, это займёт две минуты.
На чём ты пишешь свои низкоуровневые инструменты и почему остановился именно на этом?
Когда начинаешь писать что-то близкое к железу или к ядру (шеллкод, драйвер, парсер бинарного формата), встаёт выбор. Одни садятся за ассемблер: полный контроль, никаких абстракций, каждый байт на месте. Кто-то говорит, что сам процесс доставляет удовольствие, даже если времени уходит втрое больше. Другие берут C, Rust или даже Python с ctypes и считают, что лишняя сложность не оправдана, если результат тот же.
Я пока не понимаю, где проходит граница. Есть задачи, где без ассемблера не обойтись (инъекция в чужой процесс, ручная подготовка опкодов). А есть случаи, где тот же C даёт почти такой же контроль, но код читается через неделю без боли.
Если ты новичок и думаешь о том же: спрашивай здесь, тема общая.
Если ты практик и уже выбрал свой стек: ответь одним абзацем, это займёт две минуты.
На чём ты пишешь свои низкоуровневые инструменты и почему остановился именно на этом?