Exetools  

Go Back   Exetools > General > Source Code

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 09-20-2026, 06:59
Gladiyator's Avatar
Gladiyator Gladiyator is offline
Family
 
Join Date: Jan 2009
Location: .:: Tehran ::.
Posts: 117
Rept. Given: 79
Rept. Rcvd 65 Times in 21 Posts
Thanks Given: 145
Thanks Rcvd at 146 Times in 41 Posts
Gladiyator Reputation: 65
Lightbulb Golang-REVoid — a Go source virtualizer & obfuscator

Just open-sourced a Delphi 10.2 project I’ve been working on: Golang-REVoid — a Go source virtualizer & obfuscator.

Most code-protection tools focus on binary-level techniques. I took a different route: compile selected Go functions into a custom stack-based VM bytecode, apply several obfuscation passes, and emit a fully self-contained, compilable Go program that still runs with the standard toolchain.

What it does
Virtualizes pure computational functions (arithmetic, control flow, loops, locals, calls)
Encrypts constants at compile time and decrypts them only inside the VM
Applies control-flow flattening, instruction substitution, and safe opaque predicates
Keeps complex or unsupported functions native and lets the VM call them when needed
Produces a single .go file that includes the complete VM runtime — no external dependencies beyond the Go standard library

Why Delphi?
I wanted a fast, native Windows console tool with full control over the compiler and emitter pipeline. Delphi 10.2 turned out to be an excellent fit for building a reliable, dependency-free binary that developers can drop into their workflow.
The project includes careful handling of jump targets and loop back-edges so that virtualized for loops remain correct after obfuscation — a common source of subtle bugs in this class of tools.

If you work with Go, software protection, or just enjoy seeing classic compiler techniques applied in a practical setting, feel free to check it out, star it, or open an issue.
Educational / research use. Obfuscation is only one layer — always pair it with proper architecture and server-side checks.

https://github.com/NIKJOO/Golang-REVoid
Reply With Quote
The Following 2 Users Gave Reputation+1 to Gladiyator For This Useful Post:
chants (09-21-2026), MarcElBichon (09-20-2026)
The Following 2 Users Say Thank You to Gladiyator For This Useful Post:
Gyrus (09-20-2026), Zeokat (09-21-2026)
  #2  
Old 09-22-2026, 09:03
Ibrahim_Mihai Ibrahim_Mihai is offline
Friend
 
Join Date: Feb 2026
Posts: 18
Rept. Given: 0
Rept. Rcvd 0 Times in 0 Posts
Thanks Given: 5
Thanks Rcvd at 2 Times in 2 Posts
Ibrahim_Mihai Reputation: 0
That’s a really clever approach, especially the “emit a self-contained Go file” part. How did you handle jump targets and back-edge correctness without breaking more complex loops or calls?
seeing a source-level VM implementation is refreshing. How do you handle the performance overhead for those virtualized functions, and have you noticed any significant impact on the final binary size?
Reply With Quote
Reply

Tags
golang, obfuscation, obfuscator, virtualizer

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On



All times are GMT +8. The time now is 12:38.


Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX, chessgod101
( Since 1998 )