assembly :d
Get the tools, and search in google for crackmes( apps for practicing)
tools:
-Softice(thers a free version , 4.05)(debugger)it runs on an VxD so u can acess raw memory and hang windows on if u want to.
Olly debuger is a good choice for going first steps( a lot of graphics)
-Wdasm(dissasembler)
-A hex editor.
-A reference to the asm mnemonics and their equivalent in hex.
-A reference to the Windows API's and the params types and order(remeber they push it upside down into the stack)
-Vast assembly knowdelge.
-Somthing to hit when u step into code for an hour and results in nothing, like a punching ball XD.
i know nothing about it but i once tried learning and found it really exciting, but i founi have to become a real pro at coding before trying to reverse somthing