Skip to content

Latest commit

 

History

History
48 lines (36 loc) · 1.95 KB

contributing.md

File metadata and controls

48 lines (36 loc) · 1.95 KB

Contributing

Welcome Commander!

What is an assembly patch?

Assembly patch (binary patch, exe patch) is a patch that changes behaviour of executable provided by original devs. Usually change is done with intention to improve, fix, or add new functionality. Since original executable is written in C++ and built with MSVC compiler we are using in our disposal windows compatible C/C++ compiler and x86 assembly.

Where to learn more about it?

It is hard to tell where and how to learn this topic since it is very exotic one, especially x86 asm, windows architecture and reverse engineering. But these skills and knowledge would be more than enough:

  • x86 assembly
    • basic instructions and branches
    • general registers
    • addresses and pointers
    • stack and heap
    • calling conventions
    • float point math (FPU and SSE)
    • basic understanding of virtual addressing and windows processes
  • MS Visual C++ 17 (20)
    • C and its base
    • algorithms and data structures + their implementations
    • OOP
    • templates and metaprogramming
    • building pipeline
  • Reverse engineering. This is a very sensitive topic since none of us can't really tell how to do that properly and learn that. It is mostly heuristic task that can't be described with any methods of how and when. But there are certainly hints to be used. Here must be a link to upcoming file with patterns for data structures and algorithms
    • IDA
    • x32Dbg
    • Cheat Engine

Useful links:

Development environment

See setup process.