Pa mogu da kažem par stvari...
Jesi li probao da tracejueš kroz program od početka? Tako možeš da nađeš CALL koji prokazuje dialog za serijski broj. Negde iznad tog koda mora da stoji provera da li je kod već unet. Znači svodi se na JXX -> NOP ili JXX -> JMP. Otvoriš program u Ollzu i traceuješ dok ti se ne prikaže prozor. Naravno, to će ići tešto pošto moraš da reinstaliraš program.
Ovo je malo bolje. Shvati to što se program gasi kao ograničenje. Kad se gasi da li prikazuje neki MessageBox? Ako prikazuje stavi breakpoint na msgbox a ako ne onda nađi importe. Znači, ideš na Modules pa onda na neki dll i desni klik pa View names. Ti teba da proveriš kernel i user32 dllove. Nađi procedure TerminateProcess, PostQuitMessage, ExitProcess i tako to i nađi sve reference na njih. Znači, šta ti pokušavaš da ovde uradiš je da nađeš kod koji gasi program i reversuješ ga. To je to. Možda si sve ovo već znao i probao al i ja sam probao da pomognem :)