Unicorn Engine
Reverse-Engineering-Tutorial
Our great sponsors
Unicorn Engine | Reverse-Engineering-Tutorial | |
---|---|---|
14 | 17 | |
7,126 | 9,947 | |
1.7% | - | |
1.3 | 8.5 | |
7 days ago | 8 days ago | |
C | Assembly | |
GNU General Public License v3.0 only | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Unicorn Engine
- Unicorn: Lightweight multi-platform, multi-architecture CPU emulator framework
- 86Box v4.0
-
Show HN: Tetris, but the blocks are ARM instructions that execute in the browser
OFRAK Tetris is a project I started at work about two weeks ago. It's a web-based game that works on desktop and mobile. I made it for my company to bring to events like DEF CON, and to promote our binary analysis and patching framework called OFRAK.
In the game, 32-bit, little-endian ARM assembly instructions fall, and you can modify the operands before executing them on a CPU emulator. There are two segments mapped – one for instructions, and one for data (though both have read, write, and execute permissions). Your score is a four byte signed integer stored at the virtual address pointed to by the R12 register, and the goal is to use the instructions that fall to make the score value in memory as high as possible. When it's game over, you can download your game as an ELF to relive the glory in GDB on your favorite ARM device.
The CPU emulator is a version of Unicorn (https://www.unicorn-engine.org/) that has been cross-compiled to WebAssembly (https://alexaltea.github.io/unicorn.js/), so everything on the page runs in the browser without the need for any complicated infrastructure on the back end.
Since I've only been working on this for a short period of time leading up to its debut at DEF CON, there are still many more features I'd eventually like to implement. These include adding support for other ISAs besides ARM, adding an instruction reference manual, and lots of little cleanups, bug fixes, and adjustments.
My highest score is 509,644,979, but my average is about 131,378.
I look forward to feedback, bug reports, feature requests, and strategy discussions!
-
It Takes 6 Days to Change 1 Line of Code
Entails hundreds of hours of single-stepping through that opcode in Linux kernel using an indirect operand pointing toward its own opcode (self-modifying code).
Even the extraordinaire Fabrice Bellard (author of QEMU) admitted that it is broke and did a total rewrite, which fixed tons of other issues.
- FOSS Simulator for debugging C code (even better if it supports some MCUs)
- Unicorn: Lightweight multi-platform, multi-architecture CPU emulation framework
- Unicorn - CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)
-
Vita3K android running Tales of Hearts R - A Glimpse of What's to come
Macdu (Vita3K dev) also stated that this game is CPU bound so they used a CPU emulator known as unicorn2 , this is also the reason for the slow speed
-
QEMU Version 7.0.0 Released
This is how I found out a snippet of assembly code that can actually distinguished between a KVM hypervisor and most of today’s emulator.
-
Top Python Tools for Malware Analysis. – PythonStacks
Unicorn is missing from that list.
The python CPU emulator with full program counter (PC) and general (and other CPU-specific) register set controls.
I use it to catch fileless malware in the second fastest dynamic manner. Also good for detecting Rowhammer/SPECTRE behaviors.
Disclaimer: one of the contributors and a contractor that frequently deploy this.
Reverse-Engineering-Tutorial
- New embedded and Rust hacking tutorials added - For anyone that missed my last post. Kevin Thomas is my mentor. We are both working together to bring free and low cost resources to those who are looking to learn and don't have money for expensive bootcamps/certs. Please enjoy his free tutorials!
- Step-By-Step Reverse Engineering Tutorial for beginners trying to get into Cybersecurity covering x86, x64, ARM32 and ARM64 and more
- Updated FREE Complete Reverse Engineering Tutorial to include C, C++ and Go
- Where is the best place to learn BINARY EXPLOITATION!?
- Updated Reverse Engineering Tutorial w/ Hacking Windows API step-by-step, under construction
-
Hacking-Windows: A FREE Windows C development course where we will learn the Win32API and reverse engineer each step utilizing IDA Free in both an x86 and x64 environment. (UNDER DEVELOPMENT)
Thank you so kindly! Yes it is if someone is lost I would suggest the larger course here to get greater background https://github.com/mytechnotalent/Reverse-Engineering.
- Welcome to the Reverse Engineer Developer & Hacker EMPIRE!
- A FREE comprehensive reverse engineering course covering x86, x64, 32-bit ARM & 64-bit ARM architectures.
- mytechnotalent/Reverse-Engineering - A FREE comprehensive reverse engineering course covering x86, x64, 32-bit ARM & 64-bit ARM architectures
What are some alternatives?
QEMU - Official QEMU mirror. Please see https://www.qemu.org/contribute/ for how to submit changes to QEMU. Pull Requests are ignored. Please only use release tarballs from the QEMU website.
Il2CppInspector - Powerful automated tool for reverse engineering Unity IL2CPP binaries
MicroPython - MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
fasmg - flat assembler g - adaptable assembly engine
capstone - Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings. [Moved to: https://github.com/capstone-engine/capstone]
arm64-examples - Arm64 / C examples
TinyVM - TinyVM is a small, fast, lightweight virtual machine written in pure ANSI C.
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系统编程的数十个最小操作系统。 已在QEMU 2.10中的Ubuntu 17.10主机和真实硬件上进行了测试。 Userland作弊网址:https://github.com/cirosantilli/linux-kernel-module-cheat#userland-assembly ARM裸机安装程序位于:https://github.com/cirosantilli/linux-kernel-module-cheat#baremetal- 设置 21世纪新政宣言(2020年4月5曰笫四次修改稿)(2020年6月19曰第七次修改,以下“【】”内文字为非正文内容的说明)20世纪苏联的消亡和东欧的大变革,使这21世纪初的现中国大陆成为世界关注的最主要焦点和影响新世纪文明发展的关键。特别是大陆这些年对外意识形态渗透,震撼整个世界。美中贸易战实际已打响人类意识形态领域最后的冷战,海峡两岸关系恶化,香港不断的百万人游行,南海邻国关系紧张。大陆经济急速下滑衰退,内外矛盾激化高端深感前所未有的生存危机。包括中共上下在内的几乎所有人都很清楚,大陆已到非政治体制改革而不可的时候了,大变革将是民意世潮下的必然结局。中国大陆内外即全球正合力促成这人口第一大国的大变革,这也为中国开创新政提供了一次最佳机会。综合各政体和各国现实,绝大多数国家改革选择了西方民主政体,但其固有的越来越明显的缺陷已成为有人攻击、拒绝或怀疑的理由。这也是近年来西方国家出现了宽容那必将灭亡的独裁专制政府的左翼当选,是不少选民失去信心的表现和原因。不仅如此,西方现民主制的
box86 - Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices
XJoy - Use Nintendo Switch JoyCons as a virtual Xbox 360 controller in Windows
qemu-t8030 - iPhone 11 emulated on QEMU
qr-asm - Generate a QR code from scratch with only ARM assembly.