если нужен прямой доступ к API то принято что пишут на Си Дельфи С++ ... ну и естественно на ассемблере!
если пишут чтото с диспетчеризацией памяти то так же выбирают вышеуказанные языки!
если пишут системы поиска, анализа , эмуляции всех видов атак переполнения то используют вышеуказанные языки!
изначально все вопросы инджектинга сплайсинга писались на вышеуказанных
языуках!
естественно все системы скрытия процессов, активности получаются родными для вышеуказанных языков!
Вирусы трояны конечно удобнее создавать на этих языках!
Написание драйверов так же смешно писать на ООП языках!
Создавать виртуальные машины VM внутри виртуальных машин , просто извращение , поэтому опять вышеуказанные языки!
Сетевые функции прописываются НИЖЕ на вышеуказанных языках, можно и на Java писать низко но в этом случае программирование будет попахивать стилем C++ 8)) и можно даже случайно забыть что ты в ДЖАВЕ
Один недостаток - Си и ассемблер требует БОООЛЬШОЙ работы пальцев (соответственно и времени)!
Программирование и языки развиваются не в сторону УЛУЧШЕНИЯ а в сторону УМЕНЬШЕНИЯ ЗАТРАТ!
Дак вот Java и C# яркие представители этого направления, с ними хорошо создавать программы для продажи!
P.S. А сравнивать Си и С++ НЕ СТОИТ ... это методы программирования и в рамках даже одной программки можно с успехом использовать оба метода в MSVC