Als je bij VisualC[++] direct van de Win32 api gebruikt maakt, dan maakt het niet zoveel verschil met de C++ en ASM versies. Bij die crack-programmatjes is de code vaak niet zo moeilijk; bijvoorbeeld op een aantal plaatsen wat bytes aanpassen, maar om op het punt te komen welke bytes je aan moet passen is de moeilijkheid. Omdat je eigen geschreven code dan niet erg groot is maakt het relatief gezien niet uit of je nu 5 Kb aan "eigen" binaire code hebt in VC of maar 1 met asm ten opzichte van de code die meegebakken wordt om het een win32 programma te noemen.
Als er wel veel verschil tussen zit, dan is het enige wat ik me verder nog kan indenken dat VC misschien uitgebreide resources meebakt (locale, compile-date, compiler, misschien een icoontje, etc) en dat bij asm dat weggelaten wordt?
mij vergeet je weven dat de meeste spellen daarna ook nog een CRC check hebben om te kijken of dat klopt en een controlle routine daarop om te zorgen dat die werkt... enz
Veel spellen hebben plaatsen ook hun files in een grote file van een aantal honderden MB's waarbij ze zelf de layout van zo'n file bepaald hebben. Als je daar nu bepaalde code van een spel in een dll zet (code die niet vaak maar wel regelmatig wordt uitgevoerd maar wel essencieel is voor het spel) + de cd-check code, deze in die file zet, en vervolgens dit runtime importeerd in je executable dan wordt het al een stuk lastiger
Wat doen van die crackers eigenlijk wanneer voor de crack er code op een bepaalde plaats aan de executable toegevoegd moet worden? Want dan veranderen vervolgens toch allerlei adressen in je code?