¿Se puede usar javascript para crear un programa antivirus?

Se puede hacer esto? Tal vez. Tengo una mente científica, y he entrenado mi mente para explorar sin imponer límites. ¡Todo es posible!

var notJS;

Como programador, también he entrenado mi mente para moderar el límite de la creatividad y la ciencia pura. Todo es posible, pero solo algunas cosas son probables de alguna manera práctica.

notJS = 0;

Se me ocurren algunas formas de usar JS para antivirus, pero no me encanta la idea. Y aquí está el por qué no:

Quiero crear el mejor software posible, o quiero que haga al menos 1 cosa que otros programas no pueden hacer. Creo que este criterio se ajusta a su caso porque usar JS para AV se consideraría una nueva forma de usar JS, pero falla el criterio.

notJS ++

Tampoco me gusta JS para la coincidencia de patrones eficiente (compárelo con lenguajes como Perl o Python). De hecho, preferiría interactuar con C directamente o mediante la importación de módulos …

notJS ++

Dije coincidencia de patrones porque muchos componentes básicos de los AV modernos utilizan algoritmos de coincidencia de patrones.

También creo que AV y Firewall comienzan a difuminar las líneas en estos días. Entonces, para empujar ese borde, me gustaría escanear puertos y admitir sockets. ¿Es eso capaz de JS? Seguro. Pero no pienso en JS como mi opción para construcciones de bajo nivel. Quizás con Node.js en un servidor. Pero no para vencer al virus moderno en ningún dispositivo, ya sea móvil, tableta o PC.

notJS ++

Estoy un poco intrigado con mi mención pasajera de escribir Node.js para asegurar una instancia de servidor en la nube, o para crear algún tipo de servidor de aplicaciones dedicado a un rol dentro de una infraestructura. Supongamos que lo diseña como un servicio para recibir cargas de clientes y detectar amenazas de seguridad. Eso es algo que tiene una curva de aprendizaje y una aplicación comercial o bondad de código abierto escrita por todas partes …

if (isNginx && hasNodeJS) se rompe

Como una ocurrencia tardía, me gustaría mencionar que la primera bandera roja en su pregunta se relaciona con los graves problemas que Adobe ha tenido con Flash, y el quid de estos problemas se relaciona con las zonas de seguridad en una computadora o dispositivo. Se podría decir que iOS mató oficialmente a Flash en 2011, o si fuera un ActionScripter como yo (que usa estándares de secuencias de comandos ECMA y se lee como JS …), habría visto cuántos problemas había en el horizonte teniendo en cuenta esa línea dura entre la red y cajas de arena locales que comenzaron a poner nerviosos a los codificadores profesionales serios. Creo que el anuncio de Apple de que ya no admitiría Flash fue un golpe de gracia a favor de Adobe. La alternativa era hundir su propio barco.

Dado que el AV moderno realmente, realmente necesita dominar los tránsitos entre la red y el sistema de archivos local, y este territorio fue agotado por un lenguaje bien sembrado hace 5 años …

notJS ++

Me gusta su pregunta / idea porque suena como un pensamiento progresivo, y tiene suficiente para desafiarme como científico para que parezca interesante. Pero como persona de negocios, esto es 3 años demasiado temprano, a menos que pueda pagarle a alguien para que desarrolle todos los módulos desde cero, e incluso entonces no tiene sentido para mí, ¿por qué JS cuando otros idiomas serían más robustos, mejor soportados y simplemente más adecuado para la tarea?

notJS ++

Console.log (notJS)

Mi consola dice 5. ¿Qué hay de la tuya?

Gracias por preguntar. La idea es intrigante.

No repetiré los argumentos de Max (tenía mucho más de lo que hubiera pensado …).

La lógica principal, y obviamente la interfaz gráfica, se puede hacer en JS.

Pero para crear un antivirus eficiente, debe realizar algunas operaciones de bajo nivel, como escaneo de memoria, trabajar como un servicio (en Windows), etc. En algún momento, deberá escribir rutinas de bajo nivel, en C o tal vez C ++ (o Rust, etc.), por lo que su AV ya no será JS puro.

Bueno, Node.js tampoco es JS puro, por supuesto, por lo que la línea está un poco borrosa.

Pero, sinceramente, no veo ninguna ventaja de usar JS para dicho programa.