Por regla general los flujos de programas siempre se resumen en una operacion booleana, por defecto:
0 - NO REGISTRADO.
1 - REGISTRADO.
Un método tradicional es buscar ese byte de la memoria que estando siempre a 1 todas las comparaciones booleanas digan que está registrado, en el caso de como ya dijo TENA, si ves una estructura con éste símil:
00405111 MOV EAX,DWORD PTR DS:[EDI+120] ; <=== DEBE SER 1
00405117 MOV ECX,EDI
00405119 CMP EAX,1
0040511C JNZ SHORT sdvdrip.00405138
0040511E PUSH 40
00405120 PUSH sdvdrip.004C55B8 ; ASCII "Thanks"
00405125 PUSH sdvdrip.004C5594 ; ASCII "Thank you for buying the software!"
Aqui busque referencias a esa constante [edi+120]
Address Disassembly Comment
00405249 MOV DWORD PTR SS:[EBP+120],1 <===UUUUUUUUUUUUUUUUU
004052D4 MOV DWORD PTR SS:[EBP+120],0 <=== Malo
y ves que el JNZ es evaluado por la anterior instrucción
CMP y que utiliza como comparador el registro
EAX, entonces pasas a ver de donde viene EAX, si miras más arriba ves la línea:
00405111 MOV EAX,DWORD PTR DS:[EDI+120]
es decir, ese "1" o "0" (lo llamaremos Byte de Registro o "RegByte"), lo obtiene de la direccion de memoria
EDI+120.
según leí (hice una lectura rápida ya me perdonareis
) tena busco todas las referencias en el código de instrucciones tipo:
MOV EAX, DWORD PTR DS:[EDI+120]
y salieron algunas y todas las parcheo (creo).
el caso es que tu tambien puedes quedarte con la direccion absoluta, es decir, poner un BreakPoint en esa línea y esperar a que pare, ver que valor tiene EDI y sumarle 120 (o ir al dump y hacer CTRL + G y escribes "EDI + 120"), y te quedas con ese valor, reinicias (probablemente al reiniciar esté vacío o ni siquiera exista, pero tu le metes un BreakPoint o on access o hardware on access byte (recuerda que el hardware parará una línea despues de que se haya ejecutado la violación de acceso de memoria) (un punto de ruptura on access es simplemente un cambio en las propiedades de la sección para que genere una excepcion y la devuelva así puede pararlo en esa zona), una vez lo pongas corres el programa y ves quienes lo van chafafando con 0s y tu les metes 1os.
Salu2..