A Python kódok obfuszkációja (kódrejtése) során a program logikáját emberi szemmel olvashatatlan, nehezen visszafejthető formává alakítjuk, miközben a kód működése változatlan marad.Az alábbiakban egy egyszerű, mégis hatékony szkriptet találsz, amely a változók átnevezésével és a karakterláncok (stringek) Base64 kódolásával végzi el a rejtést.
----------------
import base64
def obfuscate_code(input_code):
# Egyszerű sztring obfuszkáció Base64 használatával
encoded_bytes = base64.b64encode(input_code.encode('utf-8'))
encoded_str = encoded_bytes.decode('utf-8')
# A rejtett kódot futtató és dekódoló "csomagoló" (wrapper)
wrapper_code = f"""
import base64
def _():
c = "{encoded_str}"
d = base64.b64decode(c).decode('utf-8')
exec(d)
if __name__ == '__main__':
_()
"""
return wrapper_code
# Példa használat
original_code = """
def koszones():
print("Szia! Ez egy rejtett kód.")
koszones()
"""
rejtett_kod = obfuscate_code(original_code)
# A rejtett kód kiírása fájlba vagy terminálra
print("--- Generált rejtett kód ---")
print(rejtett_kod)
# A rejtett kód futtatása
print("--- Eredeti kód futtatása a rejtésből ---")
exec(rejtett_kod)
---------------
Genus irritabile vatum. (Horatius)--- Generált rejtett kód ---
import base64
def _():
c = "CmRlZiBrb3N6b25lcygpOgogICAgcHJpbnQoIlN6aWEhIEV6IGVneSByZWp0ZXR0IGvDs2QuIikKCmtvc3pvbmVzKCkK"
d = base64.b64decode(c).decode('utf-8')
exec(d)
if __name__ == '__main__':
_()
--- Eredeti kód futtatása a rejtésből ---
Szia! Ez egy rejtett kód.
-----------------
http://www.hit.bme.hu/~buttyan/courses/BMEVIHIM219/2013/hw_deobfuscation.pdf
Nincsenek megjegyzések:
Megjegyzés küldése