Ayuda con ejecutables

Iniciado por ignorantev1.1, 2 Agosto 2009, 07:08 AM

0 Miembros y 1 Visitante están viendo este tema.

ignorantev1.1

Lo siento si viole alguna regla de poner dos post en tan corto tiempo...
Bueno pues aqui procurando un buen tutorial que me explicara como funciona un EXE, es decir, ultimamente me eh puesto a intentar crackear y hay muchas cosas que quisiera entender como por ejemplo,

*por que unos programas empiezan con PUSH o CALL o MOV, es decir por que no empiezan igual con PUSH EBP,

*como funciona un PACKER, no entiendo mucho de eso, yo crei que el programa contenia el codigo real del programa original como datos, simplemente lo extraia a una parte del disco y lo ejecutaba y lo eliminaba, pero demonios, no es asi...

Bueno son muchas mas pero creo que ya chole, un manual fuera de gran ayuda, gracias!

karmany

"¿por que unos programas empiezan con PUSH o CALL o MOV, es decir por que no empiezan igual con PUSH EBP"?
Eso depende del compilador, ensamblador, packer etc...  me imagino que te refieres al EP (Punto de Entrada) del programa. Tú mismo podrías poner el inicio de un programa en una sección diferente y comenzarlo de otra forma.
En un Visual Basic comenzará en un push, mientras que por ej. en un Borland c++ suele ser un jmp...

¿como funciona un PACKER?
Partimos de un programa empacado, protegido por un Packer cualquiera.
Pues efectivamente el programa está dentro del programa empacado, pero claro depende de los packers: hay packers muy sencillos que extraen el exe original tal cual y le pasan la ejecución. Esto sería muy fácil restaurarlo.

Sin embargo, existen packers más difíciles (armadillo como has comentado en otro post) que aunque extraigas (dumpees) el archivo no te va a funcionar... ¿por qué?
Pues por muchos factores... tienes que pensar como si fueras el programador del packer... ¿qué hace el packer? pues el programa empacado se va descomprimiendo, va cargando las librerías necesarias, va haciendo chequeos antidebugger, modifica el PE header malignamente y lo que hacen la mayoría: destrozan la IAT. ¿Tú qué tienes que hacer? pues tienes que detener al programa en el OEP y principalmente reparar la IAT.

Si no tienes mucha experiencia no te recomiendo un armadillo, porque no vas a entender muchas cosas y lo importante es saber el porqué. Empieza con un UPX por ejemplo que es muy sencillo.

franfis

Bueno todavía son novato en el cracking pero por la cortisisisima experiencia que tengo te recomiendo que sigas el tutorial de Ricardo Narbaja desde el inicio pero no esperes entender todititito de una sola leida dado que eres nuevo pero en el transcurso se te iran despejando toooodas las dudas que tienes al leer el inicio.

Sobre las preguntas : Un ejecutable es un conjunto de instrucciones que tienen que ser leidos por el sistema operativo (por ejemplo windows). estas instrucciones para ser ejecutadas tienen que volcarse a la memoria, todo este codigo tiene una estructura al volcarse en memoria, esta estructura le indica al sistema operativo por donde tiene que empezara a leer el codigo. Dicha estructura tienen un nombre que es el "formato PE(portable ejecutable) " que es el que usa windows, para el DOS(sistema operativo de disco) es el formato MZ pero este formato esta incluido en el PE para facilitar que un ejecutable que corre en windows corra tambien en DOS.

Los ejecutable empaquetados estan "protegidos" contra los crackers, los packers encriptan el codigo original del programa. Primero se tienen que sacar de su envoltura para poder usarse en cambio los demas se usan ya que bienen sin envoltura (sin empaketar).


Las dudas se aclaran solas con leer, leer y leer (Libro "Sistemas Operativos"(andrew Tanembau) por poner un ejemplo)

ignorantev1.1

No se como demonios, pero haciendo un crypter y sobre todo un AntiAntivirus, me di cuenta que, es cierto, el mismo codigo te especifica el punto de entrada, solo era cuestion de tiempo, pero aunque ya conozco eso todavia tengo muchas dudas, pero ahorita no tengo claro como plantearlas, simplemente posteo paraagradecerles su cooperacion, que atoda madre!...

por otraparte "yo no elegi Armadillo", yo hasta el momento no eh crackeado por crackear, si no por necesidad, mira es que el UPX, ya lo demino, y pues esa tecnica es la que le aplique o quize aplicar al armadillo, y tambien lo de la IAT, cheque con un porgrama que se encarga de eso pero no supo hacerlo...


Ahora mi duda es como funciona un packer que se desempaca a memoria?