Shall we play a game?
Lessons learned while playing CoreWars8086
Core War is a programming game created by D. G. Jones and A. K. Dewdney in which two or more battle programs (called "Warriors" or “Survivors”) compete for control of a virtual computer. These battle programs are written in an abstract assembly language called Redcode. At the beginning of a game, each battle program is loaded into memory at a random location, after which each program executes one instruction in turn.
The object of the game is to cause the processes of opposing programs to terminate (which happens if they execute an invalid instruction), leaving the victorious program in sole possession of the machine.
However, there’s a new game in town, named “Corewars8086”, which will soon become an international competitor to the core war game.
One of the advantages of the "Corewars8086", and probably the most meaningful one, is that it uses Assembly 8086 to write warriors. Assembly 8086 can be used in everyday life while reversing and at work. Thus, it differs from the Redcode that is used by the "Core war" programming game that can only be used when playing a game.
During my lecture we will uncover the following topics:
1) A general overview of CoreWars8086 (Rules, Arena, state of registers and some important background).
- Game engine code snips..
- Helpful tools that used during competition.
- Different strategies used by survivors.
- Cooperation between survivors.
- Zombies (survivors released by the organizers that don’t get points and can be abused by the competitors).
- Examples of simple survivors and more advanced survivors.
- Anti debugging/reversing tricks and abusing bugs in the engine.
- Optimization of survivors.
- Finding flaws in other competitors and ‘pwning’ them.
- Machine learning and genetic programming approaches.
- My personal lessons from the last competition I competed in (And won 1st place).
- Feedback, suggestions and ideas from the audience ("Meet-> Share Ideas -> Create New Ideas”!).
In sum, by attending my lecture you will be provided with all the information you need to start playing and writing survivors.
So, shall we play a game?
Speakers
Elad Shapira (“Zest”) |