🇪🇦以色列Israel*Nadal纳达尔🇪🇦
6.3K posts

🇪🇦以色列Israel*Nadal纳达尔🇪🇦
@perito_inf
#CISO Certified:#ISO27001LA #ISO22301LA #DPO #Cyberweapons #CybersecurityManager #CEH and #MCSA #MCSE #Redteamer #CTFPlayer #CybersecurityProfessor




















CONSEJOS PARA LOS QUE EMPEZÁIS EN ING. INVERSA. La ingeniería inversa es como desarmar un rompecabezas, pero en lugar de ver cómo está ensamblado físicamente, tratas de entender cómo funciona algo desde adentro, sin tener las instrucciones originales. Imagina que tienes un programa en tu ordenador y quieres saber qué hace exactamente o cómo lo hace. En lugar de leer un manual o preguntar al creador, usas herramientas y técnicas para analizar y "desarmar" ese programa, mirando cada uno de sus pasos para descubrir su funcionamiento. Es una forma de explorar y comprender cómo funcionan los programas desde cero. Para aprender de esto ingresé en crackmes.one buscando un lugar donde pudiera poner en práctica mis conocimientos iniciales en ingeniería inversa y aprender de una comunidad activa. Al principio, los desafíos parecían complejos, pero, poco a poco, me familiaricé con ellos. Empecé por los ejercicios más básicos, entendiendo cómo funcionan los depuradores y herramientas de desensamblado en la práctica real. Aqui os dejo algunos consejos para los que iniciáis en el mundillo: 1. Familiarízate con la arquitectura de la CPU La base de la ingeniería inversa radica en comprender cómo funciona la CPU y cómo ejecuta instrucciones de bajo nivel. Aprende a identificar operaciones básicas como mov, add, y jmp para entender cómo manipulan los datos y controlan el flujo. 2. Comprende el funcionamiento del stack El stack es fundamental para almacenar variables locales y manejar las llamadas a funciones. Por ejemplo: Analiza el flujo de una función recursiva en un debugger. Observa cómo el stack se llena y vacía conforme las funciones se llaman y retornan. 3. Desensambla y examina programas simples Usa herramientas como IDA Pro o Ghidra para desensamblar programas sencillos, como un "Hello World". Examina cómo se despliegan las cadenas y la estructura de una función en ensamblador. 4. Explora las llamadas al sistema (syscalls) La mayoría de las aplicaciones interactúan con el sistema operativo a través de syscalls, y esto ofrece puntos críticos para entender cómo funciona el software a nivel bajo. 5. Estudia estructuras de datos en ensamblador Comprender estructuras de datos comunes, como arrays y strings, y cómo se almacenan en memoria te ayudará a identificar y manipular datos en código ensamblador. 6. Familiarízate con los depuradores (debuggers) OllyDbg y x64dbg son excelentes para depurar programas de 32 y 64 bits. Empieza por programas sin protección contra depuración. 7. Analiza código ofuscado y protegido En la práctica, muchos binarios estarán protegidos o ofuscados para dificultar el análisis. Aprende técnicas de detección de "junk code" y ofuscación. Intenta identificar y saltar secciones de código redundante que no afectan el flujo principal del programa. 8. Practica con retos de ingeniería inversa Plataformas como crackmes.one ofrecen retos que te permitirán poner en práctica tus conocimientos y aprender de la comunidad.










