0050CACC |. A1 DCA55400 MOV EAX,[54A5DC]
0050CAD1 |. 8038 00 CMP BYTE PTR [EAX],0 // 0 = No registrado 1=registrado
0050CAD4 |. 74 13 JE SHORT 0050CAE9
0050CAD6 |. C645 FF 01 MOV BYTE PTR [EBP-1],1
0050CADA |. B8 00CC5000 MOV EAX,0050CC00 ; ASCII "You have registered version!"
Pues si te fijas, el salto ese depende de lo que contenga esa variable, si hay un 1 esta registrado, si hay un cero entonces lola
Bueno yo le acabo de hechar un vistazo, y aunque ponga en 1 esa variable, luego al reiniciar, lo sobreescribira aqui...
0050FECE C600 00 MOV BYTE PTR DS:[EAX],0 ; lo setea a cero
Asi que modificando ahi, para que meta un 1, lo unico que hacia era elimanar del menu Help a buy online y register... Por lo que no estaba totalmente registrado..
Si te fijas en el codigo...
0050CB2B |>CALL <_Art.FUNCION DE REGISTRO>
0050CB30 |>TEST AL,AL
0050CB32 |>JE SHORT _Art.0050CBA0 ; te manda a invalid
0050CB34 |>MOV DL,1
0050CB36 |>MOV EAX,DWORD PTR DS:[461C60]
0050CB3B |>CALL _Art.00461E24
0050CB40 |>MOV DWORD PTR SS:[EBP-10],EAX
0050CB43 |>MOV EDX,80000001
0050CB48 |>MOV EAX,DWORD PTR SS:[EBP-10]
0050CB4B |>CALL _Art.00461F54
0050CB50 |>MOV CL,1
0050CB52 |>MOV EDX,_Art.0050CC84 ; ASCII "\SOFTWARE\Elcom\ART\Registration"
0050CB57 |>MOV EAX,DWORD PTR SS:[EBP-10]
0050CB5A |>CALL _Art.00462108
0050CB5F |>MOV BYTE PTR SS:[EBP-9],AL
0050CB62 |>LEA EAX,DWORD PTR SS:[EBP-18]
0050CB65 |>MOV EDX,DWORD PTR SS:[EBP-8]
0050CB68 |>CALL _Art.00403F54
0050CB6D |>MOV ECX,DWORD PTR SS:[EBP-18]
0050CB70 |>MOV EDX,_Art.0050CCB0 ; ASCII "Code"
0050CB75 |>MOV EAX,DWORD PTR SS:[EBP-10]
0050CB78 |>CALL _Art.004626C0
0050CB7D |>PUSH 0 ; /Arg1 = 00000000
0050CB7F |>MOV CX,WORD PTR DS:[50CCB8] ; |
0050CB86 |>MOV DL,2 ; |
0050CB88 |>MOV EAX,_Art.0050CCC4 ; |ASCII "Thank you for registering !"
0050CB8D |>CALL _Art.00469744 ; \_Art.00469744
0050CB92 |. A>MOV EAX,DWORD PTR DS:[54A5DC] <==== ESTA VARIABLE ELIMINA LOS MENUES buy y register
Veras que si AL vale 1, estas registrado y el JE no salta, si AL es Cero, el salto se produce y te dice que no estas registrado.
Si entras al Call que retorna Al en 1 o 0, veras al final del codigo que retorna AL...
0050FEA9 . 8>MOV AL,BYTE PTR SS:[EBP-5] ; si o no registrado
0050FEAC . 8>MOV ESP,EBP
0050FEAE . 5>POP EBP
0050FEAF . C>RETN
y si te fijas un poquito arriba cuando [ebp-5] toma el valor 1, encotras esto..
0050FE72 |. E>|CALL _Art.0049B544 ; \_Art.0049B544
0050FE77 |. 4>|DEC EAX
0050FE78 7>JNZ SHORT _Art.0050FE80
0050FE7A |. C>|MOV BYTE PTR SS:[EBP-5],1 ; Registrado
por lo tanto si nopeas ese JNZ quedara registrado, ya que metera siempre un 1 en la variable.
En fin, las dos soluciones son validas, el objetivo se cumple
....
La idea es esa
Call getValidarRegistro()
cmp registrado,1
je salto_a_registrado
Tenes que entrar a la funcion y lograr que la variable registrado salga con el valor 1 o segun convenga.
slds