Before going to the Installation / Tutorial panels below, you might want to see Unicorn.js in action. Below you have simple demos, showing realtime client-side emulation of foreign architectures thanks to Unicorn.js, as well as Capstone.js and Keystone.js to assemble/disassemble instructions.
Unicorn is a lightweight multi-architecture CPU emulator framework originally developed by Nguyen Anh Quynh et al. and released under GPLv2.
To use the Unicorn.js in your web application, download and include it with:
or install it through the Bower command:
bower install unicornjs
var addr = 0x10000; var code = [ 0x37, 0x00, 0xA0, 0xE3, // mov r0, #0x37 0x03, 0x10, 0x42, 0xE0, // sub r1, r2, r3 ]; // Initialize engine var e = new uc.Unicorn(uc.ARCH_ARM, uc.MODE_ARM); // Write registers and memory e.reg_write_i32(uc.ARM_REG_R2, 0x456); e.reg_write_i32(uc.ARM_REG_R3, 0x123); e.mem_map(addr, 4*1024, uc.PROT_ALL); e.mem_write(addr, code) // Start emulator var begin = addr; var until = addr + code.length; e.emu_start(begin, until, 0, 0); // Read registers var r0 = e.reg_read_i32(uc.ARM_REG_R0); // 0x37 var r1 = e.reg_read_i32(uc.ARM_REG_R1); // 0x333