
🛡️ Python Kodini Reverse Engineeringdan Himoyalash
🎯 Nega Himoya Kerak?
- 🔓
.py
yoki.pyc
fayllar oson dekompilyatsiya qilinadi (uncompyle6
,decompyle3
) - 👀 Kodni o‘g‘irlab, boshqa joyda ishlatish mumkin
- 🧠 Maxfiy algoritmlar va API kalitlari fosh bo‘lishi mumkin
- 🚫 O‘zgartirib, zararli versiyalar yaratish xavfi mavjud
Shunday ekan, quyida keltirilgan 5 asosiy himoya usuli sizning Python loyihangizni himoyalashga yordam beradi.
🧰 1. Cython – C darajasiga kompilyatsiya qilish
Cython Python kodni C extension (ya’ni .so
yoki .pyd
) ko‘rinishiga o‘girib, bajarilishi tezroq va teskari tahlili ancha qiyin bo‘lgan modulga aylantiradi.
➤ O‘rnatish:
pip install cython
➤ Misol:
hello.py
:
def hello(): print("Salom, bu himoyalangan kod")
setup.py
:
from setuptools import setup from Cython.Build import cythonize setup( ext_modules=cythonize("hello.py", compiler_directives={'language_level': "3"}), )
➤ Kompilyatsiya:
python setup.py build_ext --inplace
➡️ Natija: hello.c
va hello.so
(yoki .pyd
) fayl. .py
faylni o‘chirishingiz mumkin.
🔐 2. PyArmor – Shifrlash va Obfuscation
PyArmor — professional himoya vositasi bo‘lib, Python fayllarni shifrlab, maxsus runtime orqali ishga tushirish imkonini beradi.
➤ O‘rnatish:
pip install pyarmor
➤ Himoya qilish:
pyarmor gen hello.py
➡️ Natija: .py
fayl shifrlangan ko‘rinishda va ishlashi uchun kerakli .pyarmor_runtime
bilan birga.
⚙️ 3. Nuitka – To‘liq EXE yoki ELF binarga aylantirish
Nuitka Python kodni C++ ga aylantirib, to‘liq kompilyatsiyalangan .exe
yoki .elf
fayl hosil qiladi. Bu deyarli teskari tahlildan himoyalangan kod hisoblanadi.
➤ O‘rnatish:
pip install nuitka
➤ Kompilyatsiya:
nuitka --standalone --follow-imports hello.py
➡️ Natija: to‘liq ishlovchi hello.exe
fayl, .py
kerak emas.
🌀 4. Kodni Obfuskatsiya Qilish
Obfuscation — kodni o‘qilmas va tushunarsiz holga keltirish.
➤ Pyminifier bilan:
pip install pyminifier
pyminifier -o -n -m -d hello.py > hello_obf.py
➡️ Natija: O‘zgaruvchi va funksiya nomlari chalkash, kodni tushunish qiyinlashadi.
🐳 5. Docker Ichida Kodni Yashirish
Agar sizning ilovangiz serverda ishlasa, foydalanuvchiga hech qanday kod bermasdan, Docker konteyner orqali xizmat ko‘rsatishingiz mumkin.
➤ Misol:
FROM python:3.11-slim COPY . /app WORKDIR /app CMD ["python3", "main.py"]
➡️ Natija: Kod faqat konteyner ichida, tashqariga chiqmaydi.
🚫 Hech qachon qilmaslik kerak:
.pyc
fayllarni tarqatish — bu himoya emas- Faqat obfuscationga ishonish — kuchsiz himoya
- API kalitlarni kod ichida qoldirish — xavfli!
chat Izohlar
Hozircha izohlar yo'q.
Izoh yozish uchun kiring.