Правда ли, что причиной появления 99% дыр в программах, а значит, и всех вирусов и троянов, которые их используют, является то, что эти программы написаны на языке C и прочих низкоуровневых языках с прямым доступом к памяти.
Совершенно ложное и перевернутое утверждение. Дырки как раз из-за чрезмерно высокоуровневой организации программ. А все из-за того, что они чрезмерно избыточны и "подвалов", куда можно засунуть вредоносный код, там хоть завались. Ну для примера - куда можно с большей вероятностью запихать вирус в программе, делающей одно и то же? В 128 Килобайтную на ассемблере? В 16 Мегабайтную на Си? Или в Гигабайтную на С# ? А уж как свободно и вольно высокоуровневые языки обращаются с памятью и ресурсами, порой совершенно не нужными, говорить вообще не приходится. Ну и еще пример, более наглядный. Попробуй что-нибудь внедрить в чистый код HTML, написанный вручную, при этом не нарушая функциональности сайта. И сравни с тем же сайтом, сформированным допустим в Word или WordPress - там на один функциональный тег приходится 100, если не больше, бесполезных, избыточных тегов. Вот где раздолье то для хаккеров )))