yako, como ves este programa a simple vista no tiene mucha complicacion de conseguir, pero nuestro mayor problema es el no disponer de un dispositivo Bluetooth conectado (el programa lo llama "dongle"), ya que el serial bueno lo obtiene a partir de la mac de la dongle, por lo que por ese camino no tiene interés que sigamos por nuestra parte, por eso te da el error de direcciones de memoria.
veo que tienes habilitado el boton para entrar la key, (buen trabajo pues a veces no es facil de conseguir), yo he utilizado un camino a veces más rápido ya que el objetivo no es habilitar el botón, porque si tuviesemos la dongle con la mac el botón estaria habilitado. Lo que yo he hecho es utilizar el otró boton existente en el formulario que si está siempre habilitado, cambiandole la dirección de ejecución al pulsar, a la que le corresponderia al deshabilitado, y con esto obtenemos el resultado que queremos, en este caso seria intercambiar la dirección de ejecucion de la función "acRefreshExecute" que le corresponde al botón de refrescar, por la de la función "acAddExecute" que le correponde al botón de Entrar Key. (funciones que previamente hemos visto aprovechandonos de la información que nos da los editores de recursos):
como ana6 si tiene dongle, puede mirar las string referenced, que las hay muy intuitivas, por ejemplo estas
a ver que se guisa por ahí.
en el siguiente codigo, tenemos un TEST AL,AL que dependiendo del resultado del flag nos lleva a Licensed o Not Licensed
p.d. seguro que MCKSys, ya lo tiene resuelto, sin dongle ni na.
veo que tienes habilitado el boton para entrar la key, (buen trabajo pues a veces no es facil de conseguir), yo he utilizado un camino a veces más rápido ya que el objetivo no es habilitar el botón, porque si tuviesemos la dongle con la mac el botón estaria habilitado. Lo que yo he hecho es utilizar el otró boton existente en el formulario que si está siempre habilitado, cambiandole la dirección de ejecución al pulsar, a la que le corresponderia al deshabilitado, y con esto obtenemos el resultado que queremos, en este caso seria intercambiar la dirección de ejecucion de la función "acRefreshExecute" que le corresponde al botón de refrescar, por la de la función "acAddExecute" que le correponde al botón de Entrar Key. (funciones que previamente hemos visto aprovechandonos de la información que nos da los editores de recursos):
Código [Seleccionar]
00657E52 . /44806500 DD TextBlue.00658044 ; Entry address
00657E56 . |10 DB 10
00657E57 . |61 63 52 65 66 72 65 >ASCII "acRefreshExecute"
00657E67 |13 DB 13
00657E68 |00 DB 00
00657E69 . |30836500 DD TextBlue.00658330 ; Entry address
00657E6D . |0C DB 0C
00657E6E . |61 63 41 64 64 45 78 >ASCII "acAddExecute"
--------------
cambiado quedaria asi:
00657E52 . /30836500 DD TextBlue.00658330 ; Entry address
00657E56 . |10 DB 10
00657E57 . |61 63 52 65 66 72 65 >ASCII "acRefreshExecute"
00657E67 |13 DB 13
00657E68 |00 DB 00
00657E69 . |30836500 DD TextBlue.00658330 ; Entry address
00657E6D . |0C DB 0C
00657E6E . |61 63 41 64 64 45 78 >ASCII "acAddExecute"
como ana6 si tiene dongle, puede mirar las string referenced, que las hay muy intuitivas, por ejemplo estas
Código [Seleccionar]
005DE500 /$ 53 PUSH EBX
005DE501 |. 8BD8 MOV EBX,EAX
005DE503 |. 53 PUSH EBX
005DE504 |. A1 0C116700 MOV EAX,DWORD PTR DS:[67110C]
005DE509 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
005DE50B |. B9 20E55D00 MOV ECX,TextBlue.005DE520 ; UNICODE "Licenced"
005DE510 |. BA 38E55D00 MOV EDX,TextBlue.005DE538 ; UNICODE "STR_DETECTED_LICENSED"
005DE515 |. E8 962C0800 CALL TextBlue.006611B0
005DE51A |. 5B POP EBX
005DE51B \. C3 RETN
005DE51C 10 DB 10
005DE51D 00 DB 00
005DE51E 00 DB 00
005DE51F 00 DB 00
005DE520 . 4C00 6900 6300 6500 6>UNICODE "Licenced"
005DE530 . 0000 UNICODE 0
005DE532 00 DB 00
005DE533 00 DB 00
005DE534 2A DB 2A ; CHAR '*'
005DE535 00 DB 00
005DE536 00 DB 00
005DE537 00 DB 00
005DE538 . 5300 5400 5200 5F00 4>UNICODE "STR_DETE"
005DE548 . 4300 5400 4500 4400 5>UNICODE "CTED_LIC"
005DE558 . 4500 4E00 5300 4500 4>UNICODE "ENSED",0
005DE564 /$ 53 PUSH EBX
005DE565 |. 8BD8 MOV EBX,EAX
005DE567 |. 53 PUSH EBX
005DE568 |. A1 0C116700 MOV EAX,DWORD PTR DS:[67110C]
005DE56D |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
005DE56F |. B9 84E55D00 MOV ECX,TextBlue.005DE584 ; UNICODE "Not Licenced"
005DE574 |. BA A4E55D00 MOV EDX,TextBlue.005DE5A4 ; UNICODE "STR_DETECTED_NOT_LICENSED"
005DE579 |. E8 322C0800 CALL TextBlue.006611B0
005DE57E |. 5B POP EBX
005DE57F \. C3 RETN
a ver que se guisa por ahí.
en el siguiente codigo, tenemos un TEST AL,AL que dependiendo del resultado del flag nos lleva a Licensed o Not Licensed
Código [Seleccionar]
0065F175 |. 84C0 |TEST AL,AL
0065F177 |. 74 15 |JE SHORT TextBlue.0065F18E
0065F179 |. 8D45 E8 |LEA EAX,[LOCAL.6]
0065F17C |. E8 7FF3F7FF |CALL TextBlue.005DE500
0065F181 |. 8B55 E8 |MOV EDX,[LOCAL.6]
0065F184 |. 8D45 F8 |LEA EAX,[LOCAL.2]
0065F187 |. E8 CC85DAFF |CALL TextBlue.00407758
0065F18C |. EB 13 |JMP SHORT TextBlue.0065F1A1
0065F18E |> 8D45 E4 |LEA EAX,[LOCAL.7]
0065F191 |. E8 CEF3F7FF |CALL TextBlue.005DE564
p.d. seguro que MCKSys, ya lo tiene resuelto, sin dongle ni na.