Hola a todos.
Quería saber si alguien me podía echar una mano con un ejecutable protegido con Armadillo con el que llevo un par de semanas liado. Llevo semanas probando herramientas y siguiendo tutoriales de la web de Ricardo Navaja (de hecho,creo que me los he leído y repasado todos) pero no consigo hacerlo funcionar.
Voy a intentar facilitar toda la información que sea posible:
El ArmaFP hasta hace poco me detectó que la versión era la 3.30e, pero desde que reseteé la info del trial no me detecta la versión (creo que es por eso). Este es el log que me da:
Protected Armadillo
File Size 2150400
Load file
<-Find Protect
Protection system(Digital River)
<Protection Options>
Standard protection or Minimum protection
<Backup Key Options>
Fixed Backup Keys
<Compression Options>
Better/Slower Compression
<Other Options>
Use Digital River Edition Keys
<-Find Version
?-Error (299) Version not found
?-Error (183) EXCEPTION_BREAKPOINT
El R.D.G Packer sólo indica "Armadillo detección heurística" y con el advanced scan del exeinfope me dice que si es una versión 4.x o una versión 1.71. En fin, un lio. Por los tutos que he visto, me fio más del criterio del ArmaFP.
De momento creo haber encontrado el OEP:
005A1CAC 55 PUSH EBP
005A1CAD 8BEC MOV EBP,ESP
005A1CAF 83C4 F4 ADD ESP,-0C
005A1CB2 53 PUSH EBX
005A1CB3 56 PUSH ESI
005A1CB4 57 PUSH EDI
005A1CB5 8B75 08 MOV ESI,DWORD PTR SS:[EBP+8]
005A1CB8 8B46 10 MOV EAX,DWORD PTR DS:[ESI+10]
005A1CBB 83E0 01 AND EAX,1
005A1CBE A3 B8CA5E00 MOV DWORD PTR DS:[5ECAB8],EAX
005A1CC3 E8 90CDFFFF CALL xxxxxx.0059EA58
005A1CC8 8B56 20 MOV EDX,DWORD PTR DS:[ESI+20]
005A1CCB 52 PUSH EDX
005A1CCC 8B4E 1C MOV ECX,DWORD PTR DS:[ESI+1C]
005A1CCF 51 PUSH ECX
005A1CD0 E8 5BD1FFFF CALL xxxxxx.0059EE30
005A1CD5 83C4 08 ADD ESP,8
005A1CD8 8B46 28 MOV EAX,DWORD PTR DS:[ESI+28]
005A1CDB 50 PUSH EAX
005A1CDC E8 C778FFFF CALL xxxxxx.005995A8
005A1CE1 59 POP ECX
005A1CE2 8B56 44 MOV EDX,DWORD PTR DS:[ESI+44]
005A1CE5 52 PUSH EDX
005A1CE6 E8 CD78FFFF CALL xxxxxx.005995B8
005A1CEB 59 POP ECX
005A1CEC C705 84936000 01>MOV DWORD PTR DS:[609384],1
005A1CF6 8935 88936000 MOV DWORD PTR DS:[609388],ESI
Y la zona de la IAT:
0060F15C 100017F0 JPEGENHD.AttachImage
0060F160 100017C0 JPEGENHD.CreateUnJPEGImage
0060F164 10001850 JPEGENHD.CreateUnJPEGIns
0060F168 10001810 JPEGENHD.DetachImage
0060F16C 10001A10 JPEGENHD.GetProgressSteps
0060F170 10001980 JPEGENHD.GetResult
0060F174 100018A0 JPEGENHD.ProcessImage
0060F178 10001820 JPEGENHD.SetControlData
0060F17C 10001940 JPEGENHD.SetImage
0060F180 100018E0 JPEGENHD.SetParameters
0060F184 100018C0 JPEGENHD.SetProgressBar
0060F188 00FC78C9
...
0060F194 00000000
0060F198 01831050 HOOKDLL.InstallKBHook
0060F19C 018310F0 HOOKDLL.UnInstallKBHook
0060F1A0 00FC78EF
...
0060F1C8 00FCAC9B
0060F1CC 77DB4280 ADVAPI32.RegDeleteKeyA
0060F1D0 77DC4CB0 ADVAPI32.RegFlushKey
0060F1D4 77DA7842 ADVAPI32.RegOpenKeyExA
0060F1D8 77DA7AAB ADVAPI32.RegQueryValueExA
0060F1DC 77DAEAD7 ADVAPI32.RegSetValueExA
0060F1E0 00FC7946
...
Pero no consigo encontrar el salto mágico ni nada por el estilo; por mucho que he investigado la diferencia entre una entrada buena y una mala lo único que he encontrado es esto:
00FDE1D3 6A 01 PUSH 1
00FDE1D5 58 POP EAX
00FDE1D6 85C0 TEST EAX,EAX
00FDE1D8 0F84 79030000 JE 00FDE557 --> tanto bien como mal, no salta
00FDE1DE 66:83A5 88E7FFFF 00 AND WORD PTR SS:[EBP-1878],0
00FDE1E6 83A5 80E7FFFF 00 AND DWORD PTR SS:[EBP-1880],0
00FDE1ED 83A5 84E7FFFF 00 AND DWORD PTR SS:[EBP-187C],0
00FDE1F4 8B85 94ECFFFF MOV EAX,DWORD PTR SS:[EBP-136C]
00FDE1FA 0FBE00 MOVSX EAX,BYTE PTR DS:[EAX]
00FDE1FD 85C0 TEST EAX,EAX
00FDE1FF 0F85 0C010000 JNZ 00FDE311 --> salta para la buena
00FDE205 C785 30E7FFFF 7178FC00 MOV DWORD PTR SS:[EBP-18D0],0FC7871
00FDE20F C785 34E7FFFF 9778FC00 MOV DWORD PTR SS:[EBP-18CC],0FC7897
00FDE219 C785 38E7FFFF F678FC00 MOV DWORD PTR SS:[EBP-18C8],0FC78F6
00FDE223 C785 3CE7FFFF 0979FC00 MOV DWORD PTR SS:[EBP-18C4],0FC7909
00FDE22D C785 40E7FFFF BA78FC00 MOV DWORD PTR SS:[EBP-18C0],0FC78BA
00FDE237 C785 44E7FFFF BF78FC00 MOV DWORD PTR SS:[EBP-18BC],0FC78BF
00FDE241 C785 48E7FFFF C478FC00 MOV DWORD PTR SS:[EBP-18B8],0FC78C4
00FDE24B C785 4CE7FFFF C978FC00 MOV DWORD PTR SS:[EBP-18B4],0FC78C9
00FDE255 C785 50E7FFFF 5579FC00 MOV DWORD PTR SS:[EBP-18B0],0FC7955
00FDE25F C785 54E7FFFF EF78FC00 MOV DWORD PTR SS:[EBP-18AC],0FC78EF
00FDE269 C785 58E7FFFF 7178FC00 MOV DWORD PTR SS:[EBP-18A8],0FC7871
00FDE273 C785 5CE7FFFF 9778FC00 MOV DWORD PTR SS:[EBP-18A4],0FC7897
00FDE27D C785 60E7FFFF F678FC00 MOV DWORD PTR SS:[EBP-18A0],0FC78F6
00FDE287 C785 64E7FFFF 0979FC00 MOV DWORD PTR SS:[EBP-189C],0FC7909
00FDE291 C785 68E7FFFF 4679FC00 MOV DWORD PTR SS:[EBP-1898],0FC7946
00FDE29B C785 6CE7FFFF 4B79FC00 MOV DWORD PTR SS:[EBP-1894],0FC794B
00FDE2A5 C785 70E7FFFF 5079FC00 MOV DWORD PTR SS:[EBP-1890],0FC7950
00FDE2AF C785 74E7FFFF C978FC00 MOV DWORD PTR SS:[EBP-188C],0FC78C9
00FDE2B9 C785 78E7FFFF 5579FC00 MOV DWORD PTR SS:[EBP-1888],0FC7955
00FDE2C3 C785 7CE7FFFF 7B79FC00 MOV DWORD PTR SS:[EBP-1884],0FC797B
00FDE2CD 8D8D 68ECFFFF LEA ECX,DWORD PTR SS:[EBP-1398]
00FDE2D3 E8 682DFEFF CALL 00FC1040
...
El problema es que incluso yendo paso a paso con el Olly, llega un momento en que se llenan del tirón unas cuantas y me pierdo en el código. Los pocos dumps que he intentado realizar me acaba mostrando el error "This program has been damaged, possibly bla bla bla"; vamos, que el armadillo sigue ahí, lógicamente.
Como info adicional diré que el programa es funcional por 30 días y genera imágenes con una marca de agua; así que supongo que tendrá algún truco más para protegerse.
En fin, espero que alguien me pueda echar una mano; adelanto que soy novato en esto del cracking y me he tirado a un hueso duro de roer nada más empezar, tontaco de mi XD. Si hay alguna cosa más que deba facilitar para que puedan ayudarme, estaré atento.
Muchas gracias de antemano.
Bueno, Armadillo no es mi especialidad, pero conozco alguien que lo des-ARMA (XD): Apuromafo.
Espera a ver si el ve este mensaje o bien, intenta enviandole un PM.
Aunque, debo advertirte que ha dicho que está retirado...
Saludos!
APURODILLO podría ayudarte (apuromafo), 100% concuerdo. Saludos.
Gracias por responder, gente.
A ver si me puede echar un cable.
Saludos.
Hola, un saludo, que no te aparezca la version a ya es algo extraño, puedo orientarte,pero es dificil que vuelva a depurar algo por acá
necesitaré algunos datos extras como tu sistema operativo
Respecto a el salto mágico , pasa que armadillo es un poco trickiñuelo, existen a lo menos 3 formas de reparar la iat
1) sin salto mágico, reparar uno a uno, esto es por experiencia bien recomendable, latoso pero util igual
2) cambiar cierta zona de un push 100 a retn (método inglés)
3) encontrar el salto mágico y luego haceer con script el orden de la tabla
(método de ricardo, en versiones variadas)
pero siempre hay cosas que nunca se hablan
Tendrá code splicies?
tendrá realmente nanomites
tendrá environmentvariables?
entre más alta la versión de armadillo más cosas te puedes encontrar
Veo que ya encontraste el oep, eso es un gran paso a favor.
Bueno
Existen varias herramientas para amadillo, de lo cual lo que más usé fue script de fungus, fue ujn proyecto interesante implementar que detectara el overlay y otros detalles que ayudaran a los Secured section esto utiliza script
la forma más rapida es que intentes usar armaggedon(cuando este obviamente sea una version soportada)
en http://www.ricardonarvaja.info/WEB/buscador.php
puedes encontrar material de "Armadillo"
en no mucho tiempo estuve inclusive keygeneando armadillos pero es recomendable en super-computadoras y versiones menores a cierto número...
aver comenzemos con lo más básico Ejecuta este script desde el oep
/*
Get Armadillo Version 3.xx / some 4.xx / 5.xx / 6.xx / 7.xx
*/
var aver
var temp
var scall
var outbuf
var membase
var len
var Armadillo_Version
bphwc // Clear any hardware breakpoints
bpmc // Clear any memory breakpoint
bc // Clear any saved breakpoints
lc // Clear the log window
gmi eip, MODULEBASE
mov ceip2, $RESULT
mov tmp1, ceip2
gmi eip, MODULESIZE
mov tmp2, $RESULT
add tmp1, tmp2
mov ceip1, tmp1
gpa "VirtualProtect", "kernel32.dll"
mov vpt, $RESULT
find vpt, #C21000#
mov vpt, $RESULT
gpa "OpenMutexA", "kernel32.dll"
mov oma, $RESULT
find oma, #C20C00# // find "retn 0C"
mov oma, $RESULT
gpa "IsDebuggerPresent", "kernel32.dll"
mov idp, $RESULT
gpa "OutputDebugStringA", "kernel32.dll"
mov odsa, $RESULT
gpa "OutputDebugStringW", "kernel32.dll"
mov odsw, $RESULT
mov [idp], #33C0C3# // assemble "xor eax,eax" "retn"
mov [odsa], #C20400# // assemble "retn 4"
mov [odsw], #C20400# // assemble "retn 4"
log "IsDebuggerPresent patched"
log "OutputDebugString patched"
msgyn "Is target using Debug Blocker/CopyMemII?"
mov idb, $RESULT
cmp idb, 0
je check1
// Bypass Debug Blocker
bp oma
erun
mov eax, 01
erun
mov eax, 01
bc oma
check1:
bp vpt
bp odsa
bp odsw
erun
bc vpt
bc odsa
bc odsw
cmp eip, odsa
je newversion
cmp eip, odsw
je newversion
sti
gmi eip, NAME // check if eip is in unowned section
cmp $RESULT, 0
jne check1
cmp ceip2,eip // check if eip is below PE image
ja oldversion
cmp ceip1,eip // check if eip is above PE image
jb oldversion
jmp check1
newversion:
sto
gmemi eip, MEMORYBASE
mov membase, $RESULT
mov temp, eip
sub temp, 10
find temp, #E8#
mov scall, $RESULT
cmp scall, 0
je error1
mov eip, scall
find membase, #41666649443D3C3E00000000#
mov temp, $RESULT
add temp, 0C
mov aver, temp
alloc 1000
mov outbuf, $RESULT
push 100
push outbuf
push aver
sto
find outbuf, #00#
mov len, $RESULT
sub len, outbuf
cmp len, 0
je error2
readstr [outbuf], len
mov Armadillo_Version, $RESULT
log Armadillo_Version
eval "Armadillo Version = {Armadillo_Version} "
msg $RESULT
jmp end
oldversion:
gmemi eip, MEMORYBASE
mov membase, $RESULT
find membase, #61726D56657273696F6E3E#
mov outbuf, $RESULT
add outbuf, 0F
find outbuf, #00#
mov len, $RESULT
sub len, outbuf
cmp len, 0
je error2
readstr [outbuf], len
mov Armadillo_Version, $RESULT
log Armadillo_Version
eval "Armadillo Version = {Armadillo_Version} "
msg $RESULT
jmp end
error1:
msg "Can't find decryption routine!"
jmp end
error2:
msg "Sorry Armadillo version is removed, it is somewhere between 4.00 and 4.66"
end:
ret
respecto a amaggedon, si bien existe la 2.0 (privada) hay una estable y pública
Funciona bien en sistemas operativos de xp ^^
http://www.accessroot.com/arteam/site/download.php?view.262
saludos Apuromafo
Mi sistema operativo es Windows XP SP3.
Si lo que leí en su momento lo entendí bien, para que haya nanomites tiene que haber un proceso padre y uno hijo. Yo lo descarté en su momento porque sólo había un proceso, ¿me precipité en mi conclusión?
El armageddon en su momento no me sirvió porque el programa no se detenía después de la ventana de registro ni me ponía otra cosa que el PID del proceso. Nunca he entendido bien como funciona esa herramienta, pero creo que es que con este ejecutable no ha habido manera por tratarse de una versión anterior a la 3.78.
Voy a intentar ejecutar el script y a ver que pasa.
Gracias por tu respuesta, apuromafo.
Acabo de ejecutar el script y la versión que indica es la 3.30d.
Saludos.
Hay una manera de contribuir a la protección de la humanidad, y es no resignarse. Ernesto Sábato (1911); escritor argentino
enviamelo al privado, por ultimo veo que opciones tiene ;)
saludos
es un 3.3d , el oep no es el que tienes, es 401000 es un borland a primera impresión, no he terminado de encontrar donde hace el import destruction, pero no es como el común, este tiene menos(mas pequeño los lugares), encontré el chk del exe(base para keygenearlo), pero no así el valor Y como para resolver DLP y terminar y testear realmente si asimila las keys en digital river editions...por otro lado hay destruccion de datos del PE (modifico el cambio donde esta el PE, por otro random) por ende lo ideal es sólo luego de modificar aquello , dumpear, reparar con Arminline, luego import fixer 1.2 y luego resolver de forma manual las otras entradas, encontré algunos lugares llamando a los environment variable pero mas no quise checkear, quien más cercano a unpack está es la version 2.0 de armaggedon(privada) pero igual desde script o con buenos bp llegas igual a las partes importantes
Un saludo Apuromafo
:o Buff, gracias por la info, pero me parece que voy a tener que dejarlo apartado entonces. Soy demasiado novato todavía como para pelear con ese monstruo XD. Lo tendré en cuenta cuando lo vuelva a intentar.
Muchas gracias a ti y a tincopasan que también me ha echado un cable por PM.
Saludos.
si por abcmotivos llegaras a registrarlo(por comprar la licencia), te puedo analizar el sym valores y que son base para generar un keygen, pues los varlores base de tu licencia con la tool creada por mr.exodia a partir de tanta práctica en kg en armadillo a partir de "usuario" "HIW" y "serial " es posible extraer la información
saludos Cordiales Apuromafo
pd: siempre es dificil la primera vez que se intenta, pero ya cuando cae como firma la versión, será mas facil en un futuro, si no esta vigente esa version es porque obviamente tiene bugs importantes
pd2: todo armadilllo se puede extraer su dll interna y modificar, luego volver al exe, es otra forma de quitarle las limitaciones... es una alternativa entre desempacar y inlinearlo y a keygenearlo.
No sé si sigue siendo posible comprar el programa, la última noticia que dieron los autores es que iban a facilitar una clave para usarlo de forma gratuita, pero de eso hace años y no han vuelto a dar señales de vida.
De los programas que he intentado hackear de momento sólo uno ha caído (no tenía ningún tipo de protección) pero los otros dos me han dejado KO. Voy a tener que ponerme con crackme y esas cosas antes de continuar.
La dll sí he conseguido extraerla, a ver si le puedo dedicar tiempo y ganas XD.
Gracias de nuevo, apuromafo.
el exe esta unpacked, y las protecciones vencidas, el tema es este:
tiempo como para hablar de algun tute o bien derivar a algun amigo para que lo vea ^^
saludos Apuromafo
pd:si es crackeable y es posible desempacarlo
Aunque ya te he respondido por PM, te vuelvo a dar las gracias por aquí, apuromafo.
Saludos.
ok, pero igual hay varias cosas a comentar que debes hacer por exploracion
como quitar botones(editando un archivo al lado, nisiquiera modificando el exe)
como pedi ayuda a mi amigo, no puedo llegar y tampoco exigir que el mérito es mio, simplemente te oriento como siempre que sí es posible desempacar y crackear o vencer una o cada una de las protecciones que tiene
puedes quitar botones
marca de agua
editar el registrado a a gusto entre otros
como son programas comerciales no es la idea llegar y compartir, son temas que uno trata solo con quienes está interesado del tema
tenias dudas de la iat, entonces ensaya un poco más, la dirección estan distantes, ese es el principal motivo por el cual debes ir conociendo los traces y otros
respecto de el PE header hay destrucción, pero no es la única forma de reparar puedes dumpear sin que use el PE header del minuto, sino que use el del comienzo...y asi suma y sigue, son cosas del cada dia...
Saludos Apuromafo
pd:recuerda que estoy retirado, y que no dispongo de mucho tiempo para casi nada, con suerte reviso los foros e intento orientar, pero en medida que más aprendas de temas de armadillo, más lograrás, mi amigo logró estos temas paso a paso, tu también puedes
espero en un futuro tu tutorial, pues como te comenté , tu eres el interesado (yo bien puedo tenerlo registrado, funcional y todo), pero no estoy interesado en hacer cracks simplemente porque tenía armadillo... ^^ asi que creeme es posible, y en medida que crezcas y practiques lograrás muchas cosas...
Gracias por toda la ayuda prestada.
Intentaré desempacar el ejecutable de nuevo con las indicaciones que me habéis dado, pero es que soy muy novato todavía XD.
Con tu ejecutable desempacado sí que he conseguido quitarle la marca de agua y el mensaje molesto que tiene al salvar sin dedicarle mucho rato, pero el armadillo puñetero, que si la destrucción del PE Header... son cosas que no domino.
En fin, practicar, practicar, practicar.
Lo del tutorial lo malentendí en los PMs, lo haré si consigo desempacar el programa.
Saludos.
que bien, por otro lado, habrá que saber esperar, nadie hace cosas avanzadas en las primeras semanas, pero me alegro que te fue bien ^^
saludos cordiales
Apuromafo
/edit 02/12/15
hoy tengo algo de tiempo,te dejo mi escrito
http://ricardo.crver.net/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1501-1600/1578-Armadillo%203.3d%20UNjpeg%20Software%20%2001-12-15.docx