You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
_xeroxz 095f1b17d0
init commit
3 years ago
..
Keystone.Net init commit 3 years ago
Keystone.Net.Tests init commit 3 years ago
.gitattributes init commit 3 years ago
.gitignore init commit 3 years ago
Keystone.Net.sln init commit 3 years ago
MIGRATION.md init commit 3 years ago
README.md init commit 3 years ago

README.md

Keystone.Net

.NET Standard bindings for Keystone.

Usage

using Keystone;

using (Engine keystone = new Engine(Architecture.X86, Mode.X32) { ThrowOnError = true })
{
    ulong address = 0;

    keystone.ResolveSymbol += (string s, ref ulong w) =>
    {
        if (s == "_j1")
        {
            w = 0x1234abcd;
            return true;
        }

        return false;
    };
    
    EncodedData enc = keystone.Assemble("xor eax, eax; jmp _j1", address);

    enc.Buffer.ShouldBe(new byte[] { 0x00 });
    enc.Address.ShouldBe(address);
    enc.StatementCount.ShouldBe(3);
}

For those who already used the bindings before their last update, many things have changed. You can migrate your existing code easily using the migration guide.