42 Commits

Author SHA1 Message Date
Ege Balcı 8e2c4e19d2 Version 2.0.2 release 2026-05-02 00:41:23 +02:00
Ege Balcı 4e844b0c14 Gofmt formatting 2026-05-02 00:20:33 +02:00
Ege Balcı c97adb5d53 Merge pull request #28 from Drewsif/master
Fix various encoding/obfuscation bugs and improve payload reliability
v2.0.2
2026-05-01 22:18:42 +00:00
Drew Bonasera ecc578b28c Apply encoder options within the main loop and fix various bugs related to encoding, obfuscation, and file handling.
- feat(cli): Apply obfuscation, encoding, and safe options in main loop
- feat(obfuscation): Allow disabling garbage instruction generation via obfuscation limit
- fix(encoder): Correct schema size calculation for x64 architecture
- fix(encoder): Pad encoded payload with NOPs to ensure schema alignment
- fix(obfuscation): Add fallback for random register selection in garbage generation
- fix(cli): Truncate output file on write and ensure it is closed
- fix(examples): Correct casing in sgn package import path
- style(encoder): Remove trailing whitespace from register save definitions
2026-04-30 05:10:02 -04:00
Drew Bonasera e2ccc66ff3 Corrects payload selection logic and several register definitions and selection mechanisms.
This commit also optimizes bad-byte checking and improves code style.

- fix(main): Correct payload selection logic for ASCII and bad byte constraints
- refactor(main): Improve readability of payload selection conditions
- fix(sgn): Correct register definitions for ESI, EDI, and RDI
- fix(sgn): Remove PUSH/POP of RSP from x64 register save/restore opcodes
- fix(sgn): Rework random register selection to prevent returning invalid registers
- perf(utils): Optimize `ContainsBytes` by using `bytes.IndexByte`
- style(utils): Export `ContainsBytes` function
- chore(main): Remove unused `bytes` import
2026-04-30 05:09:44 -04:00
Drew Bonasera 6203484fcd Fixes several bugs in encoding and obfuscation and adds a new payload execution stress test.
- fix(encode): Remove redundant modulo operations from ADD/SUB ciphers
- fix(obfuscate): Remove "JMP 2" from the list of safe garbage instructions
- fix(obfuscate): Use correct slice length when selecting random garbage instruction
- fix(sgn): Correct register exclusion logic in GetSafeRandomRegister
- test: Add integration stress test for payload execution on Windows
2026-04-30 05:09:17 -04:00
Ege Balcı f54fa65b57 GenerateGarbageAssembly function adjusted for better stability. 2024-02-22 16:20:57 +01:00
Ege Balcı 012c110584 GetSafeRandomRegister function fixed. 2024-02-22 16:20:10 +01:00
Ege Balcı 2e16f30c2b Decoder schema size calculation bug fixed. 2024-02-22 15:16:29 +01:00
Ege Balcı 3466708266 Improved GetSafeRandomRegister function. 2024-02-22 15:15:27 +01:00
Ege Balcı 45d96a3242 Adjusted SafeGarbageInstructions pool. 2024-02-22 15:14:55 +01:00
Ege Balcı 258f3083db Makefile updated v2.0.1 2023-12-19 15:24:14 +01:00
Ege Balcı 8722871903 README updated 2023-12-19 15:18:36 +01:00
Ege Balcı 4a9661f1ca Makefile adjusted for fully static builds 2023-12-19 15:18:25 +01:00
Ege Balcı 2311586e76 Dockerfile updated 2023-12-19 15:18:03 +01:00
Ege Balcı f5b4dc398d Github workflows added for build & testing 2023-12-19 15:17:48 +01:00
Ege Balcı 9d46392ac0 Makefile updated. 2023-12-18 01:10:16 +01:00
Ege Balcı cf57494722 README adjusted 2023-12-18 01:09:27 +01:00
Ege Balcı 89544142e6 v2.0.1 release!
- Register preserving related bugs fixed
- Safe random register selection related bugs fixed
- Done major code refactoring
- New parameter parsing module added
- Command line parameters updated
- Example code updated
2023-12-18 01:09:13 +01:00
Ege Balcı 94a63c5456 Added more safe garbase instruction patterns 2021-03-01 09:31:26 +03:00
Ege Balcı 686e60d127 Go lib version updates 2020-11-26 06:39:25 +03:00
Ege Balcı 08bf28647a README update 2020-11-23 00:03:48 +03:00
Ege Balcı bf0614fc1c Privileged instructions removed 2020-11-20 15:50:57 +03:00
Ege Balcı 48e74637e6 Garbage instruction generation adjustments 2020-11-19 19:42:06 +03:00
Ege Balcı 98d40a9d31 v2.0 stable release !! Better x64 decoder stub & lots of improvments 2.0 2020-11-06 18:32:28 +03:00
Ege Balcı 6daefc06fc x64 decoder bug fix 2020-10-30 22:54:08 +03:00
Ege Balcı 6ec2194de2 strings.Contains replaced with bytes.Contains 2020-10-04 15:35:19 +03:00
Ege Balcı 3b6ed0f877 Bad charracter detection bug fixed. 2020-09-15 17:24:02 +03:00
Ege Balcı 980093296b Refactored 2020-09-02 22:16:32 +03:00
Ege Balcı a597034d88 Typo fixes 2020-09-02 22:05:26 +03:00
Ege Balcı a275abaaea Merge pull request #5 from capnspacehook/master
Shrink docker image
2020-08-22 22:40:16 +03:00
Andrew LeFevre 8873fd3a01 shrink docker image from 1.11GB to 6.46MB uncompressed 2020-08-13 16:10:53 -04:00
Ege Balcı bb01955200 v1.0 stable release 2020-07-30 13:47:07 +03:00
Ege Balcı 362fccb6e9 Multiple encoding bug fixed 2020-07-07 08:52:33 +03:00
Ege Balcı 1fad68f2ee README update 2020-06-12 12:02:25 +03:00
Ege Balcı 8a9a028e10 README usage fix. 2020-06-08 15:50:47 +03:00
Ege Balcı 3ab7496f36 Major changes on garbage code generation mechanics. 2020-06-08 15:48:36 +03:00
Ege Balcı 7897e4b5cb Major update on obfuscation engine 2020-05-30 22:46:36 +03:00
Ege Balcı 3238dcf32e Merge pull request #2 from nugxperience/fix-architecture-state
Pass Encoder object by pointer to SetArchitecture()
2020-05-30 15:29:26 +03:00
nugxperience 89c6abd8a0 Pass Encoder object by pointer to SetArchitecture()
Previously passed by value, preventing the architecture being set
on the original Encoder object. This caused all output to be 32-bit.

Fixing this revealed that the function prologue/epilogue garbage
mnemonic pattern does not compile if architecture is set to 64, so
commented that out.
2020-05-30 21:37:26 +10:00
Ege Balcı e17111ba38 Better garbage generation, new CalculateavarageGarbageInstructionSize function, more tests on yara_test.sh 2020-05-28 16:38:13 +03:00
Ege Balcı 76affa57dd First commit 2020-05-25 21:01:34 +03:00