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.
como poder yo creo que si se debe poder. pides ayuda pero no preguntas nada
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.
uffffff!!! gran ayuda, sí señor, en fin habrá que migrar a otros templos de la iformación.
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...
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.
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
Cita de: tena en 30 Octubre 2007, 23:55 PM
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
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.
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
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.
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
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
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