Autor
|
Tema: Donde empiezo para liberar un programa de la mochila Aladdin Hardlock (Leído 11,743 veces)
|
edwingt
Desconectado
Mensajes: 9
|
Hola a todos, primero quiero felicitar a todos los involucrados en este foro, realmente se mira la cantidad de esfuerzo y trabajo que hay aqui para poner todos estos recurso a nuestra disposición.
Tengo un programa que compre que utiliza una mochila Aladdin Hardlock, pero no quiero tener que poner la mochila cada vez que lo utilizo. Asi que voy iniciar el proceso para liberar el programa de la mochila.
No se x donde empezar con esto, y este es el lugar donde estoy parado:
1. Se un poco de assembler pero hay algunas cosas que tengo que recordar. 2. No tengo nada de xperiencia en ingenieria inversa. 3. Estuve siguiendo unos tutoriales de mochilas hasp, pero me quedo en el aire con conceptos como encontrar el OEP (no se como encontrarlo), y arreglar la IAT que no se que es.
Por donde empiezo?, espero su ayuda y gracias.
|
|
|
En línea
|
|
|
|
karmany
|
Bueno si tienes la mochila, puedes intentar desempacarlo. Si no sabes ingeniería inversa te explico de forma muy generalizada: -OEP: Original Punto de Entrada. Cuando ejecutas un programa que no haya sido empacado, protegido, comprimido etc... sino solamente compilado y escrito en un determinado lenguaje de programación, la primera instrucción que se ejecuta es el OEP. CUando un programa está comprimido, cifrado etc... como es tu caso, su primera instrucción es el EP (no OEP) primero tiene que descomprimirse y cuando se haya descomprimido... ejecutará el OEP. -Reparar la IAT significa reconstruir la tabla de importaciones(Import Address Table), esto es, saber TODAS las funciones que son utilizadas por tu programa e "introducirlas" en tu ejecutable para que cuando llame a una función (ej. MessageBox) sepa en qué dirección está. La idea es que introduzcas la mochila en tu ordenador, abras el programa con un debugger (OllyDbg...), lo ejecutes, encuentres el OEP y pares el debugger en ese momento. Después te quedará reconstruir la IAT. Te dejo un tute mío, a ver si te sirve de orientación: Hasp HL por karmany
|
|
|
En línea
|
|
|
|
edwingt
Desconectado
Mensajes: 9
|
Gracias Karmani. Entonces lo primero que tengo que hacer es encontrar el OEP. Segun el RDG Packer Detector el programa fue compilado en Borland Delphi 6 o 7, estuve buscando en el foro y google cómo encontrar el OEP pero no encuentro nada. Si alguien sabe donde puedo encontrar esta información o darme un punto de inicio, lo agradecería un montón. De momento seguiré buscando e iré publicando aquí cualquier avance que pueda ser de utilidad para otros posteriormente.
|
|
|
En línea
|
|
|
|
edwingt
Desconectado
Mensajes: 9
|
Para darle seguimiento a lo que he estado haciendo en estos dias con este hasp. Utilice el link que dejo karmani OEP Finder http://www.tuts4you.com/download.php?view.396para que me indicara el OEP Uso el OEP Finder para encontrar un OEP, Luego intento utilizar una herRamienta llamada Import Rec para encontrar la IAT, sin embargo cuando ingreso la primera direccion que me muestra el OEP Finder, el Import Rec me dice que no puede encontrar la IAT con ese OEP. Si utilizo el siguiente OEP que me da el OEP Finder resulta que el Import Recencuentra la IAT, pero me muestra 9 entradas invalidas y nada valido. Por otro lado tambien intenté dejar la dirección que me muestra Import Rec al abrirlo. Lo que sucede cuando hago esto es que, si encuentra una IAT, y al ver entradas me muestra llamadas a varias librerias pero no me muestra ninguna entrada válida. En resumen lo que me pasa es lo siguiente: 1. Usando el OEP de OEP Finder -> Import Rec no encuentra la IAT 2. Usando el segundo y demas OEP del OEP Finder -> Import Rec encuentra IAT, pero solo entradas invalidas. 3. Usando el OEP que muestra Import rec al inicio -> Encuentra la IAT, pero solo salen entradas válidas. Si alguien tiene alguna sugerencia lo agradeceria en cantidad.
|
|
|
En línea
|
|
|
|
karmany
|
Una tontería pero en el OEP en el programa Import RE tienes que poner la RVA (Relative Virtual Address) no la VA. Supongo que lo has hecho así, pero por si acaso. Si no sabes cambiar la VA a RVA te dejo mi programa que lo hace automáticamente: http://foro.elhacker.net/ingenieria_inversa/file_location_calculator_v032_por_karmany-t262979.0.htmlOtra cosa... para que OEP finder encuentre el OEP correcto tienes que insertar el hasp, si no fallará. Si sabes llegar al OEP correcto y reparas la IAT (lee mi tute que te dejé, te ayudará) ya casi lo tienes... ImportRE suele fallar bastante, pero eso no es problema. Lo normal que solemos hacer es llegar al OEP y buscar en OllyDbg una API y dumpear ese valor en la ventana de dump de OllyDbg. Ahí pones la vista de Address(long->address) y verificas las API y ves el comienzo de la IAT y el final... y así ayudas a Import RE y puedes ver si está todo correcto... no sé si me vas a entender... ImportRE es muy buen programa...
|
|
|
En línea
|
|
|
|
edwingt
Desconectado
Mensajes: 9
|
Creo que estoy perdido de nuevo, el programa con la mochila no se comporta como en las guias que tengo, al menos eso es lo que me parece, talvez la mochila es muy nueva y se comporta diferente.
Lo que veo raro es lo siguiente:
Encontrar OEP, ok creo: 1. He encontrado el OEP, con la técnica de break on access de Olly en la sección code, y lo he confirmado con el OEP Finder y la dumpeo.
Encontrar la IAT Lo intento de 2 maneras.
2A. Econtrar la IAT con olly Luego de esto intento encontrar el inicio de la IAT con Olly, poniendo un break en el siguiente call (CALL PCX1000.00408088) despues del OEP, ese call me lleva a la direccion (00408088 /$ 50 PUSH EAX; PCX1000.008B0EB8) le doy "follow in dump"-> selection y en la ventana de dump doy long->Address y me aparece (00408088 E8006A50) addres, value, pero comment vacío. Hasta aqui no se cómo saber en que sección estoy. Aunque no se en que sección estoy le doy Ctrl+R para buscar las referencias y me aparece esto: References in PCX1000:CODE to 00408088..00408088, item 0 Address=008B1C27 Disassembly=CALL PCX1000.00408088
Solo una llamada, que fue con la que iniciamos. De aqui no se que hacer para encontrar la IAT.
2B. Encontrar la IAT con Imp Rec Abro mi programa Ahora abro ImpRec, y busco el proceso, me sale automaticamente mi OEP (con el RVA). -> IAT Auto Search->Get Imports -> Show Invalid y no aparece ninguna entrada inválida, solo aparecen 573 entradas que son válidas.
Estaré haciendo algo mal? estoy atorado, cualquier guia a partir de este punto será muy util. Gracias por la colaboración
|
|
|
En línea
|
|
|
|
edwingt
Desconectado
Mensajes: 9
|
He estado revisando algunas cosas en el programa que quiero liberar de la mochila. Tengo la hipotesis de que a pesar de que el programa usa la mochila, este no está cifrado. Es esto posible? El RDG packer detector me saca esto. Que piensan?
|
|
|
En línea
|
|
|
|
karmany
|
1º) La IAT con OllyDBG no lo estás haciendo bien o no entiendo cómo lo estás haciendo porque: 00408088 push eax; PCX1000.008B0EB8 no es un salto a ninguna función, salta al mismo exe, entonces no puede ser...
2º) Con IRec: "no aparece ninguna entrada inválida, solo aparecen 573 entradas que son válidas"... -De eso se trata... ¿por qué no pruebas cuando tengas todas válidas a pulsar en "Fix Dump" y seleccionas tu dumpeado?
|
|
|
En línea
|
|
|
|
edwingt
Desconectado
Mensajes: 9
|
1º) La IAT con OllyDBG no lo estás haciendo bien o no entiendo cómo lo estás haciendo porque: 00408088 push eax; PCX1000.008B0EB8 no es un salto a ninguna función, salta al mismo exe, entonces no puede ser... Entonces la conclución de esto es que si el call me lleva al mismo exe PCX1000.XXX no estoy en una libreria referenciada.
2º) Con IRec: "no aparece ninguna entrada inválida, solo aparecen 573 entradas que son válidas"... -De eso se trata... ¿por qué no pruebas cuando tengas todas válidas a pulsar en "Fix Dump" y seleccionas tu dumpeado? Esto intente hacerlo pero al darle fix dump y ejecutar el archivo, no se ejecuta. Solo sale un mensaje de error.
|
|
|
En línea
|
|
|
|
edwingt
Desconectado
Mensajes: 9
|
Bueno, Probe de nuevo el proceso de hacer el fix dump en el imprec. Y efectivamente si me genera bien el exe (talvez cuando lo hice anteriormente me equivoque en algo). Lo que me pasa ahora es que si ejecuto ese exe y quito la llave siempre aparece que hace falta la mochila.
Seguire probando y reportando mis avencas. Gracias Karmany, que ha sido el unico en ayudarme en este tema.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Como se emulan las llaves lpt (hardlock aladdin)?
Hacking
|
bubagol
|
4
|
12,116
|
18 Diciembre 2010, 22:08 pm
por r00ty
|
|
|
Hardlock Aladdin Sentinel y Terminal Server TS
Ingeniería Inversa
|
INFORMATICA.LERMITA
|
4
|
7,364
|
24 Agosto 2011, 20:11 pm
por INFORMATICA.LERMITA
|
|
|
Problema de mochila hardlock
Ingeniería Inversa
|
diantred
|
0
|
2,367
|
2 Octubre 2012, 06:41 am
por diantred
|
|
|
Hardlock Aladdin
Ingeniería Inversa
|
gutierrez100
|
1
|
3,230
|
28 Noviembre 2012, 22:10 pm
por MCKSys Argentina
|
|
|
Problema Hardlock Aladdin en Windows7
Ingeniería Inversa
|
jordiamat
|
3
|
5,486
|
4 Octubre 2018, 20:01 pm
por jordiamat
|
|