GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com β€” droidground/library at main Β· SECFORCE/droidground

Expand file tree

/

library

/
Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

 

History

History
History
/

library

/
Copy path

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
README.md
README.md
 
 
clipboard.js
clipboard.js
 
 
debugger_connected_bypass.js
debugger_connected_bypass.js
 
 
enum_classes.js
enum_classes.js
 
 
enum_dex_classes.js
enum_dex_classes.js
 
 
enum_methods.js
enum_methods.js
 
 
find_pattern.js
find_pattern.js
 
 
get_android_id.js
get_android_id.js
 
 
get_app_env_info.js
get_app_env_info.js
 
 
hello.js
hello.js
 
 
hook_method.js
hook_method.js
 
 
library.json
library.json
 
 
log_interceptor.js
log_interceptor.js
 
 
trace.js
trace.js
 
 

README.md

Outline

πŸ“š Frida Script Library

This folder contains a curated set of jailed Frida scripts used within the DroidGround platform. These scripts provide limited, safe dynamic instrumentation capabilities to challenge participants without granting them full control over the Frida runtime.

πŸ”’ Why Jailed Frida?

Frida is an incredibly powerful dynamic instrumentation toolkit, but this power also makes it risky in a competitive or educational environment. Unrestricted Frida access can lead to:

  • Challenge bypassing by directly reading memory or intercepting flag values
  • Sandbox escape attempts or tampering with the platform
  • Unintended crashes due to poorly written or malicious scripts

To address this, we designed a jailed Frida mode that:

  • Offers predefined, challenge-author-approved scripts
  • Allows users to run scripts with controlled arguments
  • Prevents abuse while still enabling deep learning and interactivity

🧩 Script Structure & Convention

All Frida scripts in this folder must follow a common interface to be compatible with the platform.

πŸ“ File Placement

  • Place your script in this folder: library/
  • Add an entry in library.json to register it (see below)

πŸ” Required Exports

Each script must export exactly two functions using Frida’s RPC interface:

rpc.exports = {
  run(args) {
    // Your script logic here
  },

  schema() {
    return {
      type: "object",
      properties: {
        // Define expected args here
      },
      required: [
        /* required arg names */
      ],
      additionalProperties: false,
    };
  },
};
  • run: The run function must only allow one argument (use args as convention) which should be an Object containing all the required fields.
  • schema: The schema function should either return null (if no arguments are needed) or the JSON schema (ajv format) that matches the expected args.

πŸ“š library.json Format

This file indexes all scripts in the library so the platform can present them in the UI.

[
  {
    "filename": "enumClasses.js",
    "description": "Enumerate all Java classes"
  },
  {
    "filename": "enumMethods.js",
    "description": "Enumerate all methods declared in a Java class"
  }
]

⚠️ Ensure each entry is kept in sync with the corresponding script file.

βœ… Contribution Checklist

When adding a new script:

  • Save your script to the library/ folder.
  • Export run(args) and schema().
  • Add an entry to library.json with a clear description.
  • Test your script on a sample app to verify it runs and validates correctly.
You are visitor 01402503 β€” GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800Γ—600. No cookies required.