Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: pigmea en 24 Octubre 2007, 16:01 pm



Título: Gestor de libreria al ataque
Publicado por: pigmea en 24 Octubre 2007, 16:01 pm
Hola, soy mas nuevo que la orden de mañana así que os pido ayuda sobre como meterle mano al siguiente programa : ********* * , es un gestor de librerias que en su version demo tiene una limitación de registro de libros establecida en 20, me gustaría saber si se podría hacer aumentar esa cifra o anularla.  gracias

Razón de edición: No publicamos ni fomentamos el crackeo de software comercial.


Título: Re: Gestor de libreria al ataque
Publicado por: byebye en 26 Octubre 2007, 04:31 am
como poder yo creo que si se debe poder. pides ayuda pero no preguntas nada


Título: Re: Gestor de libreria al ataque
Publicado por: pigmea en 26 Octubre 2007, 10:29 am
Lo primero gracias por haberme respondido.
Bueno pues si que lo pregunto, me gustaría saber como empezar con él para eliminar esa limitación, primero si se puede. El programa te deja 20 registros de libros y a partir de ahí de la ventana de registros desaparece el botón de sumar un libro mas a la librería. Lo he desensamblado con w32dasm y con execope y olly pero como ya decía no se por donde puedo empezar y si estoy con las herramientas adecuadas y si son las primeras con las que tengo que empezar (también tengo un editor). Me gustaría hacerlo yo pero no sé los primeros pasos, si alguien me va instruyendo será un reto el hacerlo.
gracias.


Título: Re: Gestor de libreria al ataque
Publicado por: pigmea en 28 Octubre 2007, 22:39 pm
uffffff!!!  gran ayuda, sí señor, en fin habrá que migrar a otros templos de la iformación.


Título: Re: Gestor de libreria al ataque
Publicado por: tena en 29 Octubre 2007, 01:07 am
Con olydbg....
Carga el programa y le das a run (f9),
luego en el programa introduce 19 registros,
te vas al oly y ponele un bp a ShowWindow,
introduci el registro 20, y el oly deberia saltar
para esconder el boton de agregar registro...

Otra forma seria averiguar el ID del boton, por ejemplo con ResHacker
y buscarlo en oly como PUSH ID_BOTON y ver por ahi

Saludos...


Título: Re: Gestor de libreria al ataque
Publicado por: pigmea en 29 Octubre 2007, 11:02 am
 He llegado hasta poner un break point en showwindow, pulsando control+N, seleccionando showwindow y boton derecho en Set BreakPoint On Every Reference, meto el nuevo libro (20) y el olly no salta, ahí me he atascado. Con el resource hacker no he logrado ver el botón que buscamos. Seguramente esto sea facil para el que sabe, pero yo estoy perdido encuanto no sale lo que me indicas tena, de todos modos estoy mejor que ayer porque has dado esperanza , gracias.


Título: Re: Gestor de libreria al ataque
Publicado por: tena en 30 Octubre 2007, 23:55 pm
Lo he bajado y si tiene solucion  :-\
Lo que hice el evento del boton y ahi adentro buscar cuando compara con 14 hexa ( osea 20, que son los registros que te deja ingresar)
Bueno una vez que encontre la comparacion
Cmp eax,14

pues lo busque en todo el code, haciendo clic derecho sobre esa linea y buscar todas las referencias a la constante, te sale un gran listado...

Asi que solo buscas todos los cmp eax,14 y al jnz lo cambias por jmp...

Ahora si te deja agregar mas regsitros, aunque ahi te diga que hay 20, pues no estan topdas las que vas agregando, solo hace una consulta y veras, te va a decir por ejemplo 25 de 20 jejeje

Espero que te sirva
sino ya sabes pregunta aqui que siempre hay gente dispuesta a ayudar

Saludos


Título: Re: Gestor de libreria al ataque
Publicado por: tena en 31 Octubre 2007, 00:04 am
pues no estan topdas las que vas agregando, solo hace una consulta y veras, te va a decir por ejemplo 25 de 20 jejeje

Quise decir que si estan todas

Saludos


Título: Re: Gestor de libreria al ataque
Publicado por: pigmea en 6 Noviembre 2007, 17:15 pm
Hola Tena, te refieres a esas jnz de la segunda y quinta aparición o tiene algo que ver esa JLE  de la primera aparición?

En la primera comparación  me aparece lo siguiente:es un salto si es menor o igual  JLE

004A47BE  |. FF52 14        CALL DWORD PTR DS:[EDX+14]
004A47C1  |. 83F8 14        CMP EAX,14
004A47C4  |. 7E 65          JLE SHORT .004A482B
004A47C6  |. 8B83 EC030000  MOV EAX,DWORD PTR DS:[EBX+3EC]
004A47CC  |. 8B10           MOV EDX,DWORD PTR DS:[EAX]
004A47CE  |. FF92 94000000  CALL DWORD PTR DS:[EDX+94]
004A47D4  |. 33F6           XOR ESI,ESI
004A47D6  |> 8D4D FC        /LEA ECX,DWORD PTR SS:[EBP-4]
004A47D9  |. 8B83 30020000  |MOV EAX,DWORD PTR DS:[EBX+230]
004A47DF  |. 8B80 54010000  |MOV EAX,DWORD PTR DS:[EAX+154]
004A47E5  |. 8BD6           |MOV EDX,ESI
004A47E7  |. 8B38           |MOV EDI,DWORD PTR DS:[EAX]
004A47E9  |. FF57 0C        |CALL DWORD PTR DS:[EDI+C]
004A47EC  |. 8B55 FC        |MOV EDX,DWORD PTR SS:[EBP-4]
004A47EF  |. 8B83 EC030000  |MOV EAX,DWORD PTR DS:[EBX+3EC]
004A47F5  |. 8B80 54010000  |MOV EAX,DWORD PTR DS:[EAX+154]
004A47FB  |. 8B08           |MOV ECX,DWORD PTR DS:[EAX]
004A47FD  |. FF51 34        |CALL DWORD PTR DS:[ECX+34]
004A4800  |. 46             |INC ESI
004A4801  |. 83FE 14        |CMP ESI,14
004A4804  |.^7C D0          \JL SHORT .004A47D6


En la segunda comparación aparece un salto si es menor  JL

004A5C23   . FF52 14        CALL DWORD PTR DS:[EDX+14]
004A5C26   . 83F8 14        CMP EAX,14
004A5C29   . 7C 0F          JL SHORT .004A5C3A
004A5C2B   . 33D2           XOR EDX,EDX
004A5C2D   . 8B83 B8020000  MOV EAX,DWORD PTR DS:[EBX+2B8]
004A5C33   . E8 6CB5F7FF    CALL .004211A4
004A5C38   . EB 0D          JMP SHORT .004A5C47
004A5C3A   > B2 01          MOV DL,1
004A5C3C   . 8B83 B8020000  MOV EAX,DWORD PTR DS:[EBX+2B8]
004A5C42   . E8 5DB5F7FF    CALL .004211A4
004A5C47   > 8B83 B8020000  MOV EAX,DWORD PTR DS:[EBX+2B8]
004A5C4D   . 8078 44 01     CMP BYTE PTR DS:[EAX+44],1
004A5C51   . 75 05          JNZ SHORT .004A5C58

En la tercera el mismo salto si es menor JL

004A6DBC  |. FF52 14        CALL DWORD PTR DS:[EDX+14]
004A6DBF  |. 83F8 14        CMP EAX,14
004A6DC2  |. 7C 18          JL SHORT .004A6DDC
004A6DC4  |. 33D2           XOR EDX,EDX
004A6DC6  |. 8B83 B0020000  MOV EAX,DWORD PTR DS:[EBX+2B0]
004A6DCC  |. E8 D3A3F7FF    CALL .004211A4
004A6DD1  |. 8BD7           MOV EDX,EDI
004A6DD3  |. 8BC3           MOV EAX,EBX
004A6DD5  |. E8 F2210000    CALL .004A8FCC
004A6DDA  |. EB 18          JMP SHORT .004A6DF4

En la cuarta el mismo salto si es menor JL


004A7E07  |. FF52 14        CALL DWORD PTR DS:[EDX+14]
004A7E0A  |. 83F8 14        CMP EAX,14
004A7E0D  |. 7C 18          JL SHORT .004A7E27
004A7E0F  |. 33D2           XOR EDX,EDX
004A7E11  |. 8B83 B0020000  MOV EAX,DWORD PTR DS:[EBX+2B0]
004A7E17  |. E8 8893F7FF    CALL .004211A4
004A7E1C  |. 8BD7           MOV EDX,EDI
004A7E1E  |. 8BC3           MOV EAX,EBX
004A7E20  |. E8 A7110000    CALL .004A8FCC
004A7E25  |. EB 18          JMP SHORT .004A7E3F
004A7E27  |> B2 01          MOV DL,1
 
Y en la quinta el mismo salto  si es menor  JL

004A93A7  |. FF52 14        CALL DWORD PTR DS:[EDX+14]
004A93AA  |. 83F8 14        CMP EAX,14
004A93AD  |. 7C 0F          JL SHORT .004A93BE
004A93AF  |. 33D2           XOR EDX,EDX
004A93B1  |. 8B83 B8020000  MOV EAX,DWORD PTR DS:[EBX+2B8]
004A93B7  |. E8 E87DF7FF    CALL .004211A4
004A93BC  |. EB 0D          JMP SHORT .004A93CB
004A93BE  |> B2 01          MOV DL,1
004A93C0  |. 8B83 B8020000  MOV EAX,DWORD PTR DS:[EBX+2B8]
004A93C6  |. E8 D97DF7FF    CALL .004211A4
004A93CB  |> B2 01          MOV DL,1
004A93CD  |. 8B83 24020000  MOV EAX,DWORD PTR DS:[EBX+224]
004A93D3  |. E8 CC7DF7FF    CALL .004211A4
004A93D8  |. B2 01          MOV DL,1
004A93DA  |. 8B83 70030000  MOV EAX,DWORD PTR DS:[EBX+370]
004A93E0  |. E8 2BF6F7FF    CALL .00428A10
004A93E5  |. 8D83 F2030000  LEA EAX,DWORD PTR DS:[EBX+3F2]
004A93EB  |. BA B4944A00    MOV EDX,.004A94B4                ;  ASCII 04,"ALTA"
004A93F0  |. 33C9           XOR ECX,ECX
004A93F2  |. 8A08           MOV CL,BYTE PTR DS:[EAX]
004A93F4  |. 41             INC ECX
004A93F5  |. E8 5E97F5FF    CALL .00402B58
004A93FA  |. 75 17      JNZ SHORT .004A9413


Bueno disculpa mi torpeza que viendo tantas filas se me nubla la vista, me dirás si me acerco o por donde tiro. Gracias.


Título: Re: Gestor de libreria al ataque
Publicado por: tena en 7 Noviembre 2007, 00:07 am
Dije jnz por decir, no me acordaba...
Pero en fin, solo tenes que cambiar el salto que esta por debajo del cmp eax,14
por un jmp, para que salte siempre...

En todas esas que encontraste las cambias...

Saludos
Tena



Título: Re: Gestor de libreria al ataque
Publicado por: pigmea en 7 Noviembre 2007, 10:41 am
Hecho!, he cambiado esos 5 saltos a jmp y efectivamente me deja meter mas libros al registro; dice en la ventana de "busqueda de libros" 32 de 20, pero hay un problema y es que al seleccionar uno de esos libros que metí despues del 20 con doble clik te lleva a la ventana consulta datos para ver los datos metidos y lo que ves es otro libro, concretamente el primero de la lista de 20 que sale en la ventana "consulta datos" y si le das al desplegable de "Titulo" solo ves los 20 primeros libros metidos. Osea que dejar te deja registrar mas de 20 libros pero al consultar los datos solo te deja sobre los 20 primeros. Que jodien.......da, y ahora que hacemos maestro, que el alumno está fuertemente agarrado al volante y no lo quiere soltar.
Saludos Tena y gracias por el tiempo que le echas.


Título: Re: Gestor de libreria al ataque
Publicado por: tena en 7 Noviembre 2007, 20:45 pm
Je no me di cuenta  ;D
Eso es porque limita al combo a cargar 20 registros solamente.
Hagamos una cosa, ya que sabemos que usa la constante 14 y lo
muestra por todo el codigo, pues hagamos como antes, y asi nos
ahorramos tiempo en andar buscando.

Asi que "Search > All constants" y busquemos al 14

004A47C1   CMP EAX,14
004A4801   CMP ESI,14
004A48C5   CALL DWORD PTR DS:[EDX+14]
004A575E   PUSH DWORD PTR SS:[EBP+14]
004A5B4A   MOV DWORD PTR DS:[EBX+554],14 <==Interezante
004A5C23   CALL DWORD PTR DS:[EDX+14]
004A5C26   CMP EAX,14
004A6384   MOV ECX,14
004A67BA   MOV ECX,14
004A6DBC   CALL DWORD PTR DS:[EDX+14]
004A6DBF   CMP EAX,14
004A7CE9   CALL DWORD PTR DS:[EDX+14]
004A7D4E   CALL DWORD PTR DS:[EDX+14]
004A7E07   CALL DWORD PTR DS:[EDX+14]
004A7E0A   CMP EAX,14
004A8A40   CALL DWORD PTR DS:[EDX+14]
004A8B89   CALL DWORD PTR DS:[EDX+14]
004A914D   MOV CL,14
004A93A7   CALL DWORD PTR DS:[EDX+14]
004A93AA   CMP EAX,14
004A9903   MOV CL,14

Bueno ahi estan las que importan, y vemos las comparaciones que ya habiamos arreglado, ademas de los mov CL,14 Y mov ECX,14 que no importan para nada, si quieres lo nopeas, sino no...

El que mas mellama la atencion es el:
004A5B4A   MOV DWORD PTR DS:[EBX+554],14

mueve la constante a un espacio de memoria, asi que lepones un BP en esa linea y le das a run..

El oly salta por el bp, sino salta eleji la opcion consultas....

Bueno nada mas hay que cambiar el 14 por un numero muy grande, yo lo hice a 5000 que en hexa es 1388

004A5B4A      C783 54050000>MOV DWORD PTR DS:[EBX+554],1388

le das a run, te vas aconsultas y veras ahi todos los registros cargados en el combo..  Es mas ahora dice 30 de 30

Saludos
Tena



Título: Re: Gestor de libreria al ataque
Publicado por: pigmea en 8 Noviembre 2007, 15:45 pm
Pues aquí llega el final del viaje, estoy aparcando y me siento satisfecho del trabajo del maestro, en este caso el alumno no ha hecho más que copiar, pero así he aprendido la 1ª lección. Gracias amigo Tena, decirte que tengo que ser algo más bruto que tú porque le puse el tope de registros en 100.000 (186A0), así que tengo que cuidarme bien y hacer larga vida para leerme tantos libros, je. :D


Título: Re: Gestor de libreria al ataque
Publicado por: tena en 8 Noviembre 2007, 16:10 pm
Aunque lo de maestro esta de mas  ;D , fue un gusto compartir este viaje contigo

PD: Creo que te quedaste chico con los 100 mil....

Saludos
Tena