مبهم سازی کدهای پی اچ پی و روش‌های آن – PHP Obfuscation

تعریف کد مبهم و هدف از اون چیه؟

مبهم سازی کدهای پی اچ پی یا PHP Obfuscation، روالیه که طی اون کدهای نوشته شده با انجام تغییراتی، خوانایی کمتری برای انسان‌ها پیدا میکنن. البته این تکنیک برای تمام زبان‌های برنامه‌نویسی صدق می‌کنه و فقط مخصوص به زبان PHP نیست.

مثلاً این تیکه کد ساده PHP رو در نظر بگیرید که یه آرایه و محتویات اون رو نشون میده:

حالا همین تیکه کد رو به کمک روش‌های مبهم سازی تغییر میدیم و خروجی به این شکل خواهد بود:

همونطور که می‌بینید، علیرغم عدم تفاوت در نتیجه‌ی اجرای کد، خواندن و درک این کدها خیلی سخته. همین موضوع باعث میشه که افراد مختلف و خصوصاً برنامه‌نویس‌ها، نتونن به راحتی کدهای شما رو تغییر بدن و در صورتی که پروژه‌ای رو به کارفرمایی تحویل می‌دید، خیالتون راحت باشه که اون کارفرما نمی‌تونه به راحتی با شخص دیگه‌ای جز شما قرارداد ببنده.

یا مثلاً فرض کنید شما یه پلاگین برای وردپرس نوشتید و می‌خواید اون رو بصورت رایگان برای همه منتشر کنید، اما دوست ندارید شخص دیگه‌ای جز شما از سورس کد پلاگین‌تون سر در بیاره و اون رو به دلخواه خودش تغییر بده. در عین حال چون این پلاگین عرضه عمومی میشه، نمی‌خواید اون رو رمزگذاری کنید؛ چون کاربران رو برای نصب دیکِدرها و … به زحمت میندازه و عملاً دایره استفاده‌اش محدود میشه. به همین خاطر روش بهتر و آسون‌تر، استفاده از Obfuscator ها هست.

البتّه نباید موضوع این نوشتار رو با روش‌های رمزگذاری کردن کدها (Encryption) اشتباه بگیرید. در روش‌های رمزگذاری، معمولاً کدها به طور کلی تغییر می‌کنن و برای اجرای مجدد نیازمند کلید مخصوص جهت رمزگشایی (دیکُد | Decode) هستن که می‌بایست در سرور نصب باشه. مثل نرم‌افزار IonCube که احتمالاً اسمش رو شنیدید.

روش‌های مبهم سازی کدهای پی اچ پی یا PHP Obfuscation

روش‌های متعدّدی برای مبهم سازی کدهای پی اچ پی موجود هستن که ما اینجا اون‌ها رو به دو دسته آنلاین و آفلاین تقسیم میکنیم.

روش‌های آنلاین

در این حالت عموماً از وبسایت‌هایی که خدمات Obfuscation ارائه میدن استفاده میشه و شما کدهای PHP خودتون رو داخل اون سایت‌ها وارد میکنید و کد مبهم شده رو تحویل میگیرید:

روش‌های آفلاین

در روش آفلاین می‌تونید از کتابخانه‌ها و نرم‌افزار‌های مختلفی استفاده کنید:

من به شخصه از مورد اول در لیست آفلاین استفاده می‌کنم. یه قابلیت خوبی که داره مبهم سازی کل فایل‌های PHP در دایرکتوری‌ هست. به طور مثال شما پروژه‌ای رو تحویل می‌دید که با فریم‌ورک Laravel یا Codeigniter و … نوشتید و می‌خواید تمام Controller ها و Model ها و … رو بصورت یکجا و هماهنگ مبهم کنید. در ادامه نحوه کار با همین کتابخانه رو بهتون یاد میدم.

آموزش مبهم سازی کدهای پی اچ پی با استفاده از کتابخانه php-obfuscator

  1. ابتدا مطمئن بشید که نرم‌افزارهای Git و Composer روی ویندوزتون نصبه.
  2. یه وب سرور PHP مثل WampServer یا XAMPP نصب کنید. (من از WampServer استفاده می‌کنم)
  3. حالا محیط Command Prompt رو باز کنید (Run > CMD) و دستورات زیر رو به ترتیب و پس از پایان هر دستور داخلش بزنید:
  1. در نهایت برای مبهم سازی کدهاتون دستورات زیر رو وارد کنید:

همونطور که می‌بینید، در دستور بالا چهار مسیر وجود داره که بین علامت Double Quotation (“”) مشخص شدن:

  1. مسیر فایل php.
  2. مسیر فایل obfuscate در کتابخانه‌ای که در مرحله 3 نصب کردید.
  3. مسیر فلدری که فایل‌های اصلی (سورس کد) PHP شما وجود داره.
  4. مسیر فلدری که کتابخانه، فایل‌های اصلی رو اونجا کپی می‌کنه و بعد مبهم (Obfuscate) میکنه. 

اگر مرحله چهار براتون سخته، من یه نرم‌افزار گرافیکی کوچیک نوشتم که به کمک اون می‌تونید یه مقداری آسون‌تر این فرآیند رو انجام بدید:

PHP Obfuscator GUI

دانلود نرم افزار

نظر بدهید

avatar
  مشترک شدن  
اطلاع رسانی کن

فوتر سایت

نوار کناری کشویی

درباره من

درباره من

کامپیوتر رو با دوره‌های سخت‌افزار و شبکه از CompTIA و Microsoft شروع کردم. اما چند سال بعد عاشق برنامه‌نویسی شدم و شروع به یادگیری تخصص‌های مرتبط با طراحی و برنامه‌نویسی تحت وب کردم. در اینجا هم سعی می‌کنم مطالب مفیدی رو که یاد می‌گیرم با شما مشترک بشم.