Code Monkey home page Code Monkey logo

binja-scumm6's Introduction

SCUMM6 Architecture for Binary Ninja

This plugin aims to provide a comprehensive view to how SCUMM6-based games work internally.

descumm-tool can already decompile single SCUMM6 scripts, but it doesn't show related scripts, nor the shared memory access.

Before opening the files, the .000 + .001 files from the game need to be converted to the .bsc6 format that de-xors them, squashes them together and extracts all the strings to a separate section.

$ python converter/cli.py DOTTDEMO.000 DOTTDEMO.001 -o dottdemo.bsc6

Running tests

$ ptw --afterrun ./run_mypy.sh --beforerun reset

Limitations

  • Array reads/writes aren't properly (need to create a separate segment for them, and do lifting)
  • Message Parts (newlines, waits, etc) aren't currently shown in talk_actor() calls.

Peculiarities

Binary Ninja doesn't normally support state in Architectures, but we need it in order to properly mark function calls and some other stuff.

In order to decoded text strings outside of Disassembler view we need to extract them to a separate segment, otherwise they'd be considered part of the decoded instructions, and the text won't be visible.

binja-scumm6's People

Contributors

mblsha avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.