La mejor respuesta
Uno de los sitios web más grandes (si no el más grande) que contiene desafíos de ingeniería de código inverso es Crackmes.de .
Este sitio web es muy sorprendente porque:
- Es Gratis .
- Los desafíos se clasifican de acuerdo con:
- Dificultad: Tienes 9 niveles de dificultad, desde Muy fácil hasta los más difíciles.
- Plataforma: Quieres practicar tu Windows, Linux , etc … invertir habilidades?
- Idioma: ¿Quiere resolver un crackme escrito en qué idioma? Sí, si tiene experiencia en ingeniería de código inverso, notará que en la mayoría de los casos no es exactamente lo mismo hacer ingeniería inversa de un ejecutable escrito en Delphi en comparación con otro escrito en lenguaje ensamblador.
- Crackmes resueltos: Si está comenzando su camino en la ingeniería inversa, puede buscar crackmes fácilmente resueltos, de modo que pueda comparar su método de craqueo con los crackers que lo resolvieron antes que usted, eso es realmente un tesoro para aprender y expandir sus habilidades de pensamiento y resolución.
Respuesta
Voy a asumir que no es un experto en informática y programación de bajo nivel entonces la respuesta es sí, es muy difícil.
aña Hay dos «niveles» de lenguajes de programación; Alto y bajo. Los lenguajes de alta programación son generalmente bastante fáciles de usar y aprender. Son bastante legibles por humanos y necesitan ser «traducidos» por máquinas para ser ejecutados. Ejemplos de lenguajes de programación de alto nivel son Javascript, R, Python, Java y muchos más.
bosque Los lenguajes de programación de bajo nivel son más difíciles de aprender. Necesitan comprender mejor cómo funcionan la memoria y los procesos de la computadora. El mejor y más famoso ejemplo de un lenguaje de bajo nivel es C. C es muy poderoso y bastante difícil de aprender. Pero es mucho más comprensible para las máquinas que los lenguajes de programación de alto nivel. Un lenguaje de programación de nivel bastante bajo es Assembly. El código de ensamblaje existe en diferentes tipos, pero todos son complicados, molestos y muy difíciles de leer. Sin embargo, el código de ensamblaje es una parte importante en la ingeniería inversa. Si aplica ingeniería inversa a algo, ve / cambia el código de ensamblaje de un programa.
aña Tienes que entender que la Asamblea es básicamente el idioma materno. Si escribe un programa siempre hay un código ensamblador con él. O bien su compilador traduce su código a Ensamblador o el intérprete lo hace por usted en tiempo real.
aña Lo que todo esto significa básicamente es que convertirse en un verdadero profesional de la ingeniería inversa es fácil. Todo lo que realmente tienes que hacer es dominar los diferentes tipos de ensamblaje y aprender a programar en C. El único problema es que estas dos cosas son difíciles de hacer.
aña ¡Buena suerte!