Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Practical Reverse Engineering

    Practical Reverse Engineering

    Bruce Dang, Alexandre Gazet, Elias Bachaalany · 2014

    Aims to demystify the art and systemize the reverse-engineering process for students and professionals.

    Security & Privacy
    Open LibraryAmazon
    Stats for nerds
    6recommend
    10mentions
    8people
    2016–2024years
    80% recommend20% neutral

    Mentions per year

    201620172018201920202021202220232024

    What Hacker News says

    1. armitronJul 2024
      I found so many mistakes, badly understood concepts and entirely wrong explanations just reading for 5 minutes, that I can't possibly recommend this. It's obviously written by amateurs / people with minimal experience of the domain.

      Much better resources are Eldad Eilam's "Secrets of Reverse Engineering", for Windows "Practical Reverse Engineering" and for the absolute basics, Patterson's "Computer Organization and Design".

      thread
    2. waterheaterMar 2021
      Here's a good book on software reverse engineering (SRE): https://www.amazon.com/Practical-Reverse-Engineering-Reversi...

      It won't help you with PowerPC, but the chapter list is: x86 and x64, ARM, The Windows Kernel, Debugging and Automation, and Obfuscation.

      The book was written in 2014, so it should be reasonably relevant for modern purposes, and especially so if digging into any software older than 2014.

      thread
    3. alltakendamnedJul 2019
      Practical reverse engineering by Bruce Dang
      thread
    4. DavidbrczSep 2018

          Reversing: Secrets of Reverse Engineering de Eldad Eilam
          Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation de Bruce Dang, Alexandre Gazet, Elias Bachaalany, Sébastien Josse
          Cryptography Engineering de Niels Ferguson, Bruce Schneier, Tadayoshi Kohno
          Applied Cryptography: Protocols, Algorithms and Source Code in C de Bruce Schneier
      thread
    5. dsaccoJul 2017
      So, I've read most of these. Here's a tour of what is definitely useful and what you should probably avoid.

      _________________

      Do Read:

      1. The Web Application Hacker's Handbook - It's beginning to show its age, but this is still absolutely the first book I'd point anyone to for learning practical application security.

      2. Practical Reverse Engineering - Yep, this is great. As the title implies, it's a good practical guide and will teach many of the "heavy" skills instead of just a platform-specific book targeted to something like iOS. Maybe supplement with a tool-specific book like The IDA Pro Book.

      3. Security Engineering - You can probably read either this or The Art of Software Security Assessment. Both of these are old books, but the core principles are timeless. You absolutely should read one of these, because they are like The Art of Computer Programming for security. Everyone says they have read them, they definitely should read them, and it's evident that almost no one has actually read them.

      4. Shellcoder's Handbook - If exploit development if your thing, this will be useful. Use it as a follow-on from a good reverse engineering book.

      5. Cryptography Engineering - The first and only book you'll really need to understand how cryptography works if you're a developer. If you want to make cryptography a career, you'll need more; this is still the first book basically anyone should pick up to understand a wide breadth of modern crypto.

      _________________

      You Can Skip:

      1. Social Engineering: The Art of Human Hacking - It was okay. I am biased against books that don't have a great deal of technical depth. You can learn a lot of this book by reading online resources and by honestly having common sense. A lot of this book is infosec porn, i.e. "Wow I can't believe that happened." It's not a bad book, per se, it's just not particularly helpful for a lot of technical security. If it interests you, read it; if it doesn't, skip it.

      2. The Art of Memory Forensics - Instead of reading this, consider reading The Art of Software Security Assessment (a more rigorous coverage) or Practical Malware Analysis.

      3. The Art of Deception - See above for Social Engineering.

      4. Applied Cryptography - Cryptography Engineering supersedes this and makes it obsolete, full stop.

      _________________

      What's Not Listed That You Should Consider:

      1. Gray Hat Python - In which you are taught to write debuggers, a skill which is a rite of passage for reverse engineering and much of blackbox security analysis.

      2. The Art of Software Security Assessment - In which you are taught to find CVEs in rigorous depth. Supplement with resources from the 2010s era.

      3. The IDA Pro Book - If you do any significant amount of reverse engineering, you will most likely use IDA Pro (although tools like Hopper are maturing fast). This is the book you'll want to pick up after getting your IDA Pro license.

      4. Practical Malware Analysis - Probably the best single book on malware analysis outside of dedicated reverse engineering manuals. This one will take you about as far as any book reasonably can; beyond that you'll need to practice and read walkthroughs from e.g. The Project Zero team and HackerOne Internet Bug Bounty reports.

      5. The Tangled Web - Written by Michal Zalewski, Director of Security at Google and author of afl-fuzz. This is the book to read alongside The Web Application Hacker's Handbook. Unlike many of the other books listed here it is a practical defensive book, and it's very actionable. Web developers who want to protect their applications without learning enough to become security consultants should start here.

      6. The Mobile Application Hacker's Handbook - The book you'll read after The Web Application Hacker's Handbook to learn about the application security nuances of iOS and Android as opposed to web applications.

      thread
    6. kdbgJun 2017
      Now that you've got a foundation in software development we can move onto exploit-development. Well not quite first you need to bridge your knowledge from building software to breaking it. For this you need to start learning about how software works at a lower level, the CPU level. There is a good book: Computer Organization and Design. Its solid but its also a textbook and covers a lot more detail than you need (though still valuable to know). It covers MIPS and how the CPU works, you probably can skip stuff about the hardware and microcode though. MIPS is a simpler assembly language than intel's stuff so its a nice starting place though.

      Intel is what you'll most often encounter though so you do need to learn x86 and x86_64.

      OpenSecurityTraining.info provides a number of courses that are valuable for this bridge to breaking software.

      1. Life of Binaries - http://opensecuritytraining.info/LifeOfBinaries.html - This helps you go from understanding to software to understanding the system around the software and the context in which software runs. 2. Introductory Intel x86 - http://opensecuritytraining.info/IntroX86.html - Really boring/dry class on x86 instructions but gives you the introduction you need.

      3. Introductory Intel x86-64 - http://opensecuritytraining.info/Intr oX86-64.html - Just slides this time, good to review and get a sense of the differences between 32bit and 64bit intel assembly.

      Once you've gotten the basics its finally time to move onto learning the actual exploit development skills.

      1. Introduction to Software Exploits - http://opensecuritytraining.info/Exploits1.html - In my opinion this is simply the best resource out there to learn the basics. It uses the book "The Shellcoder's Handbook" as its textbook and I completely recommend the book.

      2. Hacking: The Art of Exploitation - This is the most often recommended book, its great and has a much better introduction than the Shellcoder's Handbook but if you can make it through the course above without probably you can probably skip this book as the two resources covers more content but this book is one of the best introductions available. 3. Corelan's Exploit Development Tutorial Series - https://www.corelan.be/index.php/2009/07/19/exploit-writing-... - It'll start in familiar territory but it'll get into some new stuff, overall a good series. 4. Exploitation in the Windows Environment - http://opensecuritytraining.info/Exploits2.html - You'll find some overlap with Corelan's tutorial series and this course so you might want to take this course and reference the tutorials as you go.

      5. A Bug Hunter's Diary - Excellent book that covers some similar topics as the previous resources but spends a bit more time on actually finding vulnerabilities not just exploiting them and goes into more mitigations than the previous resources also, skip the stuff you already know. 6.

      While learning all this exploit development stuff, there is another necessary skill to actually finding vulnerabilities: reverse engineering.

      There are two books that I frequently recommend on the topic:

      1. Reversing: Secrets of Reverse Engineering - this is the most popular recommendation and its a great resource to work through.

      2. Practical Reverse Engineering - This is a new comer (2014) but I quite like it. It isn't as 'complete' as Reversing is but it covers a wider rage of topics that I find more useful.

      3. (Bonus) Malware Analyst's Cookbook - Malware Analysis is probably the most RE heavy field you can be in so this is a solid book on the topic. Just because of its name I didn't give it a fair chance when I was reviewing books to recommend but I did review it recently and do want to give it a plug and it has a lot of practical information and labs to work on.

      By this point you should have a reasonably solid foundation and a good understanding of exploitation. You will not be up to writing the latest browser 0day but you'll have the foundation necessary to understand (and learn from) modern sophisticated exploits so you can find and development them yourself. There are no resources to fill in the final gap but to go out do your research on a system and apply what you've learned to find some way to break them and development that weakness into an exploit.

      To get experience, there are a few resources I can recommend:

      1. Exploit-Exercises, I already mentioned Nebula, Protostar should be accessible to you once you've done the first Software Exploits course, and Fusion after the second one.

      2. Over the Wire, I've already mentioned a couple of their servers, check out the rest of them.

      3. Pwnable.kr - Challenges are at various levels use the harder ones to challenge yourself.

      4. Capture-The-Flag competitions - every year several CTFs are run, sign up and play in them. What is nice about CTFs is that they are bite-sized challenges, still difficult, still involving modern techniques (the ones worth the most points atleast) but not tedious and they don't require a big time investment to find a weakness in. The focus of the challenge is on the exploit development rather than on finding vulnerabilities. 5. CVE lists - find software that interests you, find a known vulnerability and try to build your own exploit in it.

      6. Real world software, go and break something of interest to you, learn how it works, find a vuln and exploit it.

      You may need to learn a new language, or research some new techniques to handle some mitigations, but you should have the foundation necessary to figure out what you don't know and how to learn what you need.

      ...and with all this content I never even touched on breaking web applications, so I must atleast give mention to "The Web-Application Hackers Handbook" cover that book, practice against any of the many vulnerable meant to be hacked web-apps out there (Damn Vulnerable Web App, OWASP Mutillidae 2, HackThisSite, HellboundHackers, Enigma-Group, HackThis.co.uk, etc, etc)

      Good Luck!

      thread

    Related

    Cover of The shellcoder's handbook
    2009–2020

    The shellcoder's handbook

    Chris Anley
    8 recommend · 13
    Cover of The Art of Memory Forensics
    2017

    The Art of Memory Forensics

    Andrew Case
    2 recommend · 3
    Cover of The art of software security assessment
    2008–2025

    The art of software security assessment

    Mark Dowd
    21 recommend · 43
    Cover of Cryptography engineering
    2010–2026

    Cryptography engineering

    Niels Ferguson
    50 recommend · 116
    Cover of Reversing
    2009–2025

    Reversing

    Eldad Eilam
    9 recommend · 14
    Cover of Security Engineering
    2008–2026

    Security Engineering

    Ross J. Anderson
    38 recommend · 60
    Cover of Introduction to modern cryptography
    2013–2026

    Introduction to modern cryptography

    Jonathan Katz
    recommend · 20
    13
    Cover of Handbook of applied cryptography
    2011–2026

    Handbook of applied cryptography

    Alfred J. Menezes
    14 recommend · 25