Unicorn Engine
eslint-config-prettier
Unicorn Engine | eslint-config-prettier | |
---|---|---|
15 | 17 | |
7,220 | 5,247 | |
1.7% | 1.0% | |
1.0 | 6.6 | |
17 days ago | about 1 month ago | |
C | JavaScript | |
GNU General Public License v3.0 only | MIT License |
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
- 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.
https://github.com/unicorn-engine/unicorn/issues/364
- 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.
https://github.com/unicorn-engine/unicorn/issues/364
eslint-config-prettier
-
Adding code formatting, linting, pre-commit hooks and beyond...
As I was reading the Prettier documentation I stumbled upon this blob which talks about how to make ESLint and Prettier play nicely with each other. It instructed to install eslint-config-prettier dependency in my project using the command npm install --save-dev eslint-config-prettier. Then I added prettier as part of the .eslintrc.cjs' extends array making prettier dependency part of the linting process. Lastly, I ran its cmd line helper npx eslint-config-prettier path/to/main.js to check if there were any ESLint rules which are unnecessary or would conflict with Prettier. The test results came out fine with no unnecessary or conflicting rules. The use case on how it works and why to use it is mentioned here.
-
It Takes 6 Days to Change 1 Line of Code
I wouldn’t say they’re arguing something completely different. A large subset of linting rules are by nature purely formatting rules. You can enforce line length with either prettier or a linter and both can auto fix the issue.
Because of this things like [`eslint-config-prettier`](https://github.com/prettier/eslint-config-prettier) exist to ensure conflicting eslint formatting rules are disabled if they can be handled by prettier.
-
[AskJS] Does anyone enjoy using Eslint?
If you use Prettier you should disable any and all eslint formatting rules. It's just not worth the hassle trying to make them "compatible". Fortunately there's an easy way to do that with a plugin.
- ESLint and Prettier conflict
-
Looking to improve... Review my code??
Also add this eslint plugin, which makes eslint play nice with prettier: https://github.com/prettier/eslint-config-prettier
-
Any way to disable prettier diagnostics in eslint-lsp
If you don’t care about the diagnostics, you should be using this instead. Prettier even says so.
-
React Library Builder using Rollup.js and Storybook
Linting is an important step in maintaining code quality, The React Library Builder uses ESLint and eslint-config-prettier for linting. You can modify linting rules by overriding them in the .eslintrc file.
-
Setting up ESLint & Prettier in ViteJS
eslint-config-prettier: An ESLint configuration which disables the formatting rules in ESLint that Prettier is going to be responsible for handling, hence avoiding any clashes.
-
Do you use eslint and/or prettier?
You can use both Eslint and Prettier if you care greatly about both linting and code formatting. Prettier had a plugin to disable Eslint's formatting rules.
-
Modern, faster alternatives to ESLint
The eslint-config-prettier package disables all ESLint rules that might conflict with Prettier. This lets us use ESLint configurations without letting it get in the way when using Prettier. We can then use the eslint-plugin-prettier package to integrate Prettier rules into ESLint rules. Finally, we must set the Prettier rules in the ESLint configuration file. Add the following configuration to the .eslintrc file in the root directory of the application:
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.
eslint-config-google - ESLint shareable config for the Google JavaScript style guide
MicroPython - MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
eslint-plugin-prettier - ESLint plugin for Prettier formatting
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]
react-webpack-5-tailwind-2 - React 17 Boilerplate with Webpack 6, Tailwind 2, using babel, SASS/PostCSS, HMR, dotenv and an optimized production build
Reverse-Engineering-Tutorial - A FREE comprehensive reverse engineering tutorial covering x86, x64, 32-bit ARM & 64-bit ARM architectures.
webpack-react-typescript-starter - React App with Typescript, using webpack5 and styled-components
TinyVM - TinyVM is a small, fast, lightweight virtual machine written in pure ANSI C.
prettier-eslint-cli - CLI for prettier-eslint
box86 - Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices
vitte - A non SSR Starter Template using Svelte, Vite, Tailwind JIT. And Routify.