Skip to content

cavefxa/monkeysee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

monkeysee

monkeysee is a disassembler for .prg files.

The .prg file extension represents a proprietary compiled format developed by Garmin. These files contain executable code that has been compiled from Garmin's proprietary Monkey-C programming language. The compiled .prg files are designed to run on Garmin's custom virtual machine architecture, which powers their wearable devices and smartwatches.

The tool attempts to extract opcodes, symbols, and strings from the .prg file itself. If symbols are not present it uses the api.db from their SDK: connectiq-sdk-lin-8.1.1-2025-03-27-66dae750f.

Building

cargo build --release

Usage

target/release/monkeysee <path/to/file.prg>.

Sample output:

[0x566]: 35 01                   argc 0x1
[0x568]: 16                      return
[0x569]: 16                      return
[0x56A]: 35 01                   argc 0x1
[0x56C]: 27 00 80 02 e6          spush 0x8002e6 ; globals
[0x571]: 30                      getm
[0x572]: 13 00                   lputv 0x0
[0x574]: 27 00 80 00 15          spush 0x800015 ; Toybox_Application
[0x579]: 30                      getm
[0x57A]: 27 00 80 02 9b          spush 0x80029b ; getApp
[0x57F]: 0d                      getv
[0x580]: 2a                      frpush
[0x581]: 0f 01                   invokem
[0x583]: 16                      return
[0x584]: 27 00 80 00 15          spush 0x800015 ; Toybox_Application
[0x589]: 30                      getm
[0x58A]: 27 00 80 03 11          spush 0x800311 ; initResources
[0x58F]: 0d                      getv
[0x590]: 2a                      frpush
[0x591]: 12 00                   lgetv 0x0
[0x593]: 27 00 80 00 a1          spush 0x8000a1 ; Rez
[0x598]: 0f 03                   invokem
[0x59A]: 02                      popv
[0x59B]: 16                      return
[0x59C]: 12 00                   lgetv 0x0
[0x59E]: 27 00 80 02 ff          spush 0x8002ff ; WatchFace
[0x5A3]: 0d                      getv
[0x5A4]: 27 00 80 00 18          spush 0x800018 ; <init>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages