evoasm / Evoasm.rb
Licence: agpl-3.0
An AIMGP (Automatic Induction of Machine code by Genetic Programming) engine
Stars: ✭ 91
Programming Languages
ruby
36898 projects - #4 most used programming language
Projects that are alternatives of or similar to Evoasm.rb
X86 Bare Metal Examples
Dozens of minimal operating systems to learn x86 system programming. Tested on Ubuntu 17.10 host in QEMU 2.10 and real hardware. Userland cheat at: https://github.com/cirosantilli/linux-kernel-module-cheat#userland-assembly ARM baremetal setup at: https://github.com/cirosantilli/linux-kernel-module-cheat#baremetal-setup 学习x86系统编程的数十个最小操作系统。 已在QE…
Stars: ✭ 3,985 (+4279.12%)
Mutual labels: x86-64, x64
Reloaded.Assembler
Minimal .NET wrapper around the simple, easy to use Flat Assembler written by Tomasz Grysztar. Supports both x64 and x86 development.
Stars: ✭ 17 (-81.32%)
Mutual labels: x64, x86-64
profiler-api
The portable version of JetBrains profiler API for .NET Framework / .NET Core / .NET / .NET Standard / Mono
Stars: ✭ 21 (-76.92%)
Mutual labels: x64, x86-64
Labeless
Labeless is a multipurpose IDA Pro plugin system for labels/comments synchronization with a debugger backend, with complex memory dumping and interactive Python scripting capabilities.
Stars: ✭ 378 (+315.38%)
Mutual labels: x86-64, x64
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (-48.35%)
Mutual labels: x64, x86-64
Distorm
Powerful Disassembler Library For x86/AMD64
Stars: ✭ 829 (+810.99%)
Mutual labels: x86-64, x64
Capstone.NET
.NET Core and .NET Framework binding for the Capstone Disassembly Framework
Stars: ✭ 108 (+18.68%)
Mutual labels: x64, x86-64
vox
Vox language compiler. AOT / JIT / Linker. Zero dependencies
Stars: ✭ 288 (+216.48%)
Mutual labels: x86-64, jit
Opensmalltalk Vm
Cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak.
Stars: ✭ 345 (+279.12%)
Mutual labels: jit, x86-64
Rappel
A linux-based assembly REPL for x86, amd64, armv7, and armv8
Stars: ✭ 818 (+798.9%)
Mutual labels: x86-64, x64
Evoasm
Description
Evoasm is an AIMGP (Automatic Induction of Machine code by Genetic Programming) engine.
You give it a set of examples, that is, several input/output pairs, that describe a program's behavior. It will then try to come up with a short program (in the form of machine code) that follows your specification, by means of genetic programming. Evoasm contains a JIT that executes the generated machine code on the fly.
Currently, the only supported architecture is x86-64.
Features
- Fast JIT
- x86-64 up to AVX2 (no FPU)
- Lightweight backend C library with no third-party dependencies
- Support for floating-point and integer inputs/outputs including SIMD vectors
- Automatically generated and verified instruction encoder
- Parallel island model using OpenMP
- Ruby bindings
Installation
$ git clone --recursive https://github.com/evoasm/evoasm
$ bundle install
# compile libevoasm, omit --no-omp if your compiler has OpenMP support
$ bundle exec rake compile -- --no-omp
$ bundle exec ruby docs/examples/sym_reg.rb # run example
Requirements
- Ruby (MRI >= 2.3)
- Capstone for disassembling (optional).
- Gnuplot for visualizing loss functions (optional)
- POSIX-compliant OS (Linux and Mac OS X should both work).
Documentation
Please see the API documentation, have a look at the examples or the test cases.
Contributing
- Fork it ( https://github.com/furunkel/evoasm/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
License
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].