Skip to Main Content
x86 Software Reverse-Engineering, Cracking, and Counter-Measures
book

x86 Software Reverse-Engineering, Cracking, and Counter-Measures

by Stephanie Domas, Christopher Domas
February 2024
Intermediate to advanced content levelIntermediate to advanced
320 pages
6h 45m
English
Wiley
Content preview from x86 Software Reverse-Engineering, Cracking, and Counter-Measures

CHAPTER 13Advanced Defensive Techniques

The previous chapter presented some basic techniques for protecting an application against reverse engineering and cracking. This chapter demonstrates some more advanced techniques that are more difficult to defeat, including tamper-proofing, packing, virtualization, and the use of cryptors.

Tamper-Proofing

One of the powerful cracking techniques we've covered is patching, both for long-term cracking but also in the aid of reverse engineering. Tamper-proofing is a series of techniques geared toward making software more difficult for an attacker to modify. Some common approaches include the following:

  • Hashing
  • Signature
  • Watermark
  • Software guards

All of the following techniques have ways of being defeated, but (and I can't stress this enough) just because they have ways of being defeated doesn't mean they are not worth doing. Each of them provides a layer of defense in depth, and even if the method for defeating them fits into a few sentences, this doesn't mean it's easy in practice.

Hashing

An application can use hash functions to implement tamper-proofing via the following steps:

  1. Compute a hash of the software.
  2. Embed the hash in the software.
  3. Have the software check its own hash before executing.
  4. Any modifications to the software modify the hash.

The defense relies on the fact that changes to the application will cause the hash check to fail. To defeat this, an attacker will need to make their changes and then recompute the hash ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation

Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation

Bruce Dang, Alexandre Gazet, Elias Bachaalany, Sébastien Josse

Publisher Resources

ISBN: 9781394199884Purchase Link