Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingenieria Inversa Diseno de Aplicaciones Seguras
Ingenieria Inversa Diseno de Aplicaciones Seguras
XX de Noviembre de 2011
Outline
Outline
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
2 / 54
Introducci
on a la Ingeniera Inversa
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
3 / 54
Introducci
on a la Ingeniera Inversa
Qu
e es la Ingeniera Inversa
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
4 / 54
Introducci
on a la Ingeniera Inversa
Qu
e es la Ingeniera Inversa
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
4 / 54
Introducci
on a la Ingeniera Inversa
Motivaci
on
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
5 / 54
Introducci
on a la Ingeniera Inversa
Motivaci
on
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
6 / 54
Introducci
on a la Ingeniera Inversa
Caja negra
Analizar programa seg
un diferentes entradas software en ejecucion
No es tan efectivo, pero requiere menos experiencia
Metodo habitual para detectar exploits
Caja gris
Combinacion de las dos anteriores
Ejecuci
on de programa mediante debug. . .
. . . alimentandolo con diferentes entradas
Ejemplos: Rationals Purify (analisis uso/consumo memoria), Valgrind
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
7 / 54
Introducci
on a la Ingeniera Inversa
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
8 / 54
Introducci
on a la Ingeniera Inversa
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
8 / 54
Conocimientos previos
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
9 / 54
Conocimientos previos
Ensamblador (http://www.intel.com/products/processor/manuals/ )
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
10 / 54
Conocimientos previos
Ensamblador (http://www.intel.com/products/processor/manuals/ )
Funcionamiento interno SS.OO.
Que ocurre al pulsar un bot
on?
Y al aceptar un checkbox?
La biblia de APIs de Windows: WinXXAPI (32 o 64 bits)
http://msdn.microsoft.com/en-us/library/Aa383723
Debuggear programas
Breakpoints
Step into, step over, . . .
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
10 / 54
Conocimientos previos
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
11 / 54
Conocimientos previos
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
11 / 54
Refrescando la memoria. . .
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
12 / 54
Refrescando la memoria. . .
Nociones de debugger
Codigo ensamblador
Ejecuci
on paso a paso
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
13 / 54
Refrescando la memoria. . .
Registros
Diferentes tipos de registros, seg
un uso
Prop
osito general
Segmento
Apuntador de instrucciones
Indice
Bandera (flags)
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
14 / 54
Refrescando la memoria. . .
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
15 / 54
Refrescando la memoria. . .
15
-
14
-
13
-
12
-
11
OF
10
DF
9
IF
8
TF
7
SF
6
ZF
5
-
4
AF
3
-
2
PF
1
-
0
CF
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
16 / 54
Refrescando la memoria. . .
15
-
14
-
13
-
12
-
11
OF
10
DF
9
IF
8
TF
7
SF
6
ZF
5
-
4
AF
3
-
2
PF
1
-
0
CF
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
17 / 54
Refrescando la memoria. . .
Tipos de instrucciones
Codificacion variable y alineaci
on independiente
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
18 / 54
Refrescando la memoria. . .
Tipos de instrucciones
Flags recogen resultado de operaciones ALU
Direccionamiento: inmediato, offset o con ndice escalado (no relativo
al PC)
. . . excepto saltos (instrucci
on jmp)!
Instrucciones at
omicas (xchg, cmpxchg/cmpxchg8b, xadd, prefijo
LOCK)
Registros para coma flotante (ops. especiales)
Instrucciones SIMD (Single Instruction, Multiple Data): paralelismo a
nivel de datos
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
19 / 54
Refrescando la memoria. . .
La pila
LIFO (Last In First Out)
Paso de parametros a procedimientos
push
pop
call
ret
push ebp
mov ebp, esp
sub esp, SIZE LOCAL VARIABLES
R.J. Rodrguez
C
odigo de la subrutina
mov esp, ebp
pop ebp
INPUT
PARAMS; 4 by default
ret a
SIZE
Introducci
on a la Ingenier
Inversa
- DAS
DAS 2011
20 / 54
Refrescando la memoria. . .
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
21 / 54
Refrescando la memoria. . .
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
22 / 54
Refrescando la memoria. . .
Referencias
Wikepedia
(http://en.wikipedia.org/wiki/Portable_Executable)
Peering Inside the PE: A Tour of the Win32 Portable Executable File
Format
(http://msdn.microsoft.com/en-us/library/ms809762.aspx)
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
23 / 54
Herramientas u
tiles
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
24 / 54
Herramientas u
tiles
Basicas
Desensambladores
General: W32Dasm, IDA Pro, . . .
Especfico: p32Dasm (VBasic), Reflector (.NET), . . .
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
25 / 54
Herramientas u
tiles
Otras. . .
Identificadores y editores PE (PEiD, PEEditor, . . . )
Visores/editores de recursos (XNResource Editor, Resorce Hacker,
...)
Volcadores de memoria (LordPE Deluxe, ProcDump, SirPE, . . . )
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
26 / 54
Herramientas u
tiles
Otras. . .
Identificadores y editores PE (PEiD, PEEditor, . . . )
Visores/editores de recursos (XNResource Editor, Resorce Hacker,
...)
Volcadores de memoria (LordPE Deluxe, ProcDump, SirPE, . . . )
Emuladores (HASP, Sentinel, . . . )
Monitores de API (KaKeeware Application Monito, Event2Address,
...)
Reparadores de IAT (ImportREC, ReVirgin)
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
26 / 54
Herramientas u
tiles
Foros
elHacker (secci
on Programaci
onIngeniera Inversa)
ExeTools
WoodMan
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
27 / 54
Herramientas u
tiles
Foros
elHacker (secci
on Programaci
onIngeniera Inversa)
ExeTools
WoodMan
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
27 / 54
T
ecnicas de an
alisis
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
28 / 54
T
ecnicas de an
alisis
C
odigo muerto
Casos tpicos
Salto JE/JNE (JZ/JNZ) para registro correcto
N
umero de registro embebido en la aplicaci
on
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
29 / 54
T
ecnicas de an
alisis
C
odigo muerto
Pasos
R.J. Rodrguez
Identificar PE y desensamblar
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
30 / 54
T
ecnicas de an
alisis
C
odigo muerto
Pasos
R.J. Rodrguez
Desensamblar
Husmear la zona
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
31 / 54
T
ecnicas de an
alisis
C
odigo vivo
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
32 / 54
T
ecnicas de reversing
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
33 / 54
T
ecnicas de reversing
CD Check
APIs tpicas
GetDriveTypeA
EAX = 5 si hay CD
GetVolumeInformationA
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
34 / 54
T
ecnicas de reversing
Patching y loaders
Metodos habituales: b
usqueda de cadenas o chequeo de APIs
Cambios estaticos (i.e., permanentes)
Loaders
Como el patching, pero en caliente m
as elegante
Dos tipos (basicos)
Simples
Debuggers (mas complejos):
util para programas empacados
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
35 / 54
T
ecnicas de reversing
Registro de Windows
Guardan datos en el Registro de Windows
APIs tpicas
RegCloseKey
RegCreateKeyEx
RegOpenKeyEx
RegSetValueEx
RegQueryValueEx
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
36 / 54
T
ecnicas de reversing
Keygenning
Objetivo: encontrar algoritmo de generacion de claves
Complejidad del algoritmo variable
Cada usuario tiene un n
umero de registro diferente
Ingeniera inversa pura y dura
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
37 / 54
T
ecnicas de reversing
Archivos de licencia
Soluci
on: intentar parchear. . .
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
38 / 54
T
ecnicas de reversing
Desempacado (unpacking)
Lista:
http://en.wikipedia.org/wiki/Executable_compression
Existen unpackers autom
aticos: tools propias o scripts
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
39 / 54
Algunos m
etodos antireversing
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
40 / 54
Algunos m
etodos antireversing
Tecnicas anti-tracing
Tecnicas anti-dumping
Tecnicas de ocultacion de OEP
Otras tecnicas:
Ofuscamiento de c
odigo (codigo basura)
Deteccion de modificaciones (CRC, APIs)
Criptografa
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
41 / 54
Ejemplo pr
actico
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
42 / 54
Ejemplo pr
actico
Pasos
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
43 / 54
Ejemplo pr
actico
Pasos
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
43 / 54
Ejemplo pr
actico
Pasos
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
44 / 54
Ejemplo pr
actico
Pasos
1
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
44 / 54
Ejemplo pr
actico
Pasos
1
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
44 / 54
Ejemplo pr
actico
Pasos
1
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
44 / 54
Ejemplo pr
actico
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
45 / 54
Ejemplo pr
actico
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
45 / 54
Ejemplo pr
actico
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
45 / 54
Ejemplo pr
actico
B
usqueda de cadenas referenciadas
Cadenas de chico bueno y chico malo
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
46 / 54
Ejemplo pr
actico
B
usqueda de cadenas referenciadas
Cadenas de chico bueno y chico malo
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
46 / 54
Ejemplo pr
actico
B
usqueda de cadenas referenciadas
Cadenas de chico bueno y chico malo
lstrcmpA: comparaci
on de cadenas
Valor de EAX determina igualdad
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
46 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
47 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
47 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
47 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
47 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
48 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
48 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
ECX + = 0x29A
ECX = 0x3039
ECX = 0x17
ECX = 0x9
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
48 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
EBX = 0
EAX = ECX
ECX = 0x0A
repeat
EDX = 0
EDX = EAX mod ECX
EAX / = ECX
DL+ = 0x30
Guardar DL en el buffer ESI + EBX
EBX + +
until EAX = 0
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
49 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
EBX = 0
EAX = ECX
ECX = 0x0A
repeat
EDX = 0
EDX = EAX mod ECX
EAX / = ECX
DL+ = 0x30
Guardar DL en el buffer ESI + EBX
EBX + +
until EAX = 0
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
49 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
EBX = 0
EAX = ECX
ECX = 0x0A
repeat
EDX = 0
EDX = EAX mod ECX
EAX / = ECX
DL+ = 0x30
Guardar DL en el buffer ESI + EBX
EBX + +
until EAX = 0
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
49 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
EBX = 0
EAX = ECX
ECX = 0x0A
repeat
EDX = 0
EDX = EAX mod ECX
EAX / = ECX
DL+ = 0x30
Guardar DL en el buffer ESI + EBX
EBX + +
until EAX = 0
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
49 / 54
Ejemplo pr
actico
Algoritmo de generaci
on
EBX = 0
EAX = ECX
ECX = 0x0A
repeat
EDX = 0
EDX = EAX mod ECX
EAX / = ECX
DL+ = 0x30
Guardar DL en el buffer ESI + EBX
EBX + +
until EAX = 0
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
49 / 54
Conclusiones
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
50 / 54
Conclusiones
Otras aplicaciones
Fuzzing
Exploiting
DBI (Dynamic Binary Instrumentation)
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
51 / 54
Investigaci
on en Ingeniera Inversa
2
3
4
5
6
Introducci
on a la Ingeniera Inversa
Que es la Ingeniera Inversa
Motivaci
on
Aproximaciones a la Ingeniera Inversa
Conocimientos previos
Refrescando la memoria. . .
Conocimientos de manejo de debuggers
7
Conocimientos de arquitectura x86 b
asicos
8
Conocimientos de las estructuras PE
Herramientas u
tiles
Tecnicas de an
alisis
9
C
odigo muerto
10
C
odigo vivo
R.J. Rodrguez
Tecnicas de reversing
CD Check
Patching y loaders
Time-trials y Registro de Windows
Captura del serial y Keygenning
Archivos de licencia
Desempacado (unpacking)
Algunos metodos antireversing
Ejemplo pr
actico
Estudio del crackME
Algoritmo de generaci
on
Conclusiones
Investigaci
on en Ingeniera Inversa
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
52 / 54
Investigaci
on en Ingeniera Inversa
B
usqueda de nuevas vulnerabilidades
R.J. Rodrguez
Introducci
on a la Ingeniera Inversa - DAS
DAS 2011
53 / 54
XX de Noviembre de 2011