Thursday, April 7, 2011

Best book to learn Windows assembly programming?

The other day I came across a site by the name http://securityxploded.com/enumheaps.php. On this site the author was able to understand and analyze the Windows assembly code generated. Which book can I follow to grab the knowledge of understanding Windows assembly code?

From stackoverflow
  • Assembly code is CPU specific, not OS specifc.

    cdonner : This is true, but irrelevant. Windows only runs on Intel platform. Windows assembly code has very distinct characteristics, and there are people who can read it. Felix Kasza would be one of them. I don't think he read about about it, though.
    cdonner : Sorry for the typos. It's this EEE keyboard ...
    John Nolan : Waah! a downvote. I'm fairly ignorant on the subject so thanks for the comments.
  • There are lots of books available to learn x86 assembly. A good, but perhaps a tad outdated one is called Art of Assembly Language and is available free online.

    Of course as others have pointed out, assembly language is specific to the processor rather than the operating system, but you clearly intend to learn x86 assembly.

    Jim Anderson : Outdated? How much has X86 assembly language changed?
    Dan Olson : Quite a bit since the 286/386 days when the book was first written. I haven't kept tabs on how up to date it's been kept.
  • Windows is going to be running on an Intel processor, so it's going to be x86 assembly language. As someone who has written for several processors at assembly level I'd have to suggest that you'd need a really good reason to need to do so in today's world.

    If you are merely interested then I'd just surf the web for x86 assembly language information and pick up what you can. If you have a definite need to learn x86 assembly for work or a project then I'd probably start with the Intel Programmers References

    MSalters : X86, X64, or Itanium. The latter one is _really_ different.
  • Jeff Duntmann's "Assembly Step by Step" is easy to follow.

  • A great introduction to x86 assembly language that is still relevant is the two part series by Matt Pietrek in the old Microsoft Systems Journal magazine:

    coolcake : yes, this is the kind of article i was looking for. just jump start!!
  • Iczelion's tutorials are a good place to start, even if a bit old now:

    http://win32assembly.online.fr/

    You may also want to have a look at the following:

    http://www.asmcommunity.net/

    http://en.wikibooks.org/wiki/X86_Assembly

    Also, as pointed out by Lazarus, Intel's documentation is very useful.

    If you want to get a feel for it, it may be easier to start by playing with ASM blocks in a higher level language, - one used to be able to do that in e.g. MS C++. Also the built-in assembler (BASM) of Codegear's Delphi if pretty powerful (Delphi 2009 supports up to SSE4.2 instruction sets). This frees you from having to write complete programs in assembly (that is, e.g. MASM, - ML.exe [or ML64.exe] - nowadays available with Microsoft's driver development kit)

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.