My question is: What do I need to know in order to reverse-engineer software on Windows? I have knowledge of Assembly already and now what else I need to learn? Also, can you recommend any book/resource to learn from? (I have found some resources about reversing from The Legend of R4ndom. What do you think about these?)
Knowledge on assembly is all you really need to get started. To reverse executables on Window learn the Disassembler (IDA) and Debuggers (WinDbg, OllyDbg) as well as the Windows API , if you plan to reverse Windows specific software. Crackmes and keygens are great resource for learning and I would recommend crackme.de, as it contains lots of windows executables.