¿Alguien puede explicar cómo se pueden usar los lenguajes de programación para descifrar software o piratear un servidor?

Podría escribir un tratado sobre esto, pero es mucho más fácil señalar algunos conceptos básicos sobre los ataques de desbordamiento del búfer, que son uno de los mecanismos de ataque más comunes para romper el software (aunque hay muchos más):

Desbordamiento de búfer:

En seguridad y programación de computadoras, un desbordamiento de búfer , o desbordamiento de búfer , es una anomalía en la que un programa, mientras escribe datos en un búfer,

supera el límite del búfer y sobrescribe la memoria adyacente. Buffer

los desbordamientos pueden ser activados por entradas que están diseñadas para ejecutar código,

o alterar la forma en que opera el programa. Esto puede resultar en errático

comportamiento del programa, incluidos errores de acceso a la memoria, resultados incorrectos, un bloqueo o una violación de la seguridad del sistema. Por lo tanto, son la base de muchas vulnerabilidades de software y pueden explotarse de forma maliciosa.

http://en.wikipedia.org/wiki/Buf…
http://en.wikipedia.org/wiki/She…
http://peter.korsgaard.com/artic…

Este es un tema muy amplio.

Los sitios web (y otros servicios que se ejecutan en el servidor) son sistemas complejos y de varias capas. Las vulnerabilidades pueden aparecer en muchas capas. Por ejemplo, el programa de servidor web (ISS o Apache) podría tener módulos que permitan la ejecución de scripts (perl, por ejemplo) que se cargan en el servidor web. Algunas configuraciones de php permiten la inclusión de scripts de sitios web personalizados de otros servidores que podrían permitir pasar estos scripts a través de parámetros de URL (como sugirió, enviando algunas variables a través de url).

Otro problema popular es elevar el nivel de acceso cuando se obtiene acceso a algún shell. Esto podría hacerse mediante el uso de vulnerabilidades conocidas del sistema, o buscando e infectando archivos grabables en las otras cuentas de usuario.

Hablando de grietas, el código del programa se puede decodificar, analizar y luego cambiar en los lugares apropiados. Esto podría hacerse automáticamente mediante algunas herramientas.

No estoy completamente seguro de a qué se refiere, pero si está hablando sobre el descifrado de software (como el código de ingeniería inversa para eliminar la necesidad de activar o renovar pruebas), aquí están mis dos centavos:

En general, hay MUCHAS formas de descifrar software. Todo depende de las vulnerabilidades del software. Una forma general de que la mayoría de los juegos / aplicaciones están descifrados es mediante formas inteligentes de cambiar el código del programa de una manera que omita ciertas partes del código responsables de la activación.

Los piratas informáticos hacen esto alterando el código fuente usando un depurador simbólico como “OllyDbg” que puede abrir un archivo ejecutable y mostrar su código ‘simbólico’. Este código casi siempre se muestra en lenguaje de programación de ensamblador (ver: lenguaje de ensamblaje x86) y cualquier persona con suficiente conocimiento del lenguaje de ensamblador puede interpretar cómo funciona el código y encontrar los lugares / variables / condiciones exactas que deben cambiarse para hacer lo que sea quiero que lo haga

Este proceso está bien demostrado en este video educativo: