|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
Esta forma de desempacar varia un
poco de lo visto anteriormente. Empezamos con nuestro viejo amiguete
cyTOm!c`s crackme esta vez empacado con Petite. Os recuerdo que si no veis el
código como en las capturas tenéis la opción
analysis – remove analysis para hacerlo legible. Al cargarlo en Olly aparecemos
aquí y vemos mas abajo el PUSHAD
Bajamos con F7 hasta
rebasarlo Seguimos ESP en el Dump Ponemos un BP - Hardware on access
– Word esta es la primera
variación: en lugar de ponerlo en Dword
(ya que no aparece) lo pondremos en Word Pulsamos F9 y aparecemos aquí y en
otros capítulos empezábamos a pasar con F7 desde aquí pero en este no
podemos pues vemos debajo de command bar que Olly para en una excepción, esta es otra
variación sobre lo ya visto a la hora de desempacar Petite. Vemos que nos dice que para pasar esta
excepción tenemos tres opciones: pulsar shift + F7, shift + F8 o shift + F9 Pulsaremos Shift + F9 y caemos
aquí: 4266FE
Estamos parados en otra excepción La pasamos de nuevo con Shift + F9 y caemos
aquí: Como ya no paramos en
ninguna excepción empezamos a trazar desde aquí con F7 y si sois
un poco observadores veréis un salto lejano (-) a la
sección code del crackme Al pasar esta dirección (44010B)
con F7 caemos en el OEP. Desde aquí solo nos queda volcarlo
con el plugin OllyDump – Dump debugged process marcando get EIP as OEP
y ya esta desempacado, no hay variación respecto al capitulo anterior a la
hora de desempacar, salvo recordar que si no os funciona volcando con method
1 lo hagáis con method 2. Crackme 1 de Doblecero empacado
con Petite Lo cargamos y aparecemos aquí: Pasamos el pushad con F7 Hacemos el seguimiento de ESP en
el Dump BP - Hardware on access - Word Paramos en la primera excepción Que pasaremos con Shift + F9 Caemos en la segunda excepción La pasaremos de la misma forma
(Shift + F9) y caemos aquí: Ya sin excepciones que molesten
bajamos con F7 hasta el salto y al rebasarlo con F7 caemos en
el OEP, se ve claramente el salto a la zona code. En este caso vemos que este
crackme esta escrito en Visual Basic Lo volcamos con OllyDump - Dump
debugged process – get EIP as OEP y ya esta. Petite tiene la pequeña diferencia
de que antes de llegar al OEP nos encontramos con un par de excepciones que debemos pasar con
Shift
+ F9 y que en lugar de marcar el BP - Hardware on access –
Dword marcaremos BP - Hardware on access - Word Bien veamos otra posible forma de
encontrar el OEP en Petite, esta vez
experimentando por mi cuenta. Me fije al hacer pruebas con varios
crackmes para este capitulo en una coincidencia: La dirección donde aparecemos al
cargar los crackmes en Olly es la misma donde aparecemos después de pasar las
excepciones y se toma el salto definitivo al OEP. Veréis lo que quiero decir mejor si comparáis las siguientes capturas Crackme cyTOm!c`s Punto donde aparecemos nada mas
cargarlo en Olly: 44010B Punto donde toma el salto al OEP
después de pasar la excepciones: 44010B Crackme de Doblecero Punto donde aparecemos nada mas cargarlo
en Olly: 408042 Punto donde toma el salto al OEP
después de pasar la excepciones: 408042 Se me ocurrió probar una forma de
hallar el OEP distinta: nada más cargarse el crackme en Olly pongo un BP con F2 para localizar bien esta dirección cuando
vuelva pasar por delante de mis narices y paso del pushad y de seguir el
dump y demás historias. Como soy por naturaleza curioso
y autodidacta (al menos hasta que veo
que me equivoco ;) lo probé, mirad el resultado. Nada mas cargarse en Olly pongo un
BP con F2 y después pulso F9 Para Olly un poco mas abajo en
440128 Y me indica que paro por un
hardware breakpoint que yo no puse, no entiendo el porque ¿? pero sigo ejecutándolo a ver que pasa. Pulso F9 y
para Olly en la misma excepción que cuando
lo pasábamos haciendo la técnica del pushad y demás Pulso shift + F9 para pasar la excepción y paro en 4266FE
igual que antes La paso con shift + F9 y
atención por que veo el BP que puse y justo debajo el salto al OEP Desactivo el BP que había
puesto. Desde aquí (440106) bajo con F7 hasta
rebasar el JMP y caigo de cabeza en el OEP, hago el volcado con el OllyDump y
el crackme funciona !!! Pruebo a hacerlo con el crackme de
Doblecero ahora sin poner ningún BP con F2 ni ná de ná, simplemente lo cargo
pulso F9 me para en el hardware breakpoint y continuo con F9, paso las
dos excepciones con shift + F9 y llego con F7 hasta el JMP lejano y lo rebaso
pulsando F7 una vez mas para caer en el OEP, desde aquí vuelco con
OllyDump y otro crackme volcado y
funcionando perfectamente, se ven las APIs y las strings
!!! Empaqueto con Petite el crackme de
Karpoff del capitulo 3 del curso y siguiendo los mismos pasos se desempaca
con éxito !!! Ahora llega la pregunta del millón
de dólares: si Petite se puede volcar así por que se hace lo del pushad ¿? Como soy un novatón y no creo
haber descubierto nada nuevo sobre el cracking a estas alturas, me gustaría
saber en que me estoy equivocando al hacerlo de esta manera - aunque el
resultado parece bueno-. Ya os dije al principio que íbamos
aprendiendo juntos, así que por favor si algún maestro lee esto que me
corrija y me lo explique un poco. Por supuesto cuando os encontreis
un exe comprimido con Petite seguid la técnica del Pushad pues la mía esta
sin testar por los maestros y la forma en que lo hace Ricardo seguro que no
falla. Nos vemos |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|