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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: [1]
1  Programación / Ingeniería Inversa / Re: Modificar el .EXE en: 21 Febrero 2011, 23:55 pm
Nada compañero, no hay manera de localizar esa comparación a la que te refieres.  De todas formas sospecho (puedo estar equivocado) que el programa no está completamente activado de la forma que has hecho, ya que es un poco "peculiar". Me explico, los serial que introduces el servidor no te indica si es correcto o no, simplemente te dice activacion correcta y reinicia el programa. Si está eliminada la NAG screen del principio no tienes forma de comprobar que está correctamente activado hasta que llegue al límite de 200 transacciones que te volverá a salir la dichosa NAG. Si está correctamente activado la NAG del principio no debería salir aún sin estar crackeada.

El tute de EreKoSe que indico apuromafo explica un poco todo esto.

Salu2 y gracias de nuevo
2  Programación / Ingeniería Inversa / Re: Modificar el .EXE en: 21 Febrero 2011, 13:45 pm
@43H4FH44H45H4CH49H56H45H:

Gracias por la ayuda, pero no consigo localizar la comparación a la que haces referencia.

En este punto (004c6167) es donde se conecta al servidor con todos los parámetros y hace la consulta. ¿Está muy alejada de aquí la función esa?



Cómo deduces que esa es la comparación clave y no otra de las muchas que hay?
¿Hay alguna pista o indicador?¿Tiene algún significado ese "1" y ":"?

¿El traceo lo haces con F8, CTRL-F9, o tienes que entrar en algunas de las llamadas siguientes con F7 (que hay un montón)?

Saludos y muchas gracias de nuevo.
3  Programación / Ingeniería Inversa / Re: Modificar el .EXE en: 20 Febrero 2011, 12:45 pm
@43H4FH44H45H4CH49H56H45H:

¿Cómo localizas la función que valida la respuesta? Supongo que lo harás con el Olly, ¿no? Si es así qué pasos das desde que pasa el string en 004c167?


¿Por cierto, podría subir el tute completo a CLS?


Saludos y gracias
4  Programación / Ingeniería Inversa / Re: Ayuda (mis primeros pasos con ollydb para intentar registrar un programa) en: 25 Septiembre 2010, 12:55 pm
Dentro de esta rutina después de cargar en EDX nuestro serial (mediante el CALL 8562E4) hace una llamada a otra rutina más sencilla que también hace una serie de operaciones similares (en las que está involucrado nuestro serial), es ésta:

Código
  1. 005DBCDC  /$  55            PUSH EBP                                 ; PersonalFinances.005DBCDC(guessed Arg1,Arg2)
  2. 005DBCDD  |.  8BEC          MOV EBP,ESP
  3. 005DBCDF  |.  53            PUSH EBX
  4. 005DBCE0  |.  56            PUSH ESI
  5. 005DBCE1  |.  8B75 0C       MOV ESI,DWORD PTR SS:[ARG.2]
  6. 005DBCE4  |.  8B55 08       MOV EDX,DWORD PTR SS:[ARG.1]
  7. 005DBCE7  |.  8B4A 28       MOV ECX,DWORD PTR DS:[EDX+28]
  8. 005DBCEA  |.  8B41 04       MOV EAX,DWORD PTR DS:[ECX+4]
  9. 005DBCED  |.  EB 1C         JMP SHORT 005DBD0B
  10. 005DBCEF  |>  8BD0          /MOV EDX,EAX
  11. 005DBCF1  |.  66:8B1E       |MOV BX,WORD PTR DS:[ESI]
  12. 005DBCF4  |.  66:3B5A 0C    |CMP BX,WORD PTR DS:[EDX+0C]
  13. 005DBCF8  |.  0F97C2        |SETA DL
  14. 005DBCFB  |.  83E2 01       |AND EDX,00000001
  15. 005DBCFE  |.  84D2          |TEST DL,DL
  16. 005DBD00  |.  74 05         |JE SHORT 005DBD07
  17. 005DBD02  |.  8B40 08       |MOV EAX,DWORD PTR DS:[EAX+8]
  18. 005DBD05  |.  EB 04         |JMP SHORT 005DBD0B
  19. 005DBD07  |>  8BC8          |MOV ECX,EAX
  20. 005DBD09  |.  8B00          |MOV EAX,DWORD PTR DS:[EAX]
  21. 005DBD0B  |>  8078 0F 00    |CMP BYTE PTR DS:[EAX+0F],0
  22. 005DBD0F  |.^ 74 DE         \JE SHORT 005DBCEF
  23. 005DBD11  |.  8BC1          MOV EAX,ECX
  24. 005DBD13  |.  5E            POP ESI
  25. 005DBD14  |.  5B            POP EBX
  26. 005DBD15  |.  5D            POP EBP
  27. 005DBD16  \.  C3            RETN

¿Alguién le ve algún sentido?

En la rutina anterior después de hacer varias operaciones hace una comparación (005DB0CD) y hay varios casos posibles, ¿que situaciones representan?

Saludos y gracias de nuevo
5  Programación / Ingeniería Inversa / Re: Ayuda (mis primeros pasos con ollydb para intentar registrar un programa) en: 24 Septiembre 2010, 21:04 pm
Buenas de nuevo, he estado investigando un poco más el tema y esto es lo que he encontrado:

1) He encontrado una serie de cadenas de texto un poco curiosas (puede que no sean nada):

ASCII "CFxEbcO3L97KueEyods0xOO4j9x9knUtIc5SQl7NvroJxs8PD9tOhaP48FtKrNDHGAkIxnlY3R1OGGtAT0mA36dcOx1WnJMKh58KIbw2liNWLAyGOBtKzEPYq7OuJVjnK7qs1HnFCyLeCjT97HW9N24hXMBaMjkMgW3wt5DPX75mJySLxUYapIugXsw7l5HraJ0aAhGFZh5KnLr1ZXH7jNW4aai2ecGdvecvd3Im2n1gM"...

UNICODE "WERTYUPASDFGHKZXCVBNM23456789weryupasdfghkzxcvbnm"
UNICODE "GIVEAWAYOFTHEDAYXXXXPFH7K"
UNICODE "hmXsC8mWHsCc6eggh9h5PFH7K"
ASCII "-PFH8K"
ASCII "-PFH9K"
ASCII "c9adbf8d-9980-450c-8f92-e8320eb609f4"

2) los mensajes del fichero de texto se cargan en memoria a partir de la dirección 16e0000 y cuando se va a mostrar uno (estoy no estoy seguro de que sea siempre asi) se copia a la dirección 17c1dfc (por lo menos eso ocurre con el mensaje "parece una licencia de Personal Finances Home")

3) Lo de buscar la variable de conteo lo veo un poco complicado MCKSys. Además el número de transacciones es variable, a veces es a 273, a veces a 297... es un poco raro)

4) Buscando las APIs CreateFileW y CreateFileA (gracias MCKSys), colocando BP, teniendo como referencia la clave de prueba que introduzco (56814) y traceando un poco he localizado dos rutinas que creo que comprueban mi número. Una desde 5daf6f a 5db459 y otra desde 581b1e a 581cc3. La primera la hace si ya hemos introducido un serial previamente y se ha generado el fichero key.dat (supongo que es la comprobación inicial que hace el programa). La segunda la hace justo después de introducir el serial y antes de mostrar el mensaje "parece una licencia de Personal Finances Home". En ámbas la llamada CALL 8562e4 carga en el registro EDX nuestro serial.

4) He analizado un poco las rutinas y creo que hacen la comprobación de la siguiente forma: (usan un bucle que se repite en función de la longitud del número introducido)

Mí serial: 56814
ronda 1- elimina la primera cifra para hacer unas operaciones (6814)
ronda 2 - elimina las 2 primeras cifras (814)
ronda 3 - elimina las 3 primeras cifras (14)
-------
ultima ronda

La rutina me parece un poco complicada de entender en detalle así que si alguien puede echarle un vistazo y orientarme un poco se lo agradecería.

Esta es la rutina:

CPU Disasm
Address   Hex dump          Command                                  Comments
Código
  1. 005DAF6F  |> /8BFE          /MOV EDI,ESI
  2. 005DAF71  |. |57            |PUSH EDI                                ; /Arg2
  3. 005DAF72  |. |8D45 CC       |LEA EAX,[LOCAL.13]                      ; |
  4. 005DAF75  |. |50            |PUSH EAX                                ; |Arg1 => OFFSET LOCAL.13
  5. 005DAF76  |. |E8 E9AF2700   |CALL 00855F64                           ; \PersonalFinances.00855F64
  6. 005DAF7B  |. |83C4 08       |ADD ESP,8
  7. 005DAF7E  |. |8D45 CC       |LEA EAX,[LOCAL.13]
  8. 005DAF81  |. |E8 5EB32700   |CALL 008562E4
  9. 005DAF86  |. |03FF          |ADD EDI,EDI
  10. 005DAF88  |. |8D8D E6FEFFFF |LEA ECX,[LOCAL.71+2]
  11. 005DAF8E  |. |037D CC       |ADD EDI,DWORD PTR SS:[LOCAL.13]
  12. 005DAF91  |. |83C7 FE       |ADD EDI,-2
  13. 005DAF94  |. |66:8B17       |MOV DX,WORD PTR DS:[EDI]
  14. 005DAF97  |. |66:8995 E6FEF |MOV WORD PTR SS:[LOCAL.71+2],DX
  15. 005DAF9E  |. |66:C785 44FFF |MOV WORD PTR SS:[LOCAL.47],0C
  16. 005DAFA7  |. |51            |PUSH ECX                                ; /Arg2
  17. 005DAFA8  |. |8D4D D0       |LEA ECX,[LOCAL.12]                      ; |
  18. 005DAFAB  |. |51            |PUSH ECX                                ; |Arg1 => OFFSET LOCAL.12
  19. 005DAFAC  |. |E8 2B0D0000   |CALL 005DBCDC                           ; \PersonalFinances.005DBCDC
  20. 005DAFB1  |. |83C4 08       |ADD ESP,8
  21. 005DAFB4  |. |8985 E0FEFFFF |MOV DWORD PTR SS:[LOCAL.72],EAX
  22. 005DAFBA  |. |8B85 E0FEFFFF |MOV EAX,DWORD PTR SS:[LOCAL.72]
  23. 005DAFC0  |. |8985 38FEFFFF |MOV DWORD PTR SS:[LOCAL.114],EAX
  24. 005DAFC6  |. |8B55 F8       |MOV EDX,DWORD PTR SS:[LOCAL.2]
  25. 005DAFC9  |. |8995 DCFEFFFF |MOV DWORD PTR SS:[LOCAL.73],EDX
  26. 005DAFCF  |. |8B8D DCFEFFFF |MOV ECX,DWORD PTR SS:[LOCAL.73]
  27. 005DAFD5  |. |898D 28FEFFFF |MOV DWORD PTR SS:[LOCAL.118],ECX
  28. 005DAFDB  |. |8B85 28FEFFFF |MOV EAX,DWORD PTR SS:[LOCAL.118]
  29. 005DAFE1  |. |3B85 38FEFFFF |CMP EAX,DWORD PTR SS:[LOCAL.114]
  30. 005DAFE7  |. |0F94C2        |SETE DL
  31. 005DAFEA  |. |83E2 01       |AND EDX,00000001
  32. 005DAFED  |. |84D2          |TEST DL,DL
  33. 005DAFEF  |. |75 27         |JNE SHORT 005DB018
  34. 005DAFF1  |. |8B8D 38FEFFFF |MOV ECX,DWORD PTR SS:[LOCAL.114]
  35. 005DAFF7  |. |898D D8FEFFFF |MOV DWORD PTR SS:[LOCAL.74],ECX
  36. 005DAFFD  |. |8B85 D8FEFFFF |MOV EAX,DWORD PTR SS:[LOCAL.74]
  37. 005DB003  |. |66:8B50 0C    |MOV DX,WORD PTR DS:[EAX+0C]
  38. 005DB007  |. |66:3B95 E6FEF |CMP DX,WORD PTR SS:[LOCAL.71+2]
  39. 005DB00E  |. |0F97C1        |SETA CL
  40. 005DB011  |. |83E1 01       |AND ECX,00000001
  41. 005DB014  |. |84C9          |TEST CL,CL
  42. 005DB016  |. |74 1D         |JE SHORT 005DB035
  43. 005DB018  |> |8B45 F8       |MOV EAX,DWORD PTR SS:[LOCAL.2]
  44. 005DB01B  |. |8DBD 10FEFFFF |LEA EDI,[LOCAL.124]
  45. 005DB021  |. |8985 D4FEFFFF |MOV DWORD PTR SS:[LOCAL.75],EAX
  46. 005DB027  |. |8B95 D4FEFFFF |MOV EDX,DWORD PTR SS:[LOCAL.75]
  47. 005DB02D  |. |8995 18FEFFFF |MOV DWORD PTR SS:[LOCAL.122],EDX
  48. 005DB033  |. |EB 06         |JMP SHORT 005DB03B
  49. 005DB035  |> |8DBD 30FEFFFF |LEA EDI,[LOCAL.116]
  50. 005DB03B  |> |8B07          |MOV EAX,DWORD PTR DS:[EDI]
  51. 005DB03D  |. |8985 00FEFFFF |MOV DWORD PTR SS:[LOCAL.128],EAX
  52. 005DB043  |. |8B47 04       |MOV EAX,DWORD PTR DS:[EDI+4]
  53. 005DB046  |. |8985 04FEFFFF |MOV DWORD PTR SS:[LOCAL.127],EAX
  54. 005DB04C  |. |8B57 08       |MOV EDX,DWORD PTR DS:[EDI+8]
  55. 005DB04F  |. |8995 08FEFFFF |MOV DWORD PTR SS:[LOCAL.126],EDX
  56. 005DB055  |. |8B4D F8       |MOV ECX,DWORD PTR SS:[LOCAL.2]
  57. 005DB058  |. |898D D0FEFFFF |MOV DWORD PTR SS:[LOCAL.76],ECX
  58. 005DB05E  |. |8B8D D0FEFFFF |MOV ECX,DWORD PTR SS:[LOCAL.76]
  59. 005DB064  |. |898D F8FDFFFF |MOV DWORD PTR SS:[LOCAL.130],ECX
  60. 005DB06A  |. |8B85 08FEFFFF |MOV EAX,DWORD PTR SS:[LOCAL.126]
  61. 005DB070  |. |3B85 F8FDFFFF |CMP EAX,DWORD PTR SS:[LOCAL.130]
  62. 005DB076  |. |0F94C2        |SETE DL
  63. 005DB079  |. |83E2 01       |AND EDX,00000001
  64. 005DB07C  |. |84D2          |TEST DL,DL
  65. 005DB07E  |. |74 3D         |JE SHORT 005DB0BD
  66. 005DB080  |. |66:C785 44FFF |MOV WORD PTR SS:[LOCAL.47],0F0
  67. 005DB089  |. |BA 42179200   |MOV EDX,OFFSET 00921742
  68. 005DB08E  |. |8D45 90       |LEA EAX,[LOCAL.28]
  69. 005DB091  |. |E8 6EB02700   |CALL 00856104
  70. 005DB096  |. |FF85 50FFFFFF |INC DWORD PTR SS:[LOCAL.44]
  71. 005DB09C  |. |8D55 90       |LEA EDX,[LOCAL.28]
  72. 005DB09F  |. |8D83 84000000 |LEA EAX,[EBX+84]
  73. 005DB0A5  |. |E8 E6B02700   |CALL 00856190                           ; [PersonalFinances.00856190
  74. 005DB0AA  |. |FF8D 50FFFFFF |DEC DWORD PTR SS:[LOCAL.44]
  75. 005DB0B0  |. |8D45 90       |LEA EAX,[LOCAL.28]
  76. 005DB0B3  |. |BA 02000000   |MOV EDX,2
  77. 005DB0B8  |. |E8 ABB02700   |CALL 00856168
  78. 005DB0BD  |> |0FB78D E6FEFF |MOVZX ECX,WORD PTR SS:[LOCAL.71+2]
  79. 005DB0C4  |. |018D E8FEFFFF |ADD DWORD PTR SS:[LOCAL.70],ECX
  80. 005DB0CA  |. |8B4B 78       |MOV ECX,DWORD PTR DS:[EBX+78]
  81. 005DB0CD  |. |83F9 04       |CMP ECX,4                               ; Switch (cases 0..4, 6 exits)
  82. 005DB0D0  |. |0F87 F2020000 |JA 005DB3C8
  83. 005DB0D6  |. |FF248D DDB05D |JMP DWORD PTR DS:[ECX*4+5DB0DD]
  84. 005DB0DD  |. |F1B05D00      |DD 005DB0F1
  85. 005DB0E1  |. |80B15D00      |DD 005DB180
  86. 005DB0E5  |. |18B25D00      |DD 005DB218
  87. 005DB0E9  |. |ACB25D00      |DD 005DB2AC
  88. 005DB0ED  |. |32B35D00      |DD 005DB332
  89. 005DB0F1  |> |83FE 08       |CMP ESI,8                               ; Case 0 of switch PersonalFinances.5DB0CD
  90. 005DB0F4  |. |0F8F CE020000 |JG 005DB3C8
  91. 005DB0FA  |. |66:C785 44FFF |MOV WORD PTR SS:[LOCAL.47],0FC
  92. 005DB103  |. |66:8B85 E6FEF |MOV AX,WORD PTR SS:[LOCAL.71+2]
  93. 005DB10A  |. |66:8985 CEFEF |MOV WORD PTR SS:[LOCAL.77+2],AX
  94. 005DB111  |. |33D2          |XOR EDX,EDX
  95. 005DB113  |. |8955 8C       |MOV DWORD PTR SS:[LOCAL.29],EDX
  96. 005DB116  |. |8D45 8C       |LEA EAX,[LOCAL.29]
  97. 005DB119  |. |BA 01000000   |MOV EDX,1
  98. 005DB11E  |. |E8 29B22700   |CALL 0085634C
  99. 005DB123  |. |8985 C8FEFFFF |MOV DWORD PTR SS:[LOCAL.78],EAX
  100. 005DB129  |. |6A 01         |PUSH 1                                  ; /Arg2 = 1
  101. 005DB12B  |. |8B8D C8FEFFFF |MOV ECX,DWORD PTR SS:[LOCAL.78]         ; |
  102. 005DB131  |. |51            |PUSH ECX                                ; |Arg1 => [LOCAL.78]
  103. 005DB132  |. |E8 2DAE2700   |CALL 00855F64                           ; \PersonalFinances.00855F64
  104. 005DB137  |. |83C4 08       |ADD ESP,8
  105. 005DB13A  |. |8B85 C8FEFFFF |MOV EAX,DWORD PTR SS:[LOCAL.78]
  106. 005DB140  |. |E8 9FB12700   |CALL 008562E4
  107. 005DB145  |. |8B95 C8FEFFFF |MOV EDX,DWORD PTR SS:[LOCAL.78]
  108. 005DB14B  |. |8D45 C8       |LEA EAX,[LOCAL.14]
  109. 005DB14E  |. |66:8BBD CEFEF |MOV DI,WORD PTR SS:[LOCAL.77+2]
  110. 005DB155  |. |8B0A          |MOV ECX,DWORD PTR DS:[EDX]
  111. 005DB157  |. |8D55 8C       |LEA EDX,[LOCAL.29]
  112. 005DB15A  |. |66:8939       |MOV WORD PTR DS:[ECX],DI
  113. 005DB15D  |. |FF85 50FFFFFF |INC DWORD PTR SS:[LOCAL.44]
  114. 005DB163  |. |E8 3CB02700   |CALL 008561A4                           ; [PersonalFinances.008561A4
  115. 005DB168  |. |FF8D 50FFFFFF |DEC DWORD PTR SS:[LOCAL.44]
  116. 005DB16E  |. |8D45 8C       |LEA EAX,[LOCAL.29]
  117. 005DB171  |. |BA 02000000   |MOV EDX,2
  118. 005DB176  |. |E8 EDAF2700   |CALL 00856168
  119. 005DB17B  |. |E9 48020000   |JMP 005DB3C8
  120. 005DB180  |> |83FE 05       |CMP ESI,5                               ; Case 1 of switch PersonalFinances.5DB0CD
  121. 005DB183  |. |0F8E 3F020000 |JLE 005DB3C8
  122. 005DB189  |. |83FE 0F       |CMP ESI,0F
  123. 005DB18C  |. |0F8F 36020000 |JG 005DB3C8
  124. 005DB192  |. |66:C785 44FFF |MOV WORD PTR SS:[LOCAL.47],108
  125. 005DB19B  |. |66:8B8D E6FEF |MOV CX,WORD PTR SS:[LOCAL.71+2]
  126. 005DB1A2  |. |66:898D C6FEF |MOV WORD PTR SS:[LOCAL.79+2],CX
  127. 005DB1A9  |. |33C9          |XOR ECX,ECX
  128. 005DB1AB  |. |894D 88       |MOV DWORD PTR SS:[LOCAL.30],ECX
  129. 005DB1AE  |. |8D45 88       |LEA EAX,[LOCAL.30]
  130. 005DB1B1  |. |BA 01000000   |MOV EDX,1
  131. 005DB1B6  |. |E8 91B12700   |CALL 0085634C
  132. 005DB1BB  |. |8985 C0FEFFFF |MOV DWORD PTR SS:[LOCAL.80],EAX
  133. 005DB1C1  |. |6A 01         |PUSH 1                                  ; /Arg2 = 1
  134. 005DB1C3  |. |8B8D C0FEFFFF |MOV ECX,DWORD PTR SS:[LOCAL.80]         ; |
  135. 005DB1C9  |. |51            |PUSH ECX                                ; |Arg1 => [LOCAL.80]
  136. 005DB1CA  |. |E8 95AD2700   |CALL 00855F64                           ; \PersonalFinances.00855F64
  137. 005DB1CF  |. |83C4 08       |ADD ESP,8
  138. 005DB1D2  |. |8B85 C0FEFFFF |MOV EAX,DWORD PTR SS:[LOCAL.80]
  139. 005DB1D8  |. |E8 07B12700   |CALL 008562E4
  140. 005DB1DD  |. |8B95 C0FEFFFF |MOV EDX,DWORD PTR SS:[LOCAL.80]
  141. 005DB1E3  |. |66:8B85 C6FEF |MOV AX,WORD PTR SS:[LOCAL.79+2]
  142. 005DB1EA  |. |8B0A          |MOV ECX,DWORD PTR DS:[EDX]
  143. 005DB1EC  |. |8D55 88       |LEA EDX,[LOCAL.30]
  144. 005DB1EF  |. |66:8901       |MOV WORD PTR DS:[ECX],AX
  145. 005DB1F2  |. |8D45 C8       |LEA EAX,[LOCAL.14]
  146. 005DB1F5  |. |FF85 50FFFFFF |INC DWORD PTR SS:[LOCAL.44]
  147. 005DB1FB  |. |E8 A4AF2700   |CALL 008561A4                           ; [PersonalFinances.008561A4
  148. 005DB200  |. |FF8D 50FFFFFF |DEC DWORD PTR SS:[LOCAL.44]
  149. 005DB206  |. |8D45 88       |LEA EAX,[LOCAL.30]
  150. 005DB209  |. |BA 02000000   |MOV EDX,2
  151. 005DB20E  |. |E8 55AF2700   |CALL 00856168
  152. 005DB213  |. |E9 B0010000   |JMP 005DB3C8
  153. 005DB218  |> |83FE 05       |CMP ESI,5                               ; Case 2 of switch PersonalFinances.5DB0CD
  154. 005DB21B  |. |7E 09         |JLE SHORT 005DB226
  155. 005DB21D  |. |83FE 0F       |CMP ESI,0F
  156. 005DB220  |. |0F8E A2010000 |JLE 005DB3C8
  157. 005DB226  |> |66:C785 44FFF |MOV WORD PTR SS:[LOCAL.47],114
  158. 005DB22F  |. |66:8B8D E6FEF |MOV CX,WORD PTR SS:[LOCAL.71+2]
  159. 005DB236  |. |66:898D BEFEF |MOV WORD PTR SS:[LOCAL.81+2],CX
  160. 005DB23D  |. |33C9          |XOR ECX,ECX
  161. 005DB23F  |. |894D 84       |MOV DWORD PTR SS:[LOCAL.31],ECX
  162. 005DB242  |. |8D45 84       |LEA EAX,[LOCAL.31]
  163. 005DB245  |. |BA 01000000   |MOV EDX,1
  164. 005DB24A  |. |E8 FDB02700   |CALL 0085634C
  165. 005DB24F  |. |8985 B8FEFFFF |MOV DWORD PTR SS:[LOCAL.82],EAX
  166. 005DB255  |. |6A 01         |PUSH 1                                  ; /Arg2 = 1
  167. 005DB257  |. |8B8D B8FEFFFF |MOV ECX,DWORD PTR SS:[LOCAL.82]         ; |
  168. 005DB25D  |. |51            |PUSH ECX                                ; |Arg1 => [LOCAL.82]
  169. 005DB25E  |. |E8 01AD2700   |CALL 00855F64                           ; \PersonalFinances.00855F64
  170. 005DB263  |. |83C4 08       |ADD ESP,8
  171. 005DB266  |. |8B85 B8FEFFFF |MOV EAX,DWORD PTR SS:[LOCAL.82]
  172. 005DB26C  |. |E8 73B02700   |CALL 008562E4
  173. 005DB271  |. |8B95 B8FEFFFF |MOV EDX,DWORD PTR SS:[LOCAL.82]
  174. 005DB277  |. |66:8B85 BEFEF |MOV AX,WORD PTR SS:[LOCAL.81+2]
  175. 005DB27E  |. |8B0A          |MOV ECX,DWORD PTR DS:[EDX]
  176. 005DB280  |. |8D55 84       |LEA EDX,[LOCAL.31]
  177. 005DB283  |. |66:8901       |MOV WORD PTR DS:[ECX],AX
  178. 005DB286  |. |8D45 C8       |LEA EAX,[LOCAL.14]
  179. 005DB289  |. |FF85 50FFFFFF |INC DWORD PTR SS:[LOCAL.44]
  180. 005DB28F  |. |E8 10AF2700   |CALL 008561A4                           ; [PersonalFinances.008561A4
  181. 005DB294  |. |FF8D 50FFFFFF |DEC DWORD PTR SS:[LOCAL.44]
  182. 005DB29A  |. |8D45 84       |LEA EAX,[LOCAL.31]
  183. 005DB29D  |. |BA 02000000   |MOV EDX,2
  184. 005DB2A2  |. |E8 C1AE2700   |CALL 00856168
  185. 005DB2A7  |. |E9 1C010000   |JMP 005DB3C8
  186. 005DB2AC  |> |66:C785 44FFF |MOV WORD PTR SS:[LOCAL.47],120          ; Case 3 of switch PersonalFinances.5DB0CD
  187. 005DB2B5  |. |66:8B8D E6FEF |MOV CX,WORD PTR SS:[LOCAL.71+2]
  188. 005DB2BC  |. |66:898D B6FEF |MOV WORD PTR SS:[LOCAL.83+2],CX
  189. 005DB2C3  |. |33C9          |XOR ECX,ECX
  190. 005DB2C5  |. |894D 80       |MOV DWORD PTR SS:[LOCAL.32],ECX
  191. 005DB2C8  |. |8D45 80       |LEA EAX,[LOCAL.32]
  192. 005DB2CB  |. |BA 01000000   |MOV EDX,1
  193. 005DB2D0  |. |E8 77B02700   |CALL 0085634C
  194. 005DB2D5  |. |8985 B0FEFFFF |MOV DWORD PTR SS:[LOCAL.84],EAX
  195. 005DB2DB  |. |6A 01         |PUSH 1                                  ; /Arg2 = 1
  196. 005DB2DD  |. |8B8D B0FEFFFF |MOV ECX,DWORD PTR SS:[LOCAL.84]         ; |
  197. 005DB2E3  |. |51            |PUSH ECX                                ; |Arg1 => [LOCAL.84]
  198. 005DB2E4  |. |E8 7BAC2700   |CALL 00855F64                           ; \PersonalFinances.00855F64
  199. 005DB2E9  |. |83C4 08       |ADD ESP,8
  200. 005DB2EC  |. |8B85 B0FEFFFF |MOV EAX,DWORD PTR SS:[LOCAL.84]
  201. 005DB2F2  |. |E8 EDAF2700   |CALL 008562E4
  202. 005DB2F7  |. |8B95 B0FEFFFF |MOV EDX,DWORD PTR SS:[LOCAL.84]
  203. 005DB2FD  |. |66:8B85 B6FEF |MOV AX,WORD PTR SS:[LOCAL.83+2]
  204. 005DB304  |. |8B0A          |MOV ECX,DWORD PTR DS:[EDX]
  205. 005DB306  |. |8D55 80       |LEA EDX,[LOCAL.32]
  206. 005DB309  |. |66:8901       |MOV WORD PTR DS:[ECX],AX
  207. 005DB30C  |. |8D45 C8       |LEA EAX,[LOCAL.14]
  208. 005DB30F  |. |FF85 50FFFFFF |INC DWORD PTR SS:[LOCAL.44]
  209. 005DB315  |. |E8 8AAE2700   |CALL 008561A4                           ; [PersonalFinances.008561A4
  210. 005DB31A  |. |FF8D 50FFFFFF |DEC DWORD PTR SS:[LOCAL.44]
  211. 005DB320  |. |8D45 80       |LEA EAX,[LOCAL.32]
  212. 005DB323  |. |BA 02000000   |MOV EDX,2
  213. 005DB328  |. |E8 3BAE2700   |CALL 00856168
  214. 005DB32D  |. |E9 96000000   |JMP 005DB3C8
  215. 005DB332  |> |83FE 0A       |CMP ESI,0A                              ; Case 4 of switch PersonalFinances.5DB0CD
  216. 005DB335  |. |0F8E 8D000000 |JLE 005DB3C8
  217. 005DB33B  |. |66:C785 44FFF |MOV WORD PTR SS:[LOCAL.47],12C
  218. 005DB344  |. |66:8B8D E6FEF |MOV CX,WORD PTR SS:[LOCAL.71+2]
  219. 005DB34B  |. |66:898D AEFEF |MOV WORD PTR SS:[LOCAL.85+2],CX
  220. 005DB352  |. |33C9          |XOR ECX,ECX
  221. 005DB354  |. |898D 7CFFFFFF |MOV DWORD PTR SS:[LOCAL.33],ECX
  222. 005DB35A  |. |8D85 7CFFFFFF |LEA EAX,[LOCAL.33]
  223. 005DB360  |. |BA 01000000   |MOV EDX,1
  224. 005DB365  |. |E8 E2AF2700   |CALL 0085634C
  225. 005DB36A  |. |8985 A8FEFFFF |MOV DWORD PTR SS:[LOCAL.86],EAX
  226. 005DB370  |. |6A 01         |PUSH 1                                  ; /Arg2 = 1
  227. 005DB372  |. |8B8D A8FEFFFF |MOV ECX,DWORD PTR SS:[LOCAL.86]         ; |
  228. 005DB378  |. |51            |PUSH ECX                                ; |Arg1 => [LOCAL.86]
  229. 005DB379  |. |E8 E6AB2700   |CALL 00855F64                           ; \PersonalFinances.00855F64
  230. 005DB37E  |. |83C4 08       |ADD ESP,8
  231. 005DB381  |. |8B85 A8FEFFFF |MOV EAX,DWORD PTR SS:[LOCAL.86]
  232. 005DB387  |. |E8 58AF2700   |CALL 008562E4
  233. 005DB38C  |. |8B95 A8FEFFFF |MOV EDX,DWORD PTR SS:[LOCAL.86]
  234. 005DB392  |. |66:8B85 AEFEF |MOV AX,WORD PTR SS:[LOCAL.85+2]
  235. 005DB399  |. |8B0A          |MOV ECX,DWORD PTR DS:[EDX]
  236. 005DB39B  |. |8D95 7CFFFFFF |LEA EDX,[LOCAL.33]
  237. 005DB3A1  |. |66:8901       |MOV WORD PTR DS:[ECX],AX
  238. 005DB3A4  |. |8D45 C8       |LEA EAX,[LOCAL.14]
  239. 005DB3A7  |. |FF85 50FFFFFF |INC DWORD PTR SS:[LOCAL.44]
  240. 005DB3AD  |. |E8 F2AD2700   |CALL 008561A4                           ; [PersonalFinances.008561A4
  241. 005DB3B2  |. |FF8D 50FFFFFF |DEC DWORD PTR SS:[LOCAL.44]
  242. 005DB3B8  |. |8D85 7CFFFFFF |LEA EAX,[LOCAL.33]
  243. 005DB3BE  |. |BA 02000000   |MOV EDX,2
  244. 005DB3C3  |. |E8 A0AD2700   |CALL 00856168
  245. 005DB3C8  |> |83FE 06       |CMP ESI,6                               ; Default case of switch PersonalFinances.5DB0CD
  246. 005DB3CB  |. |7D 79         |JGE SHORT 005DB446
  247. 005DB3CD  |. |66:C785 44FFF |MOV WORD PTR SS:[LOCAL.47],138
  248. 005DB3D6  |. |66:8B8D E6FEF |MOV CX,WORD PTR SS:[LOCAL.71+2]
  249. 005DB3DD  |. |66:898D A6FEF |MOV WORD PTR SS:[LOCAL.87+2],CX
  250. 005DB3E4  |. |33C9          |XOR ECX,ECX
  251. 005DB3E6  |. |898D 78FFFFFF |MOV DWORD PTR SS:[LOCAL.34],ECX
  252. 005DB3EC  |. |8D85 78FFFFFF |LEA EAX,[LOCAL.34]
  253. 005DB3F2  |. |BA 01000000   |MOV EDX,1
  254. 005DB3F7  |. |E8 50AF2700   |CALL 0085634C
  255. 005DB3FC  |. |8BF8          |MOV EDI,EAX
  256. 005DB3FE  |. |6A 01         |PUSH 1                                  ; /Arg2 = 1
  257. 005DB400  |. |57            |PUSH EDI                                ; |Arg1
  258. 005DB401  |. |E8 5EAB2700   |CALL 00855F64                           ; \PersonalFinances.00855F64
  259. 005DB406  |. |83C4 08       |ADD ESP,8
  260. 005DB409  |. |8BC7          |MOV EAX,EDI
  261. 005DB40B  |. |E8 D4AE2700   |CALL 008562E4
  262. 005DB410  |. |66:8B8D A6FEF |MOV CX,WORD PTR SS:[LOCAL.87+2]
  263. 005DB417  |. |8B17          |MOV EDX,DWORD PTR DS:[EDI]
  264. 005DB419  |. |8D45 C4       |LEA EAX,[LOCAL.15]
  265. 005DB41C  |. |66:890A       |MOV WORD PTR DS:[EDX],CX
  266. 005DB41F  |. |8D95 78FFFFFF |LEA EDX,[LOCAL.34]
  267. 005DB425  |. |FF85 50FFFFFF |INC DWORD PTR SS:[LOCAL.44]
  268. 005DB42B  |. |E8 74AD2700   |CALL 008561A4                           ; [PersonalFinances.008561A4
  269. 005DB430  |. |FF8D 50FFFFFF |DEC DWORD PTR SS:[LOCAL.44]
  270. 005DB436  |. |8D85 78FFFFFF |LEA EAX,[LOCAL.34]
  271. 005DB43C  |. |BA 02000000   |MOV EDX,2
  272. 005DB441  |. |E8 22AD2700   |CALL 00856168
  273. 005DB446  |> |46            |INC ESI
  274. 005DB447  |> |837D CC 00    |CMP DWORD PTR SS:[LOCAL.13],0
  275. 005DB44B  |. |74 08         |JE SHORT 005DB455
  276. 005DB44D  |. |8B4D CC       |MOV ECX,DWORD PTR SS:[LOCAL.13]
  277. 005DB450  |. |8B49 FC       |MOV ECX,DWORD PTR DS:[ECX-4]
  278. 005DB453  |. |EB 02         |JMP SHORT 005DB457
  279. 005DB455  |> |33C9          |XOR ECX,ECX
  280. 005DB457  |> |3BF1          |CMP ESI,ECX
  281. 005DB459  |.^\0F8E 10FBFFFF \JLE 005DAF6F
6  Programación / Ingeniería Inversa / Ayuda (mis primeros pasos con ollydb para intentar registrar un programa) en: 22 Septiembre 2010, 18:01 pm
Hola, saludos a todos y muchas gracias de antemano. Me estoy iniciando en este mundillo de la ingeniería inversa y después de leerme unos cuantos tutos y crackmes me decidí por intentar registrar este programa:

http://sp.financessoftware.com/downloads/PersonalFinancesPro.zip

Es un programa portable que no necesita instalación. No es el típico con nombre/número de serie. Sólo pide un número de serie. El problema es que no da mensaje de si es válido o no. Lo sabes al reiniciar el programa porque te vuelve a salir una ventana con el aviso de que no está registrado.

Hay otra cosa que lo diferencia de los típicos y es que si no está registrado no permite (en teoría) más de 200 transacciones. Digo en teoría porque a mí a veces me sale el límite a 270 a veces a 290 (es un poco confuso eso).

Bueno comienzo mirándolo con el PEid y veo que está compilado con Borland C++ 1999. Creo que no pinta mal la cosa.

Me voy al Olly y aqui empiezan los problemas:

1) Imposible localizar las cadenas de texto chico bueno chico malo, por lo menos en el módulo principal (dependen del idioma escogido y están almacenas en un fichero de texto en la carpeta LANG)

2) Lo intento a través de las funciones GetWindowTextA, MessageBoxA y GetDlgItemTextA pero tampoco hay suerte parece que utiliza APIs diferentes.

3) Intento tracear el programa e ir colocando BP a ver si consigo localizar la rutina "manualmente" pero se hace muy complejo (hay demasiados saltos y a la mínima me paso de la rutina de comprobación)

Alguien puede echarle un vistazo y ayudarme un poquito, o al menos orientarme sobre qué otras opciones tengo?

Saludos y gracias de nuevo


PD.:  4) He intentado otro camino: colocar un BP on WinProc para que pare al pulsar el botón del OK (202) pero tampoco ha habido suerte. Alguna idea?
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines