simple string obf

This commit is contained in:
KingKDot
2026-06-23 22:26:55 -05:00
parent e2be2b4394
commit 4fcc01a796
6 changed files with 170 additions and 5 deletions
+35
View File
@@ -0,0 +1,35 @@
#!/usr/bin/env python3
"""
Generate _OBF_CHR sequences for compile-time string obfuscation (ROT16).
Usage:
python scripts/obfuscate-strings.py ReflectiveLoader
python scripts/obfuscate-strings.py "ntdll.dll" "RtlAddFunctionTable"
Outputs a C array initializer using _OBF_CHR() for each character.
"""
import sys
KEY = 16
INDENT = "\t"
def obfuscate(s):
chars = []
for c in s:
chars.append(f"_OBF_CHR('{c}')")
chars.append("0")
return ",\n".join(INDENT + ch for ch in chars)
def main():
if len(sys.argv) < 2:
print("Usage: python obfuscate-strings.py STRING [STRING...]", file=sys.stderr)
print("Example: python obfuscate-strings.py ReflectiveLoader", file=sys.stderr)
sys.exit(1)
for arg in sys.argv[1:]:
body = obfuscate(arg)
var = arg.replace(".", "_").replace(" ", "_")
print(f"static const unsigned char _enc_{var}[] = {{\n{body}\n}};\n")
if __name__ == "__main__":
main()