sciencemanx / ctf_import

Run basic functions from stripped binaries cross platform

Home Page:van.prooyen.com/projects/#ctfimport

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ctf_import

A small library that allows you to run basic functions from stripped binaries cross platform

Website

Usage

This library is designed for you to be able to quickly call functions from a stripped binary. All you need is the file name, the function offset, and the function signature. You can get these by reverse engineering the binary in IDA or Binary Ninja.

void *import(char *file, size_t offset)

#include "ctf_import.h"

int main() {
    int (* fib)(int);
    
    // a.out is a binary with a fibonacci function at offset 0xf00
    fib = (int (*)(int)) import("a.out", 0xf00);
    
    printf("%d %d %d %d %d\n", fib(1), fib(2), fib(3), fib(4), fib(5));
}

To compile:

$ gcc example.c ctf_import.c -o example
$ ./example
> 1 1 2 3 5

Notes

Although the code will run "cross-OS", it will not run cross architecture. Additionally, this does not handle syscalls and anything that interacts with globals.

About

Run basic functions from stripped binaries cross platform

van.prooyen.com/projects/#ctfimport


Languages

Language:C 100.0%