news.volyx.in

Reverse engineering Call of Duty anti-cheat (ssno.cc)

528 points by deverton · 561 days ago · 214 comments on HN

Article summary

The article discusses the reverse engineering of the Call of Duty anti-cheat system, specifically the user-mode anti-cheat in Black Ops Cold War. The system uses various protection mechanisms, including Arxan obfuscation, runtime executable decryption, and pointer encryption. The article provides a detailed analysis of the anti-cheat's detection methods, including API hook detection and runtime API export lookup. The author also shares their approach to understanding and bypassing these protections.

Main themes

  • Reverse engineering
  • Anti-cheat systems
  • Game hacking
  • Obfuscation techniques
  • API hook detection
  • Game development

What commenters say

  • Learning reverse engineering requires a strong foundation in assembly language and practice with tools like IDA and Ghidra.
  • Signature scanning is a crucial technique in reverse engineering, involving the identification of unique byte patterns in compiled functions.
  • Some argue that unconditional jumps are common enough to make them difficult to filter out, while others propose using pre-conditions to identify them.
  • The use of tail calls and tail call optimization can make it challenging to analyze and understand the control flow of a program.
  • Different programming languages and compilers handle tail calls and recursion differently, with some eliminating tail calls and others not.
  • The `ret` instruction in x86 assembly has additional effects beyond simply popping an address off the stack, including updating the branch predictor's shadow stack.
  • Some commenters disagree on the importance of balancing `call` and `ret` instructions, with some arguing it is not necessary for correct program execution but can impact performance.
  • The use of Intel CET and Windows x64 requirements can add additional complexity to the use of `ret` and return stack management.