Hi Robman,
ich kann dir ein bisschen helfen

.
API-Funktionen checken ob die cd-rom eingelegt ist damit davon gelesen werden kann.
beispiele hierzu wären:
GetDriveTypeA
GetVolumeInformationA
GetDriveAttributeA
FindFirstFileA
SetCurrentDirectoryA
GetFileSize
CreateFileA
GetDiskFreespaceA
GetFileAttributeA
mciSendCommandA & mciSendStringA (bei AudioCD's)
---------------------------------------
GetDriveTypeA ist die wichtigste, denn sie checkt ob de CD eingelegt
ist oder nicht.
Nun ein bisschen Theorie:
das grosse "A" am ende jeder dieser API-Funktionen besagt, dass es eine 32 Bit-Anwendung ist.
Würde das "A" fehlen wäre es eine 16 Bit-Anwendung (für DOS).
(soll aber jetzt nicht stören, da dass nicht sooo wichtig für uns ist)
Die API-Funktion GetMessageBoxA die oben jetzt nicht aufgeführt ist, ist dazu da, die Fehlermeldung im Pop-up Fenster, gleich zu anfang, wenn man versucht das Spiel ohne CD zu starten, auszugeben.
D.h. dann auch, dass diese Messagebox gelöscht werden muss

.
Sicherlich gibt es noch mehr als die oben genannten Funktionen, denn die CD-Protection selber, also der Kopierschutz wird bestimmt auch bei manchen Spielen extra abgefragt.
Hmm, was gibts noch zu sagen?!
Also Assembler sollte man können, damit man die einzelnen Code-Zeilen
versteht. Desweiteren sollte man sich mit einem Dissassembler auskennen und auch noch einem Hex-Editor, denn diese zwei Programme braucht man auf alle Fälle.
Will man z.B., wie oben gesagt, die Messagebox löschen muss man sie aus dem Programm nopen - mehr dazu kannst du von mir per PN (private nachricht) erfahren, denn hier will ich nicht näher darauf eingehen

.
mfg GSCA-Member