An interactive command-line REPL to load, inspect, and call functions from any native or managed DLL without writing any glue code.
I am an independent developer focused on building low-level engineering tools and diagnostics using C#. Believing software utility should match the clean efficiency found in natural engineering patterns, I design systems built to maximize clarity and execution speed.
This platform serves as the digital home and testing distribution hub for my utility projects. Here, you can access compiled releases, explore software technical documentation, or drop me a line directly to discuss binary inspection tooling architectures.
Naltu is a standalone command-line REPL. Give it a DLL path and a function name, and it calls that function immediately — no project setup, no compilation, no import libraries. It auto-detects whether the DLL is a native binary or a managed .NET assembly and routes accordingly.
LoadLibraryW.exports command parses the PE32/PE32+ export directory directly from disk and lists every exported function name.call funcName sig=int(int,int) 3 7 to call any exported C-ABI function. Supports cdecl and stdcall conventions.invoke TypeName MethodName arg1 arg2 to call any public or private static or instance method.Naltu.exe mylib.dll to load a DLL immediately without entering the REPL first.cmd > load demo.dll
✔ Loaded native DLL → demo.dll
────────────────────────────────────
cmd > exports
1 add 2 subtract
3 greet 4 get_version
────────────────────────────────────
cmd > call add sig=int(int,int) 3 7
✔ Return : 10
────────────────────────────────────
cmd > call greet sig=ptr(str) World
✔ Return : "Hello, World! (from C)"
────────────────────────────────────
cmd > invoke MathHelper Add 3 7
✔ Return: 10
────────────────────────────────────
cmd > unload
✔ Unloaded → demo.dll
Every command available in the Naltu REPL, exactly as shown in the built-in help output.
| Command | Description |
|---|---|
| load <path> | Load a native (.dll) or managed .NET DLL. Auto-detects which kind it is. Replaces any currently loaded session. |
| exports / list | For native DLLs: parses the PE export table and prints every exported function name. For managed assemblies: lists all public types. |
| info | Shows the current session: file path, kind (native or managed), handle address, and type list for managed assemblies. |
| call <func> [sig=<sig>] [args…] | Calls an exported function from a native DLL. Specify the type signature with sig= (default is int()). Arguments follow after. See the Signatures table below for all supported forms. |
| invoke <Type> <Method> [args…] | Invokes a method on a managed .NET assembly by type name and method name. Supports static and instance methods. Arguments are auto-converted to the correct parameter types. |
| unload | Unloads the current DLL, freeing the native handle or releasing the assembly reference. |
| clear / cls | Clears the terminal screen and redraws the Naltu banner. |
| help / ? | Prints the full command reference inline. |
| exit / quit / q | Exits the REPL and frees all resources. |
| --gui | Launches the WinForms GUI interface. Redirects all console output to the GUI output panel. Cannot be used again once already in GUI mode. |
| [command] --help | Shows detailed usage information for a specific command. Example: call --help prints the full signature reference for call. |
The sig= parameter tells Naltu how to marshal arguments and the return value when calling a native function. Format: returnType(paramType,paramType,...)
| sig= value | C prototype equivalent | Notes |
|---|---|---|
| int() | int fn(void) | Default. No arguments, returns an integer. |
| void() | void fn(void) | No arguments, no return value. |
| ptr() | const char* fn(void) | No arguments. Return value is read as a null-terminated ASCII string. |
| int(int) | int fn(int a) | One integer argument. |
| int(int,int) | int fn(int a, int b) | Two integer arguments. |
| double(double,double) | double fn(double a, double b) | Two double arguments, returns a double. |
| ptr(str) | const char* fn(const char* s) | One string argument (marshalled as LPStr). Return value read as a string. |
| int(stdcall) | int __stdcall fn(void) | StdCall calling convention. Used for Win32 API functions like MessageBeep. |
Found an unhandled edge-case exception or want to request a new call signature? Use the instant contact window to dispatch a direct message straight to the core development queue.
Direct Email
codingnatural@gmail.com