Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bienvenido(a),
Visitante. Por
favor Ingresar
o Registrarse
Perdiste tu
email de
activacin?.
| Foro | Web | Blog | Wiki | Ayuda | Buscar | Ingresar | Registrarse | 13 Septiembre 2015,
09:58
Foro de elhacker.net
Programacin
Ingeniera Inversa (Moderadores: Shaddy,
karmany, .:UND3R:., MCKSys Argentina)
Taller de Cracking desde cero - (actualizado:
27.julio.2008)
Pginas: [1]
Autor
Shaddy
Moderador
Taller de Cr
Desconectado
Mensajes:
720
INTRODUCCIN
Qu es esto del Taller de Cracking desde 0?
one_bit_manipulator()
Bien, despus de juntarnos ambos, y dada nuestra experiencia, hemos
pensado que lo mejor para que una persona empiece a conocer este
fantstico mundo de la ingeniera inversa, es ensear las cosas ms bsicas.
Este Taller de Cracking desde 0 va orientado a todas esas personas que tienen
muy pocos conocimientos (o ninguno) y que por este motivo no han querido
iniciarse en este Arte, que suele ser considerado algo complejo.
Todos nuestros esfuerzos, por lo tanto, van a ir dirigidos a hacer que esta
gente sin conocimientos, de sus primeros pasos y logre entender los
conceptos ms bsicos.
Estamos seguros, que a gente avanzada tambin les puede ayudar a
recordar, as que esperamos que os guste y que pueda ayudar a "empezar a
caminar"...
Como todo, hay que empezar por lo ms bsico, no podemos hablar de
debugger sin conocer nada de ensamblador y no podemos hablar de
ensamblador sin ni siquiera saber qu es el cdigo mquina.
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
1/21
13/9/2015
En lnea
Sueas que
sueas
Shaddy
En lnea
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
2/21
13/9/2015
Moderador
Desconectado
Mensajes:
720
Practicando Assembly
1.- Introduccin
Imaginemos esas instrucciones, en ste caso digamos que mete EAX y EDX
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
3/21
13/9/2015
Inicio:
MUL EAX, 3 ; M U L : M ultiplic a 2 regis tros almac enando en el primero.
INC EC X
C MP EC X, EBX
JNE Inicio ; J N E : es un s alto c ondic ional (J N E : J U M P I F N O T E Q U A L / Salta s i no es igual) que
va hac ia la direc c in que le indiques s iempre y c uando el res ultado de la c omparac in anterior s ea
desigal.
4.-EDX: Datos
- ste es utilizado tambin antes de invocar a una API para darle los datos.
3.- LA PILA: Parte I
Qu es la PILA?
- Tcnicamente es una estructura de datos, del tipo LIFO (del ingls Last In
First Out, ltimo en entrar, primero en salir). Te x to e x trado de la wik ipe dia. .
y vosotros os preguntaris, que esto de una estructura?, Bien. Imaginad
que formamos una ventana, o por ejemplo, el tpico mensaje de texto. En
ste caso es la API MessageBoxA .
4/21
13/9/2015
1 Me ssage Box A e s la API e ncargada de lanzar e se m e nsaje tipo "caja de te x to" que
puse e n la im age n.
Citar
PUSH Ttulo
PUSH Cuerpo
PUSH Botones
C ALL MessageBoxA
00401005 Botones
00401000 Cuerpo
00401020 Ttulo
de manera que si ahora nos encontrramos con una instruccin tipo POP EAX
extraeramos Botones por ser la ltima que se introdujo hacia el REGISTRO
EAX el cual hemos indicado mediante la instruccin.
sta estructura es un ejemplo, de que existe una zona donde se guardan
valores MUY importantes en el flujo de un programa, as como por ejemplo, si
se ejecutara la instruccin CALL MessageBoxA y sta se encontrara por
ejemplo en la direccin 402500 (vamos a hacer un ejemplo de donde la
direccin en la que se sitan las instrucciones):
Ate ndie ndo al e je m plo de ante s aado las m ism as instruccione s pe ro con sus
re spe ctivas dire ccione s im aginarias.
Citar
RETURN to 40250F
Botones
Cuerpo
Ttulo
5/21
13/9/2015
Sabemos que slamente hay una posibilidad, pero tambien debemos saber a
que parte de EAX corresponde, porque si fuese AX por ejemplo ya cambiara
la posicin del movimiento.
Mas adelante veremos como se trabaja con "punteros", y ah deberemos
tener bien claro stas correspondencias:
DWORD -> EAX
WORD -> AX
BYTE
-> AH y AL
Citar
Ejercicio 2:
MOV EAX, 00004932h
ADD AX, 45h
SUB AL, 0Ah
6/21
13/9/2015
En lnea
Mensajes:
1.507
Pequea Introduccin.
Sueas que
sueas
Presentacin de OllyDBG.
OllyDBG es principalmente un debugger para aplicaciones a 32 bits en
Microsoft Windows. Es un debugger en Ring3.
Tiene muchsimas otras opciones e incluso es posible la utilizacin de plugins
(o si eres programador hacerlos t mismo) que hacen de l un programa
verdaderamente potente.
Para conocer sus caractersticas podemos visitar su pgina Web:
http://www.ollydbg.de/
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
7/21
13/9/2015
karmany
Moderador
Desconectado
Mensajes:
1.507
Sueas que
sueas
En lnea
Ventana de desensamblado
Respuesta #4 en: 18 Noviembre 2007, 17:59
Disassembly
PUSH 40142C
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
Comment
8/21
13/9/2015
9/21
13/9/2015
karmany
Moderador
Desconectado
Mensajes:
1.507
En lnea
Sueas que
sueas
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
10/21
13/9/2015
11/21
13/9/2015
TEORA de
Virtual Offset
Virtual Size
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
Raw Offset o
Raw
12/21
13/9/2015
Size o
Flags
PointerToRawData
SizeofRawData
.text
1000
AE800
60000020
.data
B0000
1D200
C0000040
.tls
10B000
200
C0000040
.rdata
10C000
200
50000040
.idata
10D000
1E00
40000040
.edata
10F000
1400
40000040
.rsrc
111000
35A00
40000040
.reloc
147000
BE00
50000040
AF000
600
5B000
AEE00
1000
CC000
1000
CC200
2000
CC400
2000
CE200
36000
CF600
C000
105000
13/21
13/9/2015
Ejemplo2
Bueno, acabamos de ver un ejemplo muy sencillo, vamos a hacer otro que es
lo que nos vamos a encontrar normalmente, y es lo que hay que aprender a
entender.
Voy a abrir el OllyDBG con el OllyDBG y me voy a ir a una direccin
cualquiera...:
Cdigo:
0046123E
00461241
8B 4E 14
8B 53 14
14/21
13/9/2015
karmany
Moderador
Desconectado
Mensajes:
1.507
Sueas que
sueas
En lnea
2. Ventana de Dump
Respuesta #6 en: 24 Diciembre 2007, 00:16
karmany
Moderador
En lnea
Desconectado
Mensajes:
1.507
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
15/21
13/9/2015
Sueas que
sueas
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
16/21
13/9/2015
karmany
Moderador
Desconectado
Mensajes:
1.507
En lnea
Sueas que
sueas
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
17/21
13/9/2015
Tiene en su parte superior una barra que nos permite visualizar 3 vistas
diferentes simplemente pulsando en la misma.
-Registers (FPU)
-Registers (MMX)
-Registers (3DNow!)
Para lo que estamos aprendiendo yo recomiendo que lo dejis en Registers
(FPU), tal como se ve en la imagen. La diferencia con las otras dos vistas es
que en esta (FPU) se muestran los registros ST(0)....ST(7) que son utilizados
para realizar operaciones de punto flotante. Slo quedaros con eso no
entraremos en ms detalles.
Registers (FPU):
Vamos a explicar todo lo que hay en esta ventana. Para ello echaremos un
vistazo a la imagen que he puesto.
Lo primero que aparece son los registros que ya conocemos y sus respectivos
valores que almacenan:
Cdigo:
EAX 00000000
ECX 0013FFB0
EDX 7C91EB94 ntdll.KiFastSystemCallRet
EBX 7FFDF000
ESP 0013FFC4
EBP 0013FFF0
ESI FFFFFFFF
EDI 7C920738 ntdll.7C920738
EIP 004011C0 Crackme_.<ModuleEntryPoint>
Podemos observar como dije antes que estamos detenidos en el EntryPoint.
(EP)
Despus nos encontramos con:
Cdigo:
C1
P0
A0
Z0
S1
T0
D0
O0
Son lo denominado Flags o Banderas. Se ponen unicamente a 0 o 1 y se
modifican cuando ha ocurrido una determina instruccin(operacin).
Por ejemplo, el Flag Z o Flag Cero (vemos Z 0) se pone a cero cuando se
ejecuta una operacin y el resultado ha sido cero. Veamos:
Imaginemos que EAX vale 00000001; eax = 1
El flag Z est de momento a cero.
Y tenemos lo siguiente:
DEC eax ;con lo que eax valdr 0.
Tras esta instruccin el Flag Z se pone a 1...
Para este tutorial no entrar a explicar todos los Flags.
Seguimos. A la derecha de estos Flags vemos lo siguiente:
Cdigo:
ES 0023 32bit 0(FFFFFFFF) -> general o de string
CS 001B 32bit 0(FFFFFFFF) -> de cdigo
SS 0023 32bit 0(FFFFFFFF) -> de stack
DS 0023 32bit 0(FFFFFFFF) -> de datos
FS 003B 32bit 7FFDE000(FFF) ->segmentos def. por el usuario
GS 0000 NULL -> segmentos def. por el usuario
Son los denominados Registros de Segmento utilizados para direcciones de
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
18/21
13/9/2015
karmany
Moderador
Desconectado
Mensajes:
1.507
En lnea
Sueas que
sueas
3.- El registro ebx tiene una direccin. Quiero ir a esa direccin en el dump
rpidamente:
Imaginemos que ebx (o cualquier otro registro) vale 402000. Queremos ir a
esa direccin en la Ventana del Dump. Simplemente seleccionamos el registro
ebx y pulsamos botn derecho del ratn --> Follow in dump
19/21
13/9/2015
En contruccin
Perdonar las molestias
En lnea
Pginas: [1]
Ir a:
ir
Mensajes similares
Asunto
Iniciado por
Taller de programacin en C
desde cero 1 2
elohim
3,771
10 Mayo 2006,
21:12
por Jec
6,011
22 Noviembre
2007, 08:32
por Shaddy
P rogramac in C /C ++
Proyecto-Taller: Electrnica,
desde cero. 1 2 3
der
Unbekannte
Firos
20
E lec trnic a
30 Abril 2010,
26,648 05:04
por Mr.Blue
juancarlos230
3,794
LukaC rosszeria
806
I ngeniera I nvers a
lawebdegoku
Yashira.org
Internet mvil
Underground Mxico
thehackerway
MundoDivx
indetectables.net
ADSL
El Lado del Mal
Tienda Wifi
Hispabyte
Seguridad Colombia
eNYe Sec
Blog Uxio
underc0de
30 Noviembre
2010, 23:05
por yako-_3 Octubre 2013,
17:07
por apuromafo
Truzone
Seguridad Informtica
Seguridad Wireless
DriverLandia
20/21
13/9/2015
http://foro.elhacker.net/ingenieria_inversa/taller_de_cracking_desde_cero_actualizado_27julio2008-t180886.0.html
21/21