elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 18
1  Programación / Ingeniería Inversa / Re: aadp4olly - Nuevo plugin anti-antidbg para Olly en: 17 Noviembre 2010, 20:15
muchas gracias +NCR, por compartir tu trabajo.
2  Programación / Ingeniería Inversa / Re: Tute: Unpackme (Guan) por AbsshA en: 11 Noviembre 2010, 16:52
Gracias por el aporte.

y gracias a AbsshA, que está que se sale....
3  Programación / Ingeniería Inversa / Re: problemas mochila hardlock en: 8 Noviembre 2010, 11:36
No hay de que, era medianamente facil.
Me alegro de que ya lo tengas controlado, y que no tengas que cargar con la mochila.

Para finalizar me gustaria saber que modificastes para el resultado definitivo.

4  Programación / Ingeniería Inversa / Re: ayuda para poder hacerlo correr en: 6 Noviembre 2010, 07:23
Hola Masterx2010, veo que ya sabes como iniciar el programa con los argumentos que el mismo programa espera recibir, ¡verdad que es muy facil!, por eso el amigo MCKSys te recomendaba la lectura de los manuales de ollydbg desde cero, pues como no nos empapemos del manejo del olly no podemos aprovechar todas las ventajas que este nos ofrece, y lo cual es imprescindible para poder ir avanzando algo.

Y gracias por la estima que me tienes, pero que mas quisiera yo tener el nivel de los maestros que estan diez pueblos por encima mia, solo soy un currante del metodo ensayo y error, vease la http://es.wikipedia.org/wiki/Ensayo_y_error, con lo cual con paciencia, observación y mucha lectura todo ó casi todo se consigue  ;D

Te envio el archivo que yo utilizo, por si no fuese el mismo que tu utilizas.

Cualquier duda por aqui nos tienes.

p.d.- con el argumento no se te olvide poner el simbolo de guión delante del texto,
es decir exactamente "-agent" (sin las comillas).


5  Programación / Ingeniería Inversa / Re: ayuda para poder hacerlo correr en: 4 Noviembre 2010, 13:59
Con el primer archivo que dices "descomprimido" el punto de entrada es distinto al del original y el programa no hace nada y se cierra incluso con los argumentos que deberia encontrar al ejecutarse.

Pero con el archivo original y poniendole el argumento indicado anteriormente, si sale el splash del programa y luego al no encontrar la proteccion lanza a otro ejecutable "HDxxx" y se autocierra el ejecutable principal, lo que tienes que hacer es encontrar donde lanza al programa Auxiliar con el mensaje de error de protección, y seguramente antes de dicho proceso encontraras saltos que lo evitan a la vez de evitar cierre del proceso, (para encontrar el proceso de cirre busca en las string references el nombre del archivo HDxxx.xxx que es facil de encontrarlo, y mirando los saltos anteriores e incluso las call que llaman al inicio de dicho proceso, se debería poder evitarlo.

 
6  Programación / Ingeniería Inversa / Re: ayuda para poder hacerlo correr en: 4 Noviembre 2010, 09:47
con el primer paquete puesto, al ejecutar una de las herramientas independientes me daba el mensaje de que faltaba la dll cc3280mt, por lo que entendi que el programa no estaba totalment completo, y para andar dando palos de ciegos es mejor siempre instalar la aplicación desde el principio pues sino el resultado nunca va a ser el esperado. Total solucionado instalando la aplicacion completa.

Despues no entiendo porque as descomprimido ó dumpeado el ejecutable xxxxxxxServerx.exe, si ningun analizador de packer detecta alguno, y además el olly tampoco te advierte de nada raro ¿?.

Si solo quieres hacerlo correr, tienes que ejecutarlo añadiendole el parámetro ó argumento  "-agent" ó "-Conf" (sin las comillas)

es decir

xxxxxxxServerx.exe -agent
ó
xxxxxxxServerx.exe -conf

para debuguearlo con el ollydbg.
 -> File -> Open
Nombre: xxxxxxxServerx.exe
Arguments: -agent

luego la protección debe ser por el estilo de los otras herramientas ó plugins que ya dices tener controladas.

7  Programación / Ingeniería Inversa / Re: Quitar Protección en DLL para usarlo en otros Emuladores en: 3 Noviembre 2010, 18:45
en vez de nopear, cambia el MOV DWORD PTR DS:[100C39A4],xxx, para que se mueva a dicha dirección el valor 1, ya que las comparaciones por 0 son las malas, cuando se compara por 1 debe ser el valor idoneo según se ve en otras comparaciones de las expuestas por MCKSys.

como a la dirección 100C39A4 se mueve por ejemplo el valor de EAX en ese momento, intenta previamente poner a EAX con el valor 1, por ejemplo con

XOR EAX,EAX        ; pones EAX a cero
INC EAX                ; incrementas el valor de eax en 1, 0+1= 1
MOV DWORD PTR DS:[100C39A4],EAX

Tambien prueba a sumarle 2, ó incluso a mover el valor FF, pues segun las comparaciones posteriores puede que necesite valores superiores a 0 ó 1 (o valores negativos -FF)

8  Programación / Ingeniería Inversa / Re: ayuda para poder hacerlo correr en: 3 Noviembre 2010, 10:53
Podrias subir el programa de instalación, pues faltan librerias.
9  Programación / Ingeniería Inversa / Re: problemas mochila hardlock en: 30 Octubre 2010, 03:10
Hola MCKSys Argentina.

Cambiando un solo bit del USR.EXE, en una de las subrutinas previas al mensaje DEMO, comprobado se soluciona todo,

call    sub_164
or      al, al
jz      loc_23ED

si conseguimos que AL salga con el valor 1 (no problem) ;D

(es aconsejable hacerlo dentro de la subrutina, pues la misma es llamada desde 2 lugares distintos, y con el código de ejecución posterior muy parecidos).

Y no le puedo dar mas pistas a trepana :), que ya le puse que fuera probando y subiendo por el código en la zona caliente, para que practique y encuentre la mejor de las posibles opciones.

p.d. para evitar otros errores al guardar o leer archivos con los que trabaja la aplicación, deben de existir las subcarpetas
ABC\
CAR\
DXF\
EXE\
GRI\
HELP\    
ISO\
LIN\
PCX\
TXT\
dentro de C:\NASCAD\




10  Programación / Ingeniería Inversa / Re: problemas mochila hardlock en: 30 Octubre 2010, 01:59
Hola karmany,

Celebro te guste el trabajo.   :D

Como caso practico, me ha parecido interesante realizarlo a fin de animar a los nuevos foreros, para que vean que con solo aprender básicamente a utilizar las herramientas adecuadas, y una nociones tambien elementales y básicas sobre comparaciones y saltos condicionales, las cosas pueden ser más facil de lo que parecen.
11  Programación / Ingeniería Inversa / Re: problemas mochila hardlock en: 29 Octubre 2010, 00:44
Bueno, pues parece que es "facil" teniendo en cuenta que bajo MSDOS los sistemas de protección no eran tan sofisticados como lo pueden ser ahora, y en este caso creo que evitando ó forzando un simple salto se puede evitar pasar por el proceso que muestra el mensaje de modo DEMO, lo que creo es suficente para no necesitar la mochila, ya que tal como comentas una vez verificada la presencia de la mochila, ya la puedes quitar y el programa no vuelve a pedirla.

Con una primera observación, nos fijamos en lo siguiente:

El programa se inicia con el NC.COM, el cual lista todos los modulos ejecutables que encuentra en la carpeta EXE, y todos los ejecutables encontrados en dicha carpeta (aunque no tengan nada que ver con las herramientas en si de esta aplicación), se incluyen en las opciones del menu principal que es el modulo USR.EXE, (de no encontrar al usr.exe el programa inicial se queda parado buscando a este otro insistentemente, porque es el modulo que controla el resto de la aplicación, y es el que inicia los diversos modulos de los que se compone el programa, segun se seleccionen, y que se dividen en varios ejecutables idependientes (pero que no corren si no son llamados desde el usr.exe).



El USR.EXE es el encargado de mostrar ó no el mensaje de "ATENCION, ¡ Entra en modo DEMO !", lo cual se debe producir como consecuencia de comprobar directamente los datos de la mochila ó bien como resultado de verificar el contenido de algun registro sobreescrito con el resultado del proceso de verificación previa.



Por esto vamos a centrar nuestro primer objetivo en dicho modulo para ver que sucede si evitamos dicho mensaje de modo DEMO.

Herramientas a usar:

* IDA "The Interactive Disassembler".

* Editor Hexadecimal.

--------------------------------------------

Manos a la obra:
Herramienta IDA.

Iniciamos el IDAG.exe, pinchamos en "Nuevo" y seleccionamos el USR.EXE,



aceptamos la propuesta de analisis que nos ofrece IDA por tratarse de un programa de MSDOS



esperamos a que el IDA termine de analizar el programa. Cuando el icono del circulo amarillo existente en la barra de herramientas se pone en verde , ya podemos actuar nosotros.

Lo primero que vamos a buscar es nuestro mensaje de "ATENCION ¡ Entra en modo DEMO !", en la ventana de "string" que abrimos pulsando las teclas mayuscula+F12 y para localizarlo rapidamente vamos a buscarlo con el menu Search (Alt+T),  escribimos el texto DEMO, pulsamos OK, y ya lo tenemos localizado.



Seleccionamos la linea donde se encuentra dicho texto, y hacemos un doble click de ratón sobre ella, para que nos lleve a la ventana del desensamblado donde se encuentra dicho texto, y aqui si pasamos el puntero del ratón por encima del comentario de dicha linea, nos muesta información de la linea de codigo en la que se mueve dicho valor a alguna variable ó registro para su posterior tratamiento, y si pulsamos de nuevo doble click sobre dicho comentario, nos va a llevar a dicho lugar del desensamblado.



Aqui ya tenemos donde se cogen los valores del mensaje, y estudiamos el código de dicho lugar para ver si mas arriba encontramos un salto condicional que evite dicho mensaje, lo cual encontramos un poco mas arriba, e incluso varios saltos despues de varias llamadas a otros procesos.




Aqui ya podemos probar varias posibilidades:
La primera, la mas facil, probar a cambiar el valor de los saltos JNZ (75h) por JZ (74h) ó vicerversa, ó forzar siempre el salto cambiandolos por JMP (EBh), para que nunca pase por el mensaje de versión DEMO, con esto quizas tengamos solucionado el problema y el programa a partir de dicho salto toma los valores correctos como si estuviese con la mochila puesta, si es que no vuelve a comprobarlo.

La segunda, jugar con los procedimientos y subrutinas que se ejecutan antes de las comparaciones y saltos, para que el resultado a la salida de dichas funciónes, siempre sea el bueno para que el salto se produzca ó no, en la forma que nos convenga. En este caso para entrar en la función de comparación, por ejemplo en el mas cercano al mensaje, antes de entrar en la función se mueve al registro "ax" el valor 2 (32h), seguro que este valor en la variable "ax" es parte de la función, por lo que pruebo a mover por ejemplo 0 (30h) a ver que pasa, y luego parece que el resultado en principio es satisfactorio, segun la primera prueba realizada por lo pronto ya no sale el mensa de modo DEMO al iniciar los modulos (cuestión de hacer mas pruebas con distintos valores y registros que intervenga en el resultado final).

Pero subamos hasta el principio de dicho procedimiento para ver si encontramos desde donde se llama a este otro, por si podemos evitar el procedimiento completo, ya que un programa registrado o con su mochila quizás no pase nunca por el procedimiento donde se decide el mensaje de versión demo.

En el IDA tenemos el codigo desensamblado muerto, ¿pero como encontramos el valor hexadecimal correspondiente dentro del archivo del ejecutable?, pues muy facil. Cuando estamos en la ventana de desensamblado seleccionamos encima del codigo de salto, y pulsamos en menu View -> Open subviews -> Hex dump, y con esto nos pasamos al lugar correspondiente de la ventana hexadecimal del dumpeado. Aqui identificamos por ejemplo el salto JNZ (75 en hexadecimal),



tomamos nota o seleccionamos y copiamos (Ctrl+Insert) un trozo de valores hexadecimales junto a dicho valor 75h,



y acto seguido abrimos un editor hexadecimal para hacer una busqueda de dichos valores,



con lo que una vez localizados (nos aseguramos que el trozo de codigo seleccionado no lo volvamos a encontrar en otros lugares del código, para evitar equivocarnos de sitio al parchear)



y ya solo es cambiar por ejemplo el 75 por 74 ó por EB segun nos convenga, guardamos los cambios y a probar el nuevo ejecutable (antes debemos guardar una copia del original, por si el resultado no es satisfactorio y tenemos que seguir probando en otros valores).



Saludos.

Y cualquier duda por aqui seguiremos.
12  Programación / Ingeniería Inversa / Re: problemas mochila hardlock en: 27 Octubre 2010, 14:12
como el programa está descatalogado, subelo el instalable a algun upload como http://www.mediafire.com, ó  http://www.myupload.dk/ (que son gratuitos), y nos pasas el enlace, a ver que se puede hacer, sin compromiso.
13  Programación / Ingeniería Inversa / Re: Ayuda por favor en: 27 Octubre 2010, 01:56
... pero, y si creas un nuevo instalador en el que se incluya el installshield original  y aparte los archivos por ti modificados, para que una vez descomprimido tu instalador (normalmente en la carpeta Temp, primero se ejecute el installshield original, y cuando este termine se instalen los archivos modificados en la dirección que se les programe, con esto lo puedes hacer de forma oculta o incluso con un menu de opciones a elegir.
14  Programación / Ingeniería Inversa / Re: ayuda con un exe en: 24 Octubre 2010, 11:06

cuando controla el dispositvo, donde queda registrado, si es en un archivo, mira si en el desensamblado encuentras el nombre de ese archivo y te sirve de referencia a cuando hace uso de el.

Si el problema es que no quieres que quede registrada la actividad en un archivo donde lo guarda, puede resultar quizas mas facil, hace un archivo bat, que guarde una copia del archivo ó archivos de registro original, ejecutar el programa, y al finalizar ó cerrarlo, el mismo bat, reemplazar el archivo con la copia anterior guardada (por ejemplo).

Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 18
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines