Lernen selber Cracks zu erstellen Assembler-Fragen
Und
Crackme-FAQ
Sinnvoll wäre es,imho, zuerst eine Programmiersprache zu erlernen, um zu wissen, wie die Grundstruktur eines Programms ausschaut. Erst dann sollte man versuchen "die andere Seite" zu betrachten - so kann man die neuen Erkenntnisse mit vorhandenem Wissen verknüpfen. Und es ist immer ganz nützlich, die Schnittstellen des OS/der Standardbibliotheken zu kennen (bei Windows eben WinAPI), da diese von den meisten Programmen genutzt werden. So kann man sich im Disassembler/Debugger an den Aufrufen dieser Schnittstellen orienetieren, um sich schnell einen groben Überblick zu verschaffen, was bestimmte Codebereiche machen.