Programa: |
PROTECCION: | NAME / SERIAL | ||
Descripcion: | Aplicación para motorear | ||
Dificultad: | Principiante | ||
DOWNLOAD: | www.pilotwarez.com\files\pilocmonitor\PiLocMonitor.zip | ||
Herramientas: | SouthDebugger, PRCedit, PilotDis. POSE Palm emulator | ||
Palm CRACKER: | FECHA: |
W/31/12/2004 |
INTRODUCCION |
como se aprovechan de la gente, pues decidimos
probarlo.
Acercamiento 1 |
AL ATAQUE |
0000040a 3f3c044c
L26 MOVE.W #1100!$44c,-(A7) ; Enter RegCode Lo consigue abajo en: 000004b4 2600 MOVE.L D0,D3 Aquí tenemos una comparación del destino del serial ... En D3, separa el serial introducido y lo guarda, y en D4 tenemos la información que la aplicación considera correcto. Si D4== D3, todo está bien y la aplicación es registrada. En caso contrario, usted ha entrado un serial malo. De hecho, un rastreo usando el serial 1234-abcdefghij-5678 nos sale a la vista que sólo compara los últimos 4 dígitos¿Cómo parchar esto entonces? ,Es sano que usted quizá podría cambiar el BNE L29 a BRA, pero nos deja hacer un parche más bonito. Si nosotros cambiamos al MOVE.L D0, a un MOVE.L D4, D3, la aplicación de hecho comparará el serial generado con sí mismo ... que Usted también puede tener alguna diversión y crear seriales como "love-pwgforever-pwgforever-9528":)Acercamiento 21 yo veo probeco en este sitio. Puede ser regged, y tiene un período de prueba de 5 días con Nag.2 lo pruebo en la POSE. Tomo nota del título de la forma del reg, "Introduzco a RegCode"3 lo abro con Prcedit4 localizo la forma y doy un paso en el código en L265 veo que el programa hace lo siguiente:- Toma el índice del campo donde yo introduje el código- Toma la dirección de los campos- Toma las direcciones de los caracteres introducidos (en A2 y D0)- Checa la longitud de caracteres, deben tener 20 caracteres (sysTrapStrLen, CMPI.W # 20, D0)- Los chequeos en el registro de codigo debe de contener el caracter "-" en el regcode. Sospecho que son "-" porque tienen a ASCII codifique 45 (tantee con alt + 45). ¡ Deben estar en CMPI.B # 45!$¡2d, 4 (A2) 5 y CMPI.B # 45!$2d, 15 (A2) en la posición 16 (los caracteres son numerados desde 0). L29 es obviamente llamado si algo no es correcto.6 pruebo mis hypotesis poniendo a un 4e48h (trap 8) después de esos chequeos y entonces introduzco en la computadora XXXX-XXXXXXXXXX-XXXX como un código. Entonces, L28 debe ser el Check realmente Crucial Routine.7 doy una vista a L28. Hay sólo dos comparaciones, y el segundo atrae mi atención.000004b0 4e4fa0ce sysTrapStrAToI 000004b4 2600 MOVE.L D0,D3 000004b6 b684 CMP.L D4,D3 000004b8 584f ADDQ.W #4,A7 000004ba 662c BNE L29 ¿ Pongo cuidado en esta string (cadena) (tal vez es el que yo introduje) El valor es convertido a un valor decimal, ese valor es almacenado en D0 y entonces es movido en D3. ¿Entonces es comparado con D4 (tal vez el serial correcto) Solamente, si los valores no son lo mismo, entonces la inscripción falla. Así fuerzo el proceso de registro y acaba con noping aquel BNE L29 (4e71h) 8- Bien el programa ahora se registra muy bien con XXXX-XXXXXXXXXX-XXXX. También le podría hacer registrar con cualquier NOPing de código con otras entradas, pero no prefiero hacerlo (Agil parche que probablemente trabajará más largo). Con la ayuda de Prcedit finalmente escribo el xml. Aproximación 3 El visto bueno, he aquí mi forma. Es similar a las otras formas, pero ahora comencemos.Después de tener una apariencia de cortocircuito en la aplicación, advertí el registro en pantalla al entrar un serial. Así es que puse en marcha el prcEdit y cargué nuestro blanco. En el árbol de recursos de prcEdit que eso es fácil encontrar el recurso de la forma del registro (ID: 1100). Hay una referencia para el ID del OK-BUTTON, tal vez tengo la suerte de encontrar allí el chequeo de registro. Después de double click en la referencia podemos ver algunas cosas agradables de código. Algunas líneas de debajo hay una llamada para sysTrapFldGetTextPtr, probablemente nuestro serial que introducimos. Después podemos ver esto: 0000046a DC.W sysTrapStrLen 0000046a 0c400014 CMPI.W #20!$14,D0 Asi que nuestro serial tiene 20 caracteres, esto se pone facil, Algunas líneas más 00000472
0c2a002d0004 CMPI.B #45!$2d,4(A2) Adivinemos un tanto. En ASCII # 45 es un guión "-", tan tal vez el 5 y el carácter 16 tienen que ser uno "-". Las siguientes líneas no están haciendo algunas cosas de cálculo, ninguna cosa interesando. Lo siguiente compara orden está aquí:000004ac
486a0010 PEA 16(A2) 16 (A2) es un puntero para los últimos 4 caracteres del serial, estos caracteres son convertidos a un valor de entero. Esto se parece realmente a un checksum. Ahora coloquemos a un Breakpoint en dirección el CMP-COMMAND, inicie la aplicación e introduzca un serial como "1234-6789012345-7890". Después de entrar el breakpoint,veamos en D4: El valor es 9490. Reemplacemos a nuestros últimos 4 caracteres con este valor y hagamos un intento otra vez: "1234-6789012345-9490" Y sí, eso tiene que trabajar ... Eso es todo, ahora tiene que trabajar el serial.
|
Palm Spanish Tutor: Pagina dedicada a la dibulgacion de informacion en Castellano, sobre Ingenieria Inversa y Programacion en palm. Email "Colabora con tus Proyectos" |