SlideShare a Scribd company logo
1 of 26
Download to read offline
dwangoAC
TASBot
the perfectionist
The amazing life & achievements of...The amazing life & achievements of...
Agenda
● Intro to Speedrunning video games, Tool-Assisted Speedruns, and Emulators
● TASBot: Playing back a TAS on real hardware
● TAS techniques, history, evolution
● Emulator tools - memory search, Lua scripting
● Beyond emulators - disassemblers and Binary Ninja
● Remaining limitations - emulator differences, inaccuracies
● Key point: TAS tools are like really fun penetration testing tools
● Interactive demo of Pokemon Red, Q&A
Speedrunning - playing games fast
● Inspired in part by in-game completion timers (Metroid)
● Many categories, ranging from "any%" to "low% no major glitches"
● SpeedDemosArchive.com and others track fastest completion times
● Strict rules and peer review ensure no cheats or macros are employed
● Highly entertaining, especially for a game you've played normally
Speedrunning
records verified
from video
captures or live
at GDQ events
Even beyond
standard limits:
blindfolded,
1-handed...
Tool-Assisted Speedruns: playing games even faster
● Also called Tool-Assisted Superplays, used as a noun or verb as TAS, TASing, TAS’ed, etc.
● Early TAS’s were usually made with tools built in to specific PC games (Doom, Quake)
● By the late 90’s, Doom Done Quick was well known, beating the game in 19:41
Tool-Assisted Speedruns (TAS)
● Tool-Assisted Speedruns push the limits of the hardware and game rather than the human
● Emulator tools include saving / loading game states, frame advance, and scripting
● Movie files deterministically record every button press for later playback
● Let's be honest, it's basically the Doped Olympics, with no rules
○ Bad idea when it comes to humans, but a lot of fun when beating games
○ A 2003 run of SMB3 by Morimoto was unlabeled, causing much controversy
● TASVideos.org formed by Bisqwit, now hosts runs for many platforms
by Morimoto
● Live demo: TASBot playing back a movie of SMB3 on real hardware
● Explanations forthcoming while TASBot happily mimics a real controller
What, a live demo already?
Rerecording enabled video game emulators and frameworks
● TAS techniques are enabled by emulators of video game consoles
○ FCEUX (NES), lsnes (SNES), VBA (Game Boy), BizHawk (multiple platforms)
● Some platforms, such as Windows, have rerecording frameworks
○ Hourglass, specialized projects like nethack-tas-tools
● Some emulators are very accurate, with scripting and memory search tools
Emulation accuracy has improved over time
● Early emulators were highly inaccurate, often unusably so
● Emulation accuracy was improved through clean room reverse engineering
○ OK, sometimes using not-so-clean techniques and stolen manuals
● Some took emulation accuracy to extreme levels (Byuu) at the cost of
usability
● This obsession allows movie files to match actual hardware, frame for frame
"Console verification", all without voiding any (long expired) warranties
● In 2009, true of TASVideos.org used a PIC microcontroller to press NES buttons
● By 2011, micro500 built his NESBot and demonstrated the first replay of SMB1
○ DarkKobold used an NESBot at SGDQ 2011 showing SMB2 and Wizards and Warriors 3
● Through 2012, devices for other consoles were added, such as Genesis and N64
● I (as dwangoAC) pitched TAS's for AGDQ 2014 resulting in true making a new device
○ I combined a board with a R.O.B. using Legos and others named him TASBot
Console verification devices over time
● 2011
○ NESBot from micro500 - original Instructable, breadboard design
○ Droid64bot from SoulCal - first 3D console verification
● 2012
○ N64 bot from micro500
● 2013
○ SNES and Genesis Arduino bot from GhostSonic
○ NES/SNES replay device from true - streaming capable and inexpensive but slow
○ Multireplay device from true - self-contained device, faster datatarates
● 2015
○ Game Boy Player Player from endrift - used for GBA games on a GameCube
● 2016
○ TASLink - FPGA based, expensive, but very flexible and fast
● Effectively like having total control; the game becomes a playground
Arbitrary Code Execution / Exploit
OK, what the heck did I just see?
● The tools that allow us to beat games quickly also allow us to glitch them
● Sometimes we can make games execute opcodes of our choosing
● Doing so requires delving deeper into TAS tools
Advanced emulator tools: Memory searching, Lua scripting, disassembly
● Search tools combined with frame advance and savestates can be very
powerful
● Find Mario's speed: Save a state, reset memory search, run forward
○ By eliminating values that don't increment you can find the correct address
● Disassembly of RAM or ROM can tell you what will happen if it is triggered
○ Dissassemblers range in ability and level of integration but are very helpful
Binary Ninja: Adding Reverse Engineering to the TASing toolbelt
● Recent tool focused on Reverse Engineering like IDA but more flexible
● Graph view visual representation with low level IL and annotation support
● Python scripting comes with NES support and ability to add new mappers
● Still in beta, future versions will add advanced searching and multi-module UI
From boot to ending in 16 frames by changing input
every other poll, eventually executing the controller
addresses as opcodes and jumping to the end credits
AGDQ 2016: Brain Age
SGDQ 2016
SMB1+2+3+Lost Levels simultaneously
Visual memory
editor
The tools and terminology in making a TAS translate to security research
● Vernacular differences abound, but the principles are the same
○ Savestate = VM snapshot
○ Frame advance = VM CPU tick
○ Glitch = Vulnerability
○ Total Control = Pwned / Arbitrary Control Exploit / root exploit (if consoles had such a concept)
● Learning how to make a TAS can be a fun and educational experience
Anatomy of a complex Arbitrary Code Execution
● Pokemon Red can be compromised in a very unique way
● Values in the controller register treated as opcodes allow taking over SGB
● Once full access to SNES is gained, anything is possible
References, thanks, and bibliography
- http://tasvideos.org/TASBot.html - history of TASBot / historical information on how I organized teams of people to participate at
Games Done Quick events, ultimately helping raise over $234k for charity and presenting in front of nearly 200,000 live viewers
- http://arstechnica.com/gaming/2014/01/how-an-emulator-fueled-robot-reprogrammed-super-mario-world-on-the-fly/ - This is the first
presentation I gave at a Games Done Quick event; this initial exploit caused TASBot to become a known name in the community
- http://arstechnica.com/gaming/2015/01/pokemon-plays-twitch-how-a-robot-got-irc-running-on-an-unmodified-snes/ - This was quite
possibly the most difficult (and arguably impressive) feat to date
- https://www.alchemistowl.org/pocorgtfo/pocorgtfo10.pdf page 6 - Pokemon Plays Twitch: This journal article written by myself as well
as the author of the lsnes emulator and the author of the chat payload
- http://arstechnica.com/gaming/2016/07/how-to-beat-super-mario-bros-3-in-less-than-a-second/ - Details on the 16-frame SMB3
completion
The antics described in this talk would not have been possible without the help of a very, very long list of talented TAS’ers and hackers
both from TASVideos.org and elsewhere, including: micro500 - co-presenter, Ilari - Emulator coder, p4plus2 - payload author,
Masterjun - TAS glitchfinder, true - hardware dev, TheAxeMan - Python script support, ais523 - Mathematician, pretty much everyone
in #tasvideos, and a long list of others I’m forgetting as I always seem to do whenever I’m thanking people. Thanks also goes to the
staff of Games Done Quick for organizing an awesome event and giving us a reason to do all the crazy things we do.
Questions?
Presented and written
by Allan Cecil (AKA
dwangoAC)

More Related Content

Similar to The amazing life & achievements of TASBot

Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engineMichalis Kamburelis
 
TASBot - the perfectionist
TASBot - the perfectionistTASBot - the perfectionist
TASBot - the perfectionistAnge Albertini
 
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Noam Gat
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hdslantsixgames
 
Confrontation Pipeline and SCons
Confrontation Pipeline and SConsConfrontation Pipeline and SCons
Confrontation Pipeline and SConsslantsixgames
 
How hard can it be - Ui development at keen games
How hard can it be - Ui development at keen gamesHow hard can it be - Ui development at keen games
How hard can it be - Ui development at keen gamesJulien Koenen
 
Improving iteration times through the reloading of code and data
Improving iteration times through the reloading of code and dataImproving iteration times through the reloading of code and data
Improving iteration times through the reloading of code and dataBoyan Spassov
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkGorm Lai
 
Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipeslantsixgames
 
Html5 Game Development with Canvas
Html5 Game Development with CanvasHtml5 Game Development with Canvas
Html5 Game Development with CanvasPham Huy Tung
 
Console development
Console developmentConsole development
Console developmentspartasoft
 
The internet of $h1t
The internet of $h1tThe internet of $h1t
The internet of $h1tAmit Serper
 
Real Time Realitites
Real Time RealititesReal Time Realitites
Real Time Realititesmarkisuak
 
Chrome game programming_with_for_play
Chrome game programming_with_for_playChrome game programming_with_for_play
Chrome game programming_with_for_playfirenze-gtug
 
Chrome game programming_with_for_play
Chrome game programming_with_for_playChrome game programming_with_for_play
Chrome game programming_with_for_playfirenze-gtug
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Codemotion
 
Овчаренко Євген “Відеоігри це ефективність”
Овчаренко Євген “Відеоігри це ефективність”Овчаренко Євген “Відеоігри це ефективність”
Овчаренко Євген “Відеоігри це ефективність”Lviv Startup Club
 
Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game enginepprem
 
Introduction to Procedural Contents Generation
Introduction to Procedural Contents GenerationIntroduction to Procedural Contents Generation
Introduction to Procedural Contents GenerationDavide Aversa
 

Similar to The amazing life & achievements of TASBot (20)

Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engine
 
TASBot - the perfectionist
TASBot - the perfectionistTASBot - the perfectionist
TASBot - the perfectionist
 
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
Confrontation Pipeline and SCons
Confrontation Pipeline and SConsConfrontation Pipeline and SCons
Confrontation Pipeline and SCons
 
How hard can it be - Ui development at keen games
How hard can it be - Ui development at keen gamesHow hard can it be - Ui development at keen games
How hard can it be - Ui development at keen games
 
Improving iteration times through the reloading of code and data
Improving iteration times through the reloading of code and dataImproving iteration times through the reloading of code and data
Improving iteration times through the reloading of code and data
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You Think
 
Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipe
 
Html5 Game Development with Canvas
Html5 Game Development with CanvasHtml5 Game Development with Canvas
Html5 Game Development with Canvas
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
 
Console development
Console developmentConsole development
Console development
 
The internet of $h1t
The internet of $h1tThe internet of $h1t
The internet of $h1t
 
Real Time Realitites
Real Time RealititesReal Time Realitites
Real Time Realitites
 
Chrome game programming_with_for_play
Chrome game programming_with_for_playChrome game programming_with_for_play
Chrome game programming_with_for_play
 
Chrome game programming_with_for_play
Chrome game programming_with_for_playChrome game programming_with_for_play
Chrome game programming_with_for_play
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
 
Овчаренко Євген “Відеоігри це ефективність”
Овчаренко Євген “Відеоігри це ефективність”Овчаренко Євген “Відеоігри це ефективність”
Овчаренко Євген “Відеоігри це ефективність”
 
Using FireMonkey as a game engine
Using FireMonkey as a game engineUsing FireMonkey as a game engine
Using FireMonkey as a game engine
 
Introduction to Procedural Contents Generation
Introduction to Procedural Contents GenerationIntroduction to Procedural Contents Generation
Introduction to Procedural Contents Generation
 

More from Felipe Prado

DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directoryDEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directoryFelipe Prado
 
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...Felipe Prado
 
DEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got antsDEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got antsFelipe Prado
 
DEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryptionDEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryptionFelipe Prado
 
DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101Felipe Prado
 
DEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a governmentDEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a governmentFelipe Prado
 
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardwareDEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardwareFelipe Prado
 
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...Felipe Prado
 
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustrationDEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustrationFelipe Prado
 
DEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interfaceDEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interfaceFelipe Prado
 
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locksDEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locksFelipe Prado
 
DEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud securityDEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud securityFelipe Prado
 
DEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portalsDEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portalsFelipe Prado
 
DEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchDEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchFelipe Prado
 
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...Felipe Prado
 
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucksDEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucksFelipe Prado
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationDEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationFelipe Prado
 
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vncDEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vncFelipe Prado
 
DEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devicesDEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devicesFelipe Prado
 
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsDEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsFelipe Prado
 

More from Felipe Prado (20)

DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directoryDEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
 
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
 
DEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got antsDEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got ants
 
DEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryptionDEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryption
 
DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101
 
DEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a governmentDEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a government
 
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardwareDEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
 
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
 
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustrationDEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
 
DEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interfaceDEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interface
 
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locksDEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
 
DEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud securityDEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud security
 
DEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portalsDEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portals
 
DEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchDEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitch
 
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
 
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucksDEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationDEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
 
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vncDEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
 
DEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devicesDEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devices
 
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsDEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

The amazing life & achievements of TASBot

  • 1. dwangoAC TASBot the perfectionist The amazing life & achievements of...The amazing life & achievements of...
  • 2. Agenda ● Intro to Speedrunning video games, Tool-Assisted Speedruns, and Emulators ● TASBot: Playing back a TAS on real hardware ● TAS techniques, history, evolution ● Emulator tools - memory search, Lua scripting ● Beyond emulators - disassemblers and Binary Ninja ● Remaining limitations - emulator differences, inaccuracies ● Key point: TAS tools are like really fun penetration testing tools ● Interactive demo of Pokemon Red, Q&A
  • 3. Speedrunning - playing games fast ● Inspired in part by in-game completion timers (Metroid) ● Many categories, ranging from "any%" to "low% no major glitches" ● SpeedDemosArchive.com and others track fastest completion times ● Strict rules and peer review ensure no cheats or macros are employed ● Highly entertaining, especially for a game you've played normally
  • 6. Tool-Assisted Speedruns: playing games even faster ● Also called Tool-Assisted Superplays, used as a noun or verb as TAS, TASing, TAS’ed, etc. ● Early TAS’s were usually made with tools built in to specific PC games (Doom, Quake) ● By the late 90’s, Doom Done Quick was well known, beating the game in 19:41
  • 7. Tool-Assisted Speedruns (TAS) ● Tool-Assisted Speedruns push the limits of the hardware and game rather than the human ● Emulator tools include saving / loading game states, frame advance, and scripting ● Movie files deterministically record every button press for later playback ● Let's be honest, it's basically the Doped Olympics, with no rules ○ Bad idea when it comes to humans, but a lot of fun when beating games ○ A 2003 run of SMB3 by Morimoto was unlabeled, causing much controversy ● TASVideos.org formed by Bisqwit, now hosts runs for many platforms
  • 9. ● Live demo: TASBot playing back a movie of SMB3 on real hardware ● Explanations forthcoming while TASBot happily mimics a real controller What, a live demo already?
  • 10. Rerecording enabled video game emulators and frameworks ● TAS techniques are enabled by emulators of video game consoles ○ FCEUX (NES), lsnes (SNES), VBA (Game Boy), BizHawk (multiple platforms) ● Some platforms, such as Windows, have rerecording frameworks ○ Hourglass, specialized projects like nethack-tas-tools ● Some emulators are very accurate, with scripting and memory search tools
  • 11. Emulation accuracy has improved over time ● Early emulators were highly inaccurate, often unusably so ● Emulation accuracy was improved through clean room reverse engineering ○ OK, sometimes using not-so-clean techniques and stolen manuals ● Some took emulation accuracy to extreme levels (Byuu) at the cost of usability ● This obsession allows movie files to match actual hardware, frame for frame
  • 12. "Console verification", all without voiding any (long expired) warranties ● In 2009, true of TASVideos.org used a PIC microcontroller to press NES buttons ● By 2011, micro500 built his NESBot and demonstrated the first replay of SMB1 ○ DarkKobold used an NESBot at SGDQ 2011 showing SMB2 and Wizards and Warriors 3 ● Through 2012, devices for other consoles were added, such as Genesis and N64 ● I (as dwangoAC) pitched TAS's for AGDQ 2014 resulting in true making a new device ○ I combined a board with a R.O.B. using Legos and others named him TASBot
  • 13. Console verification devices over time ● 2011 ○ NESBot from micro500 - original Instructable, breadboard design ○ Droid64bot from SoulCal - first 3D console verification ● 2012 ○ N64 bot from micro500 ● 2013 ○ SNES and Genesis Arduino bot from GhostSonic ○ NES/SNES replay device from true - streaming capable and inexpensive but slow ○ Multireplay device from true - self-contained device, faster datatarates ● 2015 ○ Game Boy Player Player from endrift - used for GBA games on a GameCube ● 2016 ○ TASLink - FPGA based, expensive, but very flexible and fast
  • 14.
  • 15. ● Effectively like having total control; the game becomes a playground Arbitrary Code Execution / Exploit
  • 16. OK, what the heck did I just see? ● The tools that allow us to beat games quickly also allow us to glitch them ● Sometimes we can make games execute opcodes of our choosing ● Doing so requires delving deeper into TAS tools
  • 17. Advanced emulator tools: Memory searching, Lua scripting, disassembly ● Search tools combined with frame advance and savestates can be very powerful ● Find Mario's speed: Save a state, reset memory search, run forward ○ By eliminating values that don't increment you can find the correct address ● Disassembly of RAM or ROM can tell you what will happen if it is triggered ○ Dissassemblers range in ability and level of integration but are very helpful
  • 18. Binary Ninja: Adding Reverse Engineering to the TASing toolbelt ● Recent tool focused on Reverse Engineering like IDA but more flexible ● Graph view visual representation with low level IL and annotation support ● Python scripting comes with NES support and ability to add new mappers ● Still in beta, future versions will add advanced searching and multi-module UI
  • 19. From boot to ending in 16 frames by changing input every other poll, eventually executing the controller addresses as opcodes and jumping to the end credits
  • 20. AGDQ 2016: Brain Age SGDQ 2016 SMB1+2+3+Lost Levels simultaneously Visual memory editor
  • 21. The tools and terminology in making a TAS translate to security research ● Vernacular differences abound, but the principles are the same ○ Savestate = VM snapshot ○ Frame advance = VM CPU tick ○ Glitch = Vulnerability ○ Total Control = Pwned / Arbitrary Control Exploit / root exploit (if consoles had such a concept) ● Learning how to make a TAS can be a fun and educational experience
  • 22. Anatomy of a complex Arbitrary Code Execution ● Pokemon Red can be compromised in a very unique way ● Values in the controller register treated as opcodes allow taking over SGB ● Once full access to SNES is gained, anything is possible
  • 23.
  • 24.
  • 25. References, thanks, and bibliography - http://tasvideos.org/TASBot.html - history of TASBot / historical information on how I organized teams of people to participate at Games Done Quick events, ultimately helping raise over $234k for charity and presenting in front of nearly 200,000 live viewers - http://arstechnica.com/gaming/2014/01/how-an-emulator-fueled-robot-reprogrammed-super-mario-world-on-the-fly/ - This is the first presentation I gave at a Games Done Quick event; this initial exploit caused TASBot to become a known name in the community - http://arstechnica.com/gaming/2015/01/pokemon-plays-twitch-how-a-robot-got-irc-running-on-an-unmodified-snes/ - This was quite possibly the most difficult (and arguably impressive) feat to date - https://www.alchemistowl.org/pocorgtfo/pocorgtfo10.pdf page 6 - Pokemon Plays Twitch: This journal article written by myself as well as the author of the lsnes emulator and the author of the chat payload - http://arstechnica.com/gaming/2016/07/how-to-beat-super-mario-bros-3-in-less-than-a-second/ - Details on the 16-frame SMB3 completion The antics described in this talk would not have been possible without the help of a very, very long list of talented TAS’ers and hackers both from TASVideos.org and elsewhere, including: micro500 - co-presenter, Ilari - Emulator coder, p4plus2 - payload author, Masterjun - TAS glitchfinder, true - hardware dev, TheAxeMan - Python script support, ais523 - Mathematician, pretty much everyone in #tasvideos, and a long list of others I’m forgetting as I always seem to do whenever I’m thanking people. Thanks also goes to the staff of Games Done Quick for organizing an awesome event and giving us a reason to do all the crazy things we do.
  • 26. Questions? Presented and written by Allan Cecil (AKA dwangoAC)