Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

firi-module-template

Template for third-party FIRI Unlocker modules - small C++ programs that get embedded inside FIRI Unlocker and run in-memory (no extra files, no registry, works in Safe Mode / WinPE / WinRE).

What a module is

  • A normal x64 PE DLL image compiled against module_api.h, delivered as a .firiumodule file.
  • It carries a FIRIMETA RT_RCDATA resource with a FiriMetaBin descriptor (id, name, version, author, labels, declared capabilities/flags), written by genmeta.
  • FIRI embeds the whole file as a FIRIMOD-<id> resource inside FIRI Unlocker and executes it in-memory with its own PE mapper - no installation, no files left on disk.

Building

Prerequisite: MinGW-w64 toolchain (w64devkit). Edit W64DK= in build.bat to point at your installation, then:

build.bat

Output: hello.firiumodule.

Adding the module to FIRI Unlocker

Inside FIRI Unlocker:

  • Modules menu -> a (add module) -> enter the path, or
  • CLI: firiu.exe module-add hello.firiumodule

FIRI scans the import table, compares it with the declared capabilities and warns about dangerous access (registry, files, network, ...). The module then appears in the Modules menu where its panel shows name/version/author/labels, a clickable GitHub link, and the buttons it registered.

Extending

  1. Edit template.cpp - register buttons/tabs/labels in FiriModuleEntry, add functionality.
  2. Edit module-meta.txt (id, name, version, author, label: ... = ..., caps: ..., flag: ...).
  3. Rebuild with build.bat.

API surface (module_api.h)

extern "C" int FiriModuleEntry(const FiriApi* api);  // required
extern "C" int FiriModuleRun(const FiriApi* api);    // optional, "run" action

FiriApi provides output, yes/no prompts, capturing any built-in FIRI Unlocker command (RunCapture), SysInfo, screen control, and registration calls (AddTab, AddButton, AddLabel) that are valid while FiriModuleEntry executes. Fields are fixed and do not reorder; keep module_api.h in sync with the firi_api.h shipped inside FIRI Unlocker.

Capabilities

Declare what your module touches in module-meta.txt (caps:), e.g. file, registry. The host shows a warning on add unless Developer Mode is enabled. Do not lie - the import table is checked.

License

FIRI Project License (see LICENSE).

About

A template of a module for FIRI Unlocker.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages