🛡️ Python Kodini Reverse Engineeringdan Himoyalash
🎯 Nega Himoya Kerak?
- 🔓
.pyyoki.pycfayllar 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:
.pycfayllarni tarqatish — bu himoya emas- Faqat obfuscationga ishonish — kuchsiz himoya
- API kalitlarni kod ichida qoldirish — xavfli!
chat Izohlar
nisharai3654
22 Aug 2025, 11:10nisharai3654
22 Aug 2025, 11:09Izoh yozish uchun kiring.