I have been intrigued by reverse engineering recently and just finished Paul Carter's PC Assembly Language book (http://pacman128.github.io/static/pcasm-book.pdf) which was a great primer for x86. My first question is: What is a good intermediate level book to get a better grasp of x86 assembly? Secondly: Should I get a better grasp of the C programming language before I dive deeper into x86? At the moment I only have basic knowledge of C as well.

Sorry if this is an opinion type question but I highly respect the input of people on this forum regarding this topic.

1 Answer 1


Knowing how things in C work under the hood will help you if you're familiar with C and use it as your primary programming language, otherwise it's perfectly fine to have x86 asm as your first programing language.

If you want a better understanding of the relationship between C and x86 assembly, I recommend reading the 7th chapter of Hacker disassembling uncovered (there's a free chm version online).

As a reverse engineer you'll need to understand and be fluent with machine code. Knowing C might help because it's relatively low level and forces you to understand machine level concepts such as the stack, pointers, etc. Good grasp of assembly is far more important.

The best way is probably to go to crackmes.de and other similar sites and starting solving challenges. some challenges there are very novice and some are extremely difficult to solve. Focus on the type of RE that interests you (malware, keygen/cracking, crypto, trainers/mods, complex programs) and once you gained enough experience get something real to work on, even just to take it up as a challenge.

EDIT: crackmes.de was taken down some time ago, another decent resource is tuts4you.com's download section.

  • Thanks! The 1st programming class I ever took was intro to C++ 5 years ago. I still remember a fair bit but picked up python shortly after and have been using that ever since. It just seems like everywhere I look people rant and rave about C when it comes to this field. Wasn't sure If a lack of C knowledge would leave me with a gaping whole in my understanding of this subject.
    – Nitro
    Oct 29, 2016 at 3:50
  • See new 3rd paragraph
    – NirIzr
    Oct 29, 2016 at 5:46
  • Thanks again, by the way Kaspersky is a great writer. Very pleased with that book so far. 1st edition seems much better than the 2nd.
    – Nitro
    Nov 1, 2016 at 3:41
  • Yes, Kris Kaspersky was a good writer. unfortunately he recently died in an accident, may he rest in peace.
    – NirIzr
    May 4, 2017 at 15:11
  • 1
    crackmes.de has been reincarnated as crackmes.one. See Crack Me Material for more.
    – julian
    Oct 4, 2018 at 4:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.