SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 C++ X86 Projects
-
x64dbg
An open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
xray-16
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. Join OpenXRay! ;)
-
keystone
Keystone assembler framework: Core (Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) + bindings (by keystone-engine)
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
dosbox-staging
DOSBox Staging is a modern continuation of DOSBox with advanced features and current development practices.
-
x86RetSpoof
Invoke functions with a spoofed return address. For 32-bit Windows binaries. Supports __fastcall, __thiscall, __stdcall and __cdecl calling conventions. Written in C++17.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Some other instruction sets in some JSON: https://github.com/asmjit/asmjit/tree/master/db
Sorry for the late answer. Yes, there is. We hoped a Keystone-based[1] plugin would be a better alternative since it's based on the LLVM code, but the project looks abandoned now[2].
[1] https://github.com/keystone-engine/keystone/
[2] https://github.com/keystone-engine/keystone/issues/560
"A fast usermode x86 and x86-64 emulator for Arm64"
The idea is to write a C++ model that that produces cycle accurate outputs of the branch predictor, core pipeline, queues, memory latency, cache hierarchy, prefetch behaviour, etc. Transistor level accuracy isn't needed as long as the resulting cycle timings are identical or near identical. The improvement in workload runtime compared to a Verilog simulation is precisely because they aren't trying to model every transistor, but just the important parameters which effect performance.
Let's take a simple example: Instead of modeling a 64-bit adder in all its gory transistor level detail, you can just have the model return the correct data after 1 "cycle" or whatever your ALU latency is. As long as that cycle latency is the same as the real hardware, you'll get an accurate performance number.
What's particularly useful about these models is they enable much easier and faster state space exploration to see how a circuit would perform, well before going ahead with the Verilog implementation, which relatively speaking can take circuit designers ages. "How much faster would my CPU be if it had a 20% larger register file" can be answered in a day or two before getting a circuit designer to go try and implement such a thing.
If you want an open source example, take a look at the gem5 project (https://www.gem5.org). It's not quite as sophisticated as the proprietary models used in industry, but it's a used widely in academia and open source hardware design and is a great place to start.
Project mention: Revng translates (i386, x86-64, MIPS, ARM, AArch64, s390x) binaries to LLVM IR | news.ycombinator.com | 2024-01-12Usually such things are called lifters. Wonder how this tool compares to other existing LLVM IR lifters, such as remill[0] and rellume[1].
0: https://github.com/lifting-bits/remill
DOSBox Staging has the best CRT emulation I've seen. It really feels like going back to a VGA monitor.
See the screenshots on https://dosbox-staging.github.io/
Project mention: SIMD based custom object and key-value pair sorting in C++ | news.ycombinator.com | 2024-02-14
Project mention: Differ: Tool for testing and validating transformed programs | news.ycombinator.com | 2024-01-31Differential fuzzing is woefully underutilized -- our experience is that it consistently[1] finds[2] bugs that "traditional" fuzzing techniques struggle to discover, and that the primary obstacles to its adoption are harness and orchestration complexity. DIFFER goes a long way towards overcoming those obstacles!
(FD: My company.)
[1]: https://github.com/trailofbits/mishegos
[2]: https://x509-limbo.com/
C++ X86 related posts
- The 6502 instruction set as a database
- Revng translates (i386, x86-64, MIPS, ARM, AArch64, s390x) binaries to LLVM IR
- 30 years of DOOM: new code, new bugs
- FEX 2305 Tagged!
- Sekiro: Shadows Die Twice On Android using Fex-Emu Turnip DXVK
- Genshin, compatibility, ARM processors, surface pro x, mac M1
- Show HN: A toy bootloader written in C++
-
A note from our sponsor - SaaSHub
www.saashub.com | 24 Apr 2024
Index
What are some of the best open-source X86 projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | x64dbg | 43,170 |
2 | asmjit | 3,801 |
3 | xray-16 | 2,831 |
4 | edb-debugger | 2,579 |
5 | keystone | 2,183 |
6 | FEX | 1,802 |
7 | OpenHD | 1,793 |
8 | gem5 | 1,412 |
9 | sse2neon | 1,220 |
10 | remill | 1,177 |
11 | dosbox-staging | 1,169 |
12 | x86-simd-sort | 794 |
13 | boomerang | 364 |
14 | XOpcodeCalc | 352 |
15 | tscns | 268 |
16 | mishegos | 219 |
17 | x86RetSpoof | 157 |
18 | hausboot | 78 |
19 | l4re-core | 65 |
20 | wibo | 48 |
21 | HadesDbg | 44 |
22 | Macaron | 43 |
23 | HellTracer | 35 |
Sponsored