.NETAsm, a JIT Native Code Injection Library

  •        190

NetAsm provides a hook to the .NET JIT compiler and enables to inject your own native code in replacement of the default CLR JIT compilation. With this library, it is possible, at runtime, to inject x86 assembler code in CLR methods with the speed of a pure CLR method call and...




Related Projects

xbyak - a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header

  •    C++

This is a header file which enables dynamically to assemble x86(IA32), x64(AMD64, x86-64) mnemonic. header file only you can use Xbyak's functions at once if xbyak.h is included.


  •    Assembly

Sharp is a software compiler. It converts C# into an assembler language so that it can be used to for system level tasks in native code.

AsmHighlighter - x86 ASM Syntax Highlighting AddIn for Visual Studio


AsmHighlighter is an extension to Visual Studio 2008 that provides syntax highlighting for x86 ASM language. MASM and NASM syntaxes are supported.

flat assembler

  •    Assembly

Fast and efficient self-assembling 80x86 assembler for DOS/Win32/Linux; with 8086-80486/Pentium/MMX/SSE/AVX/XOP instructions support, 16-bit/32-bit/64-bit code, binary/MZ/PE/COFF/ELF output formats.

Monate - Object Oriented Assembly

  •    Assembly

Monate is an Object Oriented Programming Assembly . It's a pre-assembler that compiles x86-x64 OOP assembly codes to non-OOP codes and then compiles them by FASM/NASM assembler . You can create classes and use them in your assembly codes . Monate is easy to use and powerful .

asm-dom - A minimal WebAssembly virtual DOM to build C++ SPA (Single page applications)

  •    C++

asm-dom is a minimal WebAssembly virtual DOM to build C++ SPA (Single page applications). You can write an entire SPA in C++ and compile it to WebAssembly (or asmjs as fallback) using Emscripten, asm-dom will call DOM APIs for you. This will produce an app that aims to execute at native speed by taking advantage of common hardware capabilities, also, you can use your C/C++ code without any change, you haven't to create a binding layer to use it (as we have to do if we want to use a C++ lib from JS). Basically we are creating an app in C++ that call javascript if needed instead of the opposite. You can write only once in C++ and share as much code as possible with desktop/mobile apps and web site. If you want to learn more about performance, please see this. asm-dom is a low-level virtual DOM library. It is unopinionated with regards to how you should structure your application.


  •    Java

A assembler plugin for Eclipse, to use different assembler-programs (e.g. NASM, TASM or MASM) as back-end compiling. It include linker and debugger controlling, too. And you get a optimiced ASM-File-Editor with this plugin.

Small Deterministic D Embedded Assembler Register Machine


SIDEARM is a minimal, virtual register machine that acts as an interpreter/shell for valid AVR assembly language execution in real-time by the virtual machine.

An AES/rijndael encryption library

  •    C

A library implementing the AES (American Encryption Standard) or Rijndael algorithms, intended to provide a neat packaged solution for other projects to use. Package includes C and Intel Pentium/MMX assembler versions of AES, along with an extensive

FUEL Virtual Machine

  •    Assembly

A virtual machine providing a dynamic, portable assembler; JIT compilation; C bindings; and Forth semantics.


  •    Assembly

SoftWire was the precursor to TransGaming's SwiftAsm. SwiftAsm is an optimizing run-time x86 assembler that can be used as a JIT compiler back-end for scripting languages, or for dynamic code generation of efficient processing pipelines.

shellen - :cherry_blossom: Interactive shellcoding environment to easily craft shellcodes

  •    Python

Shellen is an interactive shellcoding environment. If you want a handy tool to write shellcodes, then shellen may be your friend. Shellen can also be used as an assembly or disassembly tool. keystone and capstone engines are used for all of shellen's operations.

x64asm - x86-64 assembler library

  •    C++

Simplicity: x64 asm does NOT include a register allocator, instruction scheduler, control flow graph builder, or any of the features you would expect of a full compiler. It is a low-level library for building YOUR optimizing compiler. Completeness: x64asm supports the entire ring 3 application level subset of the x86_64 instruction set, including the most recent AVX2/BMI1/BMI2/FMA extensions.

trapcc - Computing with traps

  •    C

This is a proof by construction that the Intel MMU's fault handling mechanism is Turing complete. We have constructed an assembler that translates 'Move, Branch if Zero, Decrement' instructions to C source that sets up various processor control tables. After this code has executed, the CPU computes by attempting to fault without ever executing a single instruction. Optionally, the assembler can also generate X86 instructions that will display variables in the VGA frame buffer and will cause control to be transferred between the native (display) instructions and 'weird machine' trap instructions. To read up on the awesome idea of weird machines and their uses, see @sergeybratus's and @halvarflake's work. In short, we are trying to find hidden state and derive computation of it in unexpected places. One practical use of this technique is for code obfuscation - many (kernel) debuggers will break due to the frequent context switches (esp. cooperative debuggers like KGDB) and analyzing the binary is going to be extraordinaly confusing, especially if normal X86 instructions and trap instructions are interleaved to do weird control transfer. Furthermore, out of the many virtual machines only Bochs runs such trap based programs correctly (and there are other tricks to distinguish bochs from a real box).

sql.js - SQLite compiled to JavaScript through Emscripten

  •    Javascript

sql.js is a port of SQLite to JavaScript, by compiling the SQLite C code with Emscripten. It uses a virtual database file stored in memory, and thus doesn't persist the changes made to the database. However, it allows you to import any existing sqlite file, and to export the created database as a javascript typed array. There is no C bindings or node-gyp compilation here, sql.js is a simple javascript file, that can be used like any traditional javascript library. If you are building a native application in javascript (using Electron for instance), or are working in node.js, you will likely prefer to use a native binding of SQLite to javascript.


  •    C

This library is meant for high performance calculations for science or 3D games/rasterizers using SIMD instructions of x86 processors to allow an unparalleled level of optimization. This takes advantage of MMX, 3DNow!, 3DNow!+/MMX+, amp; SSE/SSE2/SSE3/SSSE3

JIT Jabber ICQ Transport

  •    C

JIT is ICQ transport for Jabber instant-messagning systems. JIT works in threaded environment and can work on multi-processor platforms. JIT uses libicq2000 and supports users search, sms messages, vcards, web presence ...

jit-grunt - JIT(Just In Time) plugin loader for Grunt.

  •    Javascript

A JIT(Just In Time) plugin loader for Grunt. Load time of Grunt does not slow down even if there are many plugins. umm...

SAsmE - Smart Asm Editor for PIC micros

  •    C++

SAsmE is a cross-platform lightweighted Asm editor for Microchip PIC18 mcus. A translation unit that converts in a few seconds brainstruggling asm source code to human readable pseudo-code. It can save hours when analyzing asm assemblies.

Rubinius - Ruby Virutal Machine

  •    Ruby

Rubinius is an environment for the Ruby programming language providing performance, accessibility, and improved programmer productivity. Rubinius includes a bytecode virtual machine, Ruby syntax parser, bytecode compiler, generational garbage collector, just-in-time (JIT) native machine code compiler, and Ruby Core and Standard libraries.