/atk

Asobo Toolkit

Primary LanguageJavaScriptMIT LicenseMIT

ATK

Asobo Toolkit

This repository is a relative of the main FMTK repository.

Supported Games

Asobo Studio Games

  • Sitting Ducks (EU,PL,RU)
  • The Mummy: The Animated Series (PL,RU)
  • CT Special Forces: Fire for Effect/Special Forces: Nemesis Strike (Steam)
  • Garfield: A Tail of Two Kitties/Garfield 2 (US,EU,RU)
  • Ratatouille (US,RU,DE,ES,PT,FR,NL,Scandinavia,PL,BR,Action Pack)
  • WALL-E (US,Steam US,RU,DE,UK)
  • FUEL (US,RU,Steam,Steam Demo)
  • Up (US,RU)
  • A Plague Tale: Innocence (EGS,Steam)

Black Sheep Studio Games

  • Championsheep Rally
  • The Ugly Duckling and Me
  • The Magic Roundabout

Documentation

The documentation for commands is located on the atk wiki.

Getting Started

Prerequisites

Run the commands below the list to install everything.

Using winget or manual installation

winget install python3
pip3 install frida-tools

You may need to add a directory to your Path environment variable to run Frida, pip should warn you if this is the case, from the command line. Check out this StackOverflow answer if you are getting the 'frida' is not recognized as an internal or external command, operable program or batch file. error and need help.

now download atk.js from this repo

Running

Replace the FUEL example data with whatever is appropriate for the game you are running.

Choose one of the 2 options.

Double check that you are running Frida from the correct directory. Ideally you will run Frida from the directory containing the executable and atk.js.

Option 1) Instrument an already running game (Recommended)

frida -n FUEL.exe -l atk.js

Option 2) Launch the game with instrumentation

This option will not work on all games. You may have to circumvent DRM/Anti-debug to launch the game directly.

If this option doesn't work, try again but use the full path to the executable. Ex: -f "D:\SteamLibrary\steamapps\common\FUEL\FUEL.exe".

frida -f FUEL.exe -l atk.js -o atk.log

To pass arguments to the game EXE on launch. Ex: -W

frida -f FUEL.exe -l atk.js -o atk.log -- -W

REPL

Once Frida has instrumented the game you should be greeted with a repl:

[Local::FUEL.exe]->

You can call any atk function here:

Functions

runCommand(<cmd : string>)

Run the command string.

[Local::FUEL.exe]-> runCommand("SetTimeFactor 0.5")

dumpCommandNames()

Print the array of command names that have been registered while the game was instrumented. If the game was instrumented after launch then this will probably be empty because one of the first things to happen is command registration.

[Local::FUEL.exe]-> dumpCommandNames()

dumpCommandNamesPretty()

Print the array of command names that have been registered while the game was instrumented with newlines. If the game was instrumented after launch then this will probably be empty because one of the first things to happen is command registration.

[Local::FUEL.exe]-> dumpCommandNamesPretty()

enableLogCommands()

Log commands to the console as they run.

[Local::FUEL.exe]-> enableLogCommands()

disableLogCommands()

Stop logging commands to the console as they run.

[Local::FUEL.exe]-> disableLogCommands()

addExcludedCommand(<cmd : string>)

Add the command prefix string to the list of commands excluded from logging (case insensitive).

[Local::FUEL.exe]-> addExcludedCommand("menu")

removeExcludedCommand(<cmd : string>)

Remove the command prefix string from the list of commands excluded from logging (case insensitive).

[Local::FUEL.exe]-> removeExcludedCommand("menu")

clearExcludedCommands()

Clear the list of commands excluded from logging.

[Local::FUEL.exe]-> clearExcludedCommands()

enableContextMenu()

Sitting Ducks, The Mummy: The Animated Series, CT Special Forces: Fire for Effect/Special Forces: Nemesis Strik, Garfield: A Tail of Two Kitties/Garfield 2, and Ratatouille only! Enable the right-click menu present in later games.

[Local::overlay.exe]-> enableContextMenu()

disableContextMenu()

Sitting Ducks, The Mummy: The Animated Series, CT Special Forces: Fire for Effect/Special Forces: Nemesis Strik, Garfield: A Tail of Two Kitties/Garfield 2, and Ratatouille only! Disable the right-click menu present in later games.

[Local::overlay.exe]-> disableContextMenu()

enableDPadCheats()

WALL-E only! Enable the DPad cheats.

[Local::WALL-E.exe]-> enableDPadCheats()

disableDPadCheats()

WALL-E only! Disable the DPad cheats.

[Local::WALL-E.exe]-> disableDPadCheats()

Development

Frida JavaScript API

Edit the index.js file then run npm run-script build to generate a new minified atk.js script.

Pull requests are welcome.