Red de conocimiento informático - Conocimiento informático - Aprende programación (aprende estos libros)

Aprende programación (aprende estos libros)

Depende del campo al que quieras ir.

En segundo lugar, ya sea C, C, MFC, WTL o .Net, necesitas especializarte y estudiar en profundidad. Por ejemplo, después de aprender C, ¿puedes crear programas visuales? ¿Te gusta una versión simple de Super Mario? ¿O un programa de automatización diaria con funciones que funcionen para usted?

No es suficiente hacer esto para aprender el lenguaje C más profundamente, es necesario señalar el puntero hacia una compilación y reflexión más profundas. Puede descargar un software de desmontaje y estudiarlo lentamente con interés, y luego podrá hacerlo. Puede entender la estructura del archivo PE, Shellcode, etc., y se implementa a través del lenguaje C. Al final, un sistema operativo simple que incluye cualquier función se puede escribir en lenguaje C, o un servidor se puede escribir en lenguaje C. Los SDK de otros idiomas se pueden escribir en el servidor C. Después de todo, puede escribir cualquier función en lenguaje C, incluido un sistema operativo simple, y también puede escribir un servidor en lenguaje C. En otras palabras, cualquier cosa que se pueda lograr con otros SDK de lenguaje se puede lograr utilizando la API de lenguaje C. ¿Quieres aprender el lenguaje C más profundamente? Sí, puedes descubrir cómo se usa el lenguaje C en otros sistemas operativos y cómo se expresa el núcleo de Unix en lenguaje C. Esto se llama dominio del lenguaje C.

De hecho, en el proceso de estudio en profundidad del lenguaje C, ya ha estudiado muchas otras cosas en profundidad, como ensamblaje de ASM, programación de redes, gráficos, algoritmos, principios del sistema operativo, principios de virus. , etc., etc.

Entonces mira qué pasa si generalizas.

Por ejemplo, si terminas de aprender tu nivel actual y luego aprendes el llamado kernel de Windows, como máximo puedes escribir un WinMain y juegos periféricos, y luego escribir algún software periférico para el sistema operativo, pero En esencia, ¿realmente entiendes esta forma de aprender directamente el kernel de Windows? No, el núcleo siempre se presenta en su forma más básica. El núcleo siempre se presenta en las cosas más básicas, en lugar de la API superficial y el principio del sistema operativo en sí. Solo le dice qué es, pero no le dice por qué es así. Es importante saber cómo. Puede ayudarle a resolver la mayoría de los problemas, pero sin Por qué, todo lo que aprende es simplemente superficial. A medida que pasa el tiempo, debido a las actualizaciones tecnológicas y la pérdida de memoria, Cómo aprende será cada vez menos útil. Cómo será cada vez más inútil.

Entonces, ¿qué es el llamado núcleo de Windows?

Comience con el lenguaje informático.

¿Por qué?

¿Es Windows un sistema operativo? Sí

¿De qué está hecho un sistema operativo? Idioma

¿Qué idioma? No importa, lo que importa es que cualquier lenguaje funcional básico, como Java, C y C con el que estés familiarizado actualmente, te permitirá lograr el mismo objetivo de la misma manera.

El método básico para aprender un lenguaje informático es comenzar resolviendo el lenguaje informático de varias ramas técnicas puras de la informática.

Por ejemplo, si mencionó anteriormente que no desea aprender API ahora, se recomienda que confíe en un determinado lenguaje que esté aprendiendo ahora, como C, para aprender API en profundidad. o si crees que C no es divertido, aprender JAVA o c también es bueno, porque las capacidades estructurales de estos lenguajes son básicamente las mismas, pero es solo una cuestión de conveniencia e inconveniente para ti implementar las funciones, y ellas Son todas lenguas casi extintas en la actualidad.

Todo el sistema de implementación informática en sí tiene un punto básico:

Aquellos que obtengan el código ganarán el mundo.

En otras palabras, ya sea que lo llames "sistema WINDOWS, kernel de WINDOWS, WINDOWS o API", deben usar algún tipo de lenguaje para conectarlos. De hecho, cuando los conectas por completo, es fácil. implementarlos en otros idiomas.

¿Cómo encordar? usar.

Aprendes algo y lo pones en práctica de inmediato. Cuando lo usas, definitivamente sabrás en qué aspecto tienes deficiencias y luego aprendes ese aspecto nuevamente hasta que lo usas hasta cierto nivel y lo hay. No hay problema en absoluto. Si algo sale mal en una parte, no te confundirá y, naturalmente, los conectará.

Por ejemplo, hace mucho tiempo usé MFC para escribir una herramienta de escaneo y eliminación. Antes, solo quería escribir un programa de búsqueda de archivos simple. Después de escribirlo, descubrí que la herramienta de escaneo y eliminación. También tenía esta función, así que quería escribir una. Verificar y matar, ¿cuál es la variante F en la onda de choque? Así que estudié el código de la onda de choque y luego descubrí el código de shell y aprendí sobre los pies del virus. el registro y cómo infectar la computadora y cambiar el sistema operativo.

Más tarde, estudié el código de "Sasser" y aprendí sobre las huellas del virus en el registro y cómo el virus infecta la computadora y cambia el sistema operativo.

Más tarde, el programa de búsqueda original se amplió para:

Puede buscar procesos, truncar procesos de virus, modificar el registro, memorizar automáticamente registros de actividad de virus y otras funciones, y analizar el Mecanismo de aislamiento de virus. Lo descubrí y escribí un paquete simple de aislamiento de virus. Para que el programa MFC se vea bien, también estudié cómo se vuelve la piel y el tema de la transparencia. Para permitir que la herramienta antivirus busque automáticamente virus y variantes de virus, se escribe una lista de configuración para buscar y comprobar automáticamente cambios de virus. Para ocultar la herramienta en la esquina inferior derecha, verificar la información relevante y comprender todas las razones por las cuales el mecanismo de la bandeja y la visualización de la ventana están ocultos, y para permitir que la herramienta la use solo usted mismo, escribí una verificación de contraseña de inicialización. y la contraseña se puede cambiar en cualquier momento. Para poder usarla, la contraseña se puede trasplantar a diferentes computadoras con el programa. Estudié la estructura de PE y puse la contraseña en una sección determinada del archivo PE (EXE). Para que a la gente le resulte difícil encontrarla. Para descubrir la contraseña, estudié el mecanismo de cifrado, aprendí algunas cosas y, después de aclarar el principio, cifré la contraseña.

Más tarde, este proceso se completó mientras tomaba clases en el segundo año de la escuela secundaria. Me tomó 15 días escribir el diagrama de flujo del programa y las funciones que deben completarse después de cada día. El contenido relacionado con MFC y c y MFC está en otro artículo. Es más claro en un nivel.

Este es solo un pequeño ejemplo. Puedes escribir otro contenido que te interese desde el principio, siempre y cuando manejes cada aspecto del proceso en consecuencia y básicamente sepas lo que quieres hacer. En cuanto a lo que aprendes en primer lugar, no importa en absoluto. Lo que importa es lo que quieres hacer. Mientras lo pienses, debe haber lo que debes hacer en el primer paso, qué libros leer, qué objetivos alcanzar, y luego el segundo paso… y el último paso.

Si tienes la paciencia de leer esto y preguntar: "¿Entonces qué debo aprender?" Simplemente trata lo que dije como una tontería.