Código
if(picture1.picture = picture2.picture) then algo algo algo F1ACA end if
Como me doy cuenta yo en olly que se esta comparando la propiedad picture y no otra como caption, backolor, etc, etc? El unico avamce que he tenido fue que cree dos app en vb, cada una con dos controles picture, un commandButton, y dos control image, que es el que tiene cargada una imagen cualquiera.
En el evento load del form esta lo siguiente:
Código
picture1.picture = image1.picture picture2.picture = image2.picture
Es decir que cada control tiene ya una imagen distinta , y el code del command es el siguiente:
Código
if(picture1.picture = picture2.picture) then msgbox "son iguales" else msgbox "no son iguales" end if
Bueno el command lo que hace es comparar si tienen la misma imagen, ahora, el otro programita hace lo mismo pero los dos controles images poseen la misma imagen, y dara como resultado "son iguales" contrario al otro. Traceando con Olly obtuve esto (para el caso que son iguales):
Código
0042FB9A . 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C] ;Mueve el valor susodicho XD (0D05099D) 0042FB9D . 53 PUSH EBX 0042FB9E . 53 PUSH EBX 0042FB9F . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 0042FBA2 . 50 PUSH EAX 0042FBA3 . 51 PUSH ECX 0042FBA4 . 8995 3CFFFFFF MOV DWORD PTR SS:[EBP-C4],EDX 0042FBAA . FFD6 CALL ESI 0042FBAC . 83C4 10 ADD ESP,10 0042FBAF . 50 PUSH EAX 0042FBB0 . FFD7 CALL EDI 0042FBB2 . 8B8D 3CFFFFFF MOV ECX,DWORD PTR SS:[EBP-C4] 0042FBB8 . 33D2 XOR EDX,EDX 0042FBBA . 3BC1 CMP EAX,ECX ;Lo compara con el del otro control (ambos son "0D05099D") 0042FBBC . 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
y mas abajo hay esto:
Código
0042FBFA . 66:3BFB CMP DI,BX ;(DI=FFFF, BX=0000) 0042FBFD . 894D A4 MOV DWORD PTR SS:[EBP-5C],ECX 0042FC00 . 8945 9C MOV DWORD PTR SS:[EBP-64],EAX 0042FC03 . 894D B4 MOV DWORD PTR SS:[EBP-4C],ECX 0042FC06 . 8945 AC MOV DWORD PTR SS:[EBP-54],EAX 0042FC09 . 894D C4 MOV DWORD PTR SS:[EBP-3C],ECX 0042FC0C . 8945 BC MOV DWORD PTR SS:[EBP-44],EAX 0042FC0F . 74 43 JE SHORT Iguales.0042FC54 ; en este caso no saltaria y daria "Son iguales" 0042FC11 . 8D55 8C LEA EDX,DWORD PTR SS:[EBP-74] 0042FC14 . 8D4D CC LEA ECX,DWORD PTR SS:[EBP-34] 0042FC17 . C745 94 7CF5420>MOV DWORD PTR SS:[EBP-6C],Iguales.0042F57C ; UNICODE "Son iguales" 0042FC1E . C745 8C 0800000>MOV DWORD PTR SS:[EBP-74],8 0042FC25 . FF15 7C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarDup>] ; MSVBVM60.__vbaVarDup 0042FC2B . 8D55 9C LEA EDX,DWORD PTR SS:[EBP-64]
Bueno eso fue lo que logre, interceptar los valores que segun esto podrian ser las referencias a la propiedad picture (es una teoria nada mas), ya que con el otro ejemplo son distintos y dan diferente, pero como sabre yo generalmente de que propiedad se trata, ya que no son comparaciones tan directas como la propiedad .text de un campo, o algo asi por el estilo, ya que esto podria enredarnos mucho.
Salu2 y gracias de antemano.
AmeRiK@nO