Armadillo superexplicado del programa FtpRush.doc
-
Upload
alejandro-estela -
Category
Documents
-
view
214 -
download
0
Transcript of Armadillo superexplicado del programa FtpRush.doc
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 1/18
Armadillo superexplicado del programa FtpRush,Desempacado, Redirección de la Tabla y Antidumps
Antes que nada aclarare que muchos de los conocimientos brindados para realizar este
tute han salido de otros tutes de CracksLatinos y también de mi buen amigo y maestroRicardo Narvaja.
n esta ocasi!n intentare e"plicar como desempacar# redireccionar la tabla de
importaciones y por ultimo eliminar la protecci!n Antidump que tiene este Armadillo
sin Copymem$ ni nanomites# pero si con Antidumps.
La victima es el programa %tpRush versi!n &.'.'(')
ste programa sirve como cliente %*+ y tiene muchas otras habilidades m,s# como
puede ser %-+.
l mismo es el sucesor del programa ltra%"p el cual ya no se actualiza mas por
problemas legales y el c!digo /ue vendido al due0o del %tpRush.l programa se puede descargar de1
http://www.tprush.com/download/tprush.exe
Las herramientas que utilizaremos en este tutorial ser,n1 2lly3bg# 4mport
Reconstructor# *opo y +ditor
+lugin de 2lly1 4s3ebbuger+resent.
Como me imagino que el programa ya lo han descargado he instalado vamos al ataque.
Desempacado y dumpeadoCargo el ejecutable del programa 5%tpRush.e"e6 en el 2lly. 7amos al men8 +lugins del
olly y ponemos hide en el 4s3ebbuger+resent.
sto lo hacemos para que el programa no nos detecte que lo estamos corriendo bajo
2lly 5o sea un 3ebuger6.
!uscamos el "#$
Como ya antes ha e"plicado Ricardo# para llegar al 2+ hay que poner un breakpoint
memory on access en la primera secci!n.
7amos al men8 7ie9 y después a :emory# ah; aparecen todas las secciones de nuestro programa.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 2/18
l breakpoint on memory access hay que ponerlo en el <'&''' que es la primera
secci!n y aparece justo debajo del +e=>eader.
3amos run y seg8n la con/iguraci!n que tengan en 2ptions ? 3ebuggin options es la
cantidad de veces que tendr,n que dar @hi/t %B en mi caso $ veces.Luego caer,n en )<B('C que es el 2+ del programa.
Determinación de la posición y tama%o del Tabla
na vez que ya encontramos el oep el siguiente paso es encontrar donde esta ubicada la
tabla y luego sus dimensiones. +ara ello lo que conviene en este caso es tracear con %)
hasta llegar a donde vemos llamadas a las apis. n este caso llegamos hasta <')C
como vemos abajo.
ntonces mirando un poco nos damos cuenta que )((D&<# )((D&'# )((D'C y )((D'
son parte de la tabla. +or lo tanto nos conviene elegir el 8ltimo valor ya que es el m,s
chico y nos ahorrara tiempo al buscar el principio de la tabla.
7amos a la ventana de abajo la del 3ump y seleccionamos Eo to ? "pression. 2
usando sus teclas r,pidas Ctrl E.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 3/18
F luego en la ventana que se abre ponemos )((D'.
Ah; nos va a mostrar en el 3ump lo siguiente.
@i subimos buscando el principio de la tabla en este caso es medio /,cil ya que justo
arriba de la misma empiezan ceros.
Asi que encontramos el principio en )((&'.
Gueno ahora nos toca buscar el /inal de la misma# asi que hacemos lo contrario bajamos
hasta ver donde empiezan los ceros nuevamente.
7emos que eso pasa en
+ero como no sabemos e"actamente donde termina# porque puede haber basura al /inal#
buscamos las re/erencias cada < bytes y nos /ijamos si hacen re/erencia hacia un Call o
un H:+.
+ara ello seleccionamos < bytes por ejemplo en )((c& seleccionamos desde $ hasta
IC y le damos clic derecho y luego a %ind Re/erentes.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 4/18
@i nos aparece vac;a# probamos con los de m,s arriba asi hasta encontrar donde hace la
ultima re/erencia la *abla.
F eso pasa en )((C' y como siempre hay que dejar < bytes mas# seria hasta )((C'C.
Ahora para calcular cuanto mide la tabla sacamos la cuenta# /inal de la tabla J principio
K tama0o.
Reemplazando los valores seria1 )((C'% J )((&' K A$Csos valores tenemos que tenerlos presentes porque los necesitaremos mas adelante.
&alto '(gico
Como de seguro ya hemos le;do varios tutes de Ricardo sobre Armadillo sabremos que
hay un /amoso salto m,gico que es el que nos ayudara a arreglar toda la tabla de una.
+ara ello utilizaremos uno de los valores malos que hay en la tabla con puede ser
))*++- DA AF FF )) 0.
Como se habr,n /ijado es una entrada err!nea que nos viene muy bien para encontrar
ese tan buscado salto.
Ahora tendremos que reiniciar el programa 5Ctrl %$6 y luego poner a >ide de vuelta
el 4s3ebbuger+resent# luego en la ventana del 3ump damos click derecho y
seleccionamos Eo *o y ponemos la direcci!n mala que vimos arriba.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 5/18
F vemos que en el dump no hay nada o sea todo son ceros K vac;o.
Luego le damos click al primer byte y luego le ponemos un breakpoint >ard9are# on9rite y luego en 39ord.
Le damos Run# salteamos las e"cepciones con @hi/t %B y después aparece una
e"cepci!n mas esa pasamos apretando %B solamente y caemos en &'&I<'C
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 6/18
Ahora vamos al men8 3ebug y luego a >ard9are breakpoints y borramos el que esta.
Ahora ponemos un breakpoint >ard9are# on e"ecution sobre el &'&I<'C.
Reiniciamos de vuelta Ctrl %$ y le damos Run o %B# pasamos las e"cepciones con
@hi/t %B y caemos de vuelta en &'&I<'C. Ahora pongamos Eo to en el dump el de
abajo para el despistado. F ah; ponemos el principio de la tabla o sea )((&' nos
/ijamos que esa entrada ya la arreglo.
Ahora traceamos con % y en &'&I$GC tenemos1
)1)12!3 /*+ 4 567 &8"RT )1)129))se salto es el que decide si poner la entrada buena o poner una mala asi que ya
sabemos que tenemos que hacerle# lo nopeamos.
+ara eso le damos click en el listado y luego escribimos en la ventana que aparece N2+
y le damos en Assemble y luego Cancel.
F nos deber;a quedar asi
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 7/18
Luego de eso vamos de vuelta al men8 3ebug y luego a >ard9are breakpoints y
borramos el que esta. Nos tiene que aparecer como abajo.
Ahora le damos Run y aparece un error# quédense tranquilos que al principio medio que
como eso no me hab;a pasado nunca me puse un poco paranoico pensando que iba a
tenerlo que hacer una vez m,s. jaja# pero gracias a un tute que vi de *enshin y a la
ayuda de nuestro querido maestro logre entender que ese error era porque al /inal de latabla# este armadillo hace re/erencia a armaccess.dllM y como ella no la tengo me tira el
error.
+ero no es problema. La soluci!n al tema es bastante /,cil.
Abrimos otro olly# sin cerrar el primero que esta parado en el error# en el olly nuevo que
abrimos carguemos el archivo original o sea %tpRush.e"e# después nos /ijamos que no
haya ning8n >ard9are breakpoint en el men8 3ebug# ponemos @et memory breakpoint
on access en la primera secci!n y nos acordamos de activar >ide del
4s3ebbuger+resent# ejecutamos# pasamos las e"cepciones con @hi/t %B y estamos en
el 2+ de vuelta.
Luego vamos al olly con error# ah; nos dirigimos al 3ump ventana abajo# y vamos hasta
el principio de la tabla en )((&'# ah; le damos click y desde la barra del costado nos
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 8/18
vamos hasta )((C'C y ah; dejamos apretado el @hi/t y le damos click al 8ltimo byte o
sea al )((C'C.
Luego tenemos que hacer un binary copy de toda la tabla que ya tenemos seleccionada#
para ello le damos click derecho y seleccionamos Ginary y después Ginary copy.
Ahora vamos al segundo olly el que esta parado en el oep o sea el que no tiene mensaje
de error y vamos al 3ump# seleccionamos como recién toda la tabla desde )((&' hasta
)((C'C le damos click derecho y ponemos Ginary ? Ginary paste.
7amos a ver que hay partes dentro de la selecci!n que hicimos que se han puesto rojas
en donde copiamos eso signi/ica que ha habido cambios en la tabla entre una y otra.
Ahora cerramos el primer olly el que tiene error# aceptamos en el mensaje de error y
luego lo cerramos normalmente.
Dumpeado
ste paso lo hemos hecho di/erentes a los dem,s# porque si lo hacemos con una de las
utilidades que todos usan como el Lord+e nos crea un dumpeado per/ecto a simplevista# pero cuando entramos a comparar en pro/undidad son di/erentes# por eso como
dir;a Ricardo lo vamos a hacer de la /orma di/;cil "3.
ntonces una vez que juntamos /uerzas para continuar el desa/;o vamos al men8 +lugins
? 4s3ebbuger+resent ? 3umper.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 9/18
Ah; nos aparecer, una ventana que nos pide el o//set y el size# o sea el inicio y el
tama0o.
l o//set 5inicio6 es siempre <''''' y el size 5tama0o6 hay que verlo en el men8 7ie9 ?
"ecutable modules.
Ah; se nos va a abrir una ventana que muestra ah; tenemos que buscar uno que nombre
al %tpRush.e"e y en esa misma l;nea las dos primeras columnas son las que interesan# la
primera es el inicio y la segunda es el tama0o.
n mi caso al igual que el de uds. en este programa el inicio dijimos esta en <''''' y el
tama0o en I&''''.
Le damos dump y nos va a pedir donde guardarlo y con que nombre eso es a criterio
propio. Fo en mi caso lo llame dumped.e"e.
Arreglando el Dumpeado
@i este archivo lo vemos en el e"plorador de indo9s# veremos que no tiene icono y
que se ve /eo.
@i lo tratamos de arreglar de una con el +editor el mismo nos tirara un mensaje de errorque el programa dumped.e"e es de &Ibits.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 10/18
sto lo solucionaremos ahora.
Abrimos otro olly con el %tpRush.e"e original# luego vamos a la parte de abajo al
3ump# click derecho# elegimos Eo to ? "pression y ah; ponemos <'''''# damos un
click al primer byte de la secci!n que dice <3 y luego vamos con la barra de
desplazamiento hasta el /inal de esa secci!n que es <''%%% y ah; dejamos apretado el
@hi/t y le damos click.
Ahora le damos click derecho# vamos a Ginary ? Ginary Copy.
Ahora nos vamos al 2lly que ten;amos de antes y también vamos a la parte del 3ump#
click derecho# vamos a Eo to ? "pression y ah; ponemos <'''''.
@eleccionamos desde el primer byte hasta el /inal# para eso nos desplazamos con la
barra del costado hasta <''%% y ah; dejamos apretado el @hi/t y le damos click.
Luego damos click derecho# Ginary ? Ginary paste. @i subimos al principio de esa
secci!n con la barra de desplazamiento# nos vamos a dar cuenta que hay partes en rojo#
eso es bueno# porque nos arreglo el tema de los &Ibits# para que el +editor lo pueda
trabajar.
Ahora cerramos el olly que hab;amos abierto 8ltimo. 7olvemos al que modi/icamos y
entramos al men8 +lugins ? 4s3ebbuger+resent ? 3umper.
Ah; volvemos a poner <''''' en el o//set y I&'''' en el size# dump y ponemos de
vuelta el nombre del archivo y la ubicaci!n. n mi caso de vuelta dumped.e"e.
+robamos abrirlo nuevamente con el +editor y ahora no nos tira ning8n error y lo abre
per/ectamente.
@eleccionamos el bot!n @eccions que esta dentro del /rame de *ables en el +editor.
na vez dentro le damos click derecho a cualquier secci!n y seleccionamos dump/i"er.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 11/18
Nos aparece un cartelito que estuvo y ahora secci!n por secci!n click derecho y despuésset the characteristics to '''''$'# esos las hace de lectura y escritura a cada secci!n.
Cerramos la ventana de las secciones y volvemos a la pantalla principal del +ditor.
Ahora cambiaremos el 2+ al que encontramos al principio del tute que estaba en
)<B('C.
l 2+ se pone 2+ J <''''' K D<B('C.Lo cambiamos en donde dice ntr. +oint y luego apply changes.
Ahora cerramos el 8ltimo olly que abrimos# y nos volvemos a quedar con el primero
nom,s.
@i queremos probar que haya quedado bien# podemos abrir otro olly e intentar cargar el
dumped.e"e si lo habré bien y queda parado en )<B('C es por hasta ahora me han
entendido "3.
Arreglando la AT
ste paso lo vamos a necesitar a nuestro amigo 4mport Reconstructor# lo abrimos y en el
combo de arriba buscamos el proceso de nuestro %tpRush.
na vez encontrado nos va a buscar todos los m!dulos a los que hace re/erencia.
Nosotros vamos a poner el 2+ que tiene que ir siempre rest,ndole el inicio o sea
<'''''.
ntonces el oep K D<B('C# el R7A es el inicio de la tabla 5)((&'6 J <''''' K
D((&'. F el @ize es el de la tabla# )((C'C 5/inal6 J )((&' 5principio6 K A$C.
Luego apretamos Eet 4mports y quedara asi
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 12/18
Luego apretamos @ho9 4nvalid y después le damos click derecho a cualquier item que
este resaltado que son los malos que no hacen re/erencia a ninguna dll.
Al primero que veamos le damos click derecho y seleccionamos Cut thunk5s6 antes de
seleccionar esa opci!n /ijarse bien que no se haya seleccionado por equivocaci!n
ninguna entrada correcta.
na vez hecho esto el 4R nos tiene que quedar asi.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 13/18
Apretamos %i" 3ump# nos pide el nombre y la ubicaci!n de nuestro dumpeado# lo
buscamos y le damos abrir.
na vez que nos dice que se guardo correctamente. Cerramos el 4mport Reconstructor.
3rear una &ección nue;a
Ahora vamos a crear una secci!n nueva en el dumpeado que va a contener todos los
antidumps que est,n en el original# porque sino el archivo dumpeado nunca va a
/uncionar y como son tantos seria medio complicado hacerlo uno por uno "3.
7amos al men8 7ie9 ? :emory o Alt :.
F buscamos la ultima secci!n antes de que empiecen las 3ll# la secci!n en este caso es
la que contiene todos lo antidumps# o sea que hay muchos saltos que apuntan a esa
secci!n. La misma mide $''''.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 14/18
Cada vez que se reinicia el programa la secci!n cambia# en este caso la secci!n esta en
$$'''' y mide lo que dije antes# siempre mide $'''' en este programa. Fa podemos
cerrar la ventana del :emory :ap.
Ahora vamos a abrir *o+o# vamos poner open y buscamos el dumpeado pero que ya
tiene la tabla reparada o sea en mi caso dumpedO.e"e.
7a a aparecer un cartel# damos aceptar.
Ahora vamos a seleccionar Create a ne9 section.
n donde dice bytes to be added vamos a poner $'$'' 5he"adecimal6 en decimal o sea
&D&(<. "plico# $'''' mide la secci!n que tenemos que copiar del original al
dumpeado es la que contiene los antidumps# pero debajo de esa secci!n hay que hacer
un injerto que son un par de l;neas# y como pre/erimos que sobre un poquito en vez de
que /alte le damos $'' e"tra por eso $'''' $'' K $'$''.
F seleccionamos también :ake code 9ritable la opci!n de Gackup /ile es bueno# pero
es a gusto de cada uno.
Le damos a 3o 4tP. F abajo en el cuadro Result nos dice los bytes que se agregaron# que
son los que le indicamos nosotros y debajo de eso nos dice memory address ''A&D'''h
o sea que lo creo en A&D'''.
Fa podemos proceder a cerrar el *o+o.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 15/18
7amos a abrir un olly nuevo pero esta vez con el archivo dumpeado que ya tiene la
tabla reparada y que ya tiene la secci!n creado por *o+o donde vamos a copiar los
antidumps.
n el olly que tiene cargado el %tpRush original vamos al 3ump abajo# click derecho
Eo to ? "pression y ponemos el inicio de la secci!n de los antidumps que la vimosrecién# porque en cada ejecuci!n varia de posici!n la misma# esta vez la tengo en
$$''''# asi que eso es lo que ponemos en el go to.
Le damos click y con la barra de desplazamiento nos vamos hasta donde empiezan los
ceros abajo que es en $D%%% pero como es al /inal de esa l;nea vendr;a a ser en
$D%%%% ah; dejamos apretado el @hi/t y le damos click# luego click derecho y vamos a
Ginary ? Ginary Copy.
Ahora vamos al olly que tiene el dumpeado "3 y vamos a la secci!n 3ump abajo# y le
damos click derecho# vamos Eo to ? "pression y seleccionamos 'A&D'''# no
podemos poner A&D''' porque el olly no lo acepta# le damos click y luego con la barranos vamos al /inal de la secci!n que es ADD%%% y ah; dejamos apretado el @hi/t y luego
click.
Ahora le damos click derecho# vamos a Ginary ? Ginary paste y ya tenemos copiada la
secci!n de los antidumps.
3amos click derecho en el dump ahora que esta todo seleccionado y le damos click a
Copy to e"ecutable /ile.
@e habré otra ventana y en ella le damos click derecho y seleccionamos @ave /ile.
Ah; ponemos otro nombre al ejecutable# en mi caso lo llame dumpedOantidumps.e"e.
Cerramos el dumpeado que esta cargado en el olly y abrimos el dumpeado que ahora
tiene los antidumps.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 16/18
7amos a la ventana del 3ump y ponemos Ctrl E 5Eo to6 a 'A&D''' y ah; con la barra
de desplazamiento vamos a ir hasta donde empiezan los ceros.
Llegamos hasta A$$%GG eso nos indica donde terminan los antidump# ahora en el
listado de arriba# click derecho# Eo to ? "pression y ah; ponemos 'A$$%GG.
Ahora vamos a empezar a escribir el injerto para que direcci!n todos los dumps que van
a la secci!n de los antidumps# para que vengan a la secci!n que nosotros hemos creado.
mpecemos nom,s# le damos doble click a A$$%GG en el listado ah; se abre una
ventana que es donde escribiremos el injerto.
4remos en orden1
&6 +@>A3
$6 +@> <
D6 +@> $'''
<6 +@> $''''
ste es el tama0o de la secci!n de los antidumps.(6 +@> $$''''
I6 Call Q)((&%
se call hace re/erencia al lugar dentro de la tabla donde se encuentra 7irtualAlloc
)6 +@> <
6 +@> &'''
B6 +@> $''''
&'6 +@> $$''''
&&6 Call Q)((&%
&$6 :27 C-#'''
ste es el tama0o de la secci!n divido < en he"adecimal K '''
&D6 :27 @4#'A&D'''
sta es la direcci!n donde el topo nos creo la secci!n nueva.
&<6 :27 34#A-
&(6 R+ :27@ 32R3 +*R @1Q34#32R3 +*R 3@1Q@4
&I6+2+A3
&)6 H:+ )<B('C
ste 8ltimo es el salto que le devuelve el control al 2+ original# porque lo que
haremos ahora ser, cambiar el 2+ de )<B('C a A$$%GG# pero todav;a /alta un
poco para eso.
@i nos ha quedado asiS estamos en camino aun.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 17/18
Ahora seleccionaremos en el listado desde A$$%GG hasta A$$%% y le daremos
click derecho# después Copy to e"ecutable ? @election
Ah; se habré otra ventana mas ah; volvemos a darle click derecho y después @ave
/ile.
@eleccionamos un nombre para ese ejecutable di/erente al que ten;amos# en mi caso
lo llame dumpedOinjerto.e"e.
3ambiando inalmente el "#$
Fa estamos muy cerca de nuestro objetivo /inal.
Ahora abriremos el +ditor nuevamente# bro9se y buscamos eldumpeadoOinjerto.e"e.
na vez abierto el archivo nos /ijamos en el ntry +oint y vemos que apunta a
D<B('C que es el 2+ original.
+ero antes de llegar a este del programa# el mismo tiene que arrancar nuestro injertoy si nos acordamos nuestro injerto termina en un salto a )<B('C devolviendo
/uncionamiento al terminar el injerto al 2+ original en )<B('C.
ntonces tenemos que cambiar el ntry +oint a I$$%GG que es lo mismo que
A$$%GG J <'''''.
Aplicamos los cambios de apply changes. F guala. "3.
7/22/2019 Armadillo superexplicado del programa FtpRush.doc
http://slidepdf.com/reader/full/armadillo-superexplicado-del-programa-ftprushdoc 18/18
Disrutemos
Ahora ya podemos copiar el dumpeadoOinjerto.e"e a la carpeta e"acta donde estainstalado el %tpRush. Lo podemos renombrar tranquilamente# y si lo ejecutamos
vemos que ya no aparecer la molesta NAE que tenia al arrancar el programa.
ntramos al men8 Ayuda ? Acerca de %tpRush y vemos que ya directamente
aparece registrado... jaja
:uchachos les agradezco mucho# por el tiempo que se hayan tomado en ver este
tuto que es mi primero y por el apoyo que recib; en participar de la lista y por todo
lo que he aprendido.
F por supuesto# no me puedo olvidar de mi maestro Ricardo Narvaja T6.
:older