السبت، 18 يونيو 2011

حماية كود الجافا سكريبت بطريقة Obfuscated code

بسم الله الرحمن الرحيم

يعلم المطورون باللغة جافا سكريبت أن الرموز المصدرية التي يقومون بتطويرها للمواقع التفاعلية و التي يتم تفيذها من قبل المتصفح يمكن بسهولة قراءتها و نسخها أو حتى التحكم فيها لذا تم تطوير تقنية Obfuscated code لجعل الرمز المصدري للجافا سكريبت صعب القراءة والفهم من قبل المخترقين .



  • التقنيات البدائية لتشويش النص البرمجي :
 1) أستبدال أسماء المتغيرات و الوظائف بأسماء غير مفهومة و ليس ذات معنى كالتالي:

  1. function store(id){
  2. alert(id);
  3. }

سيصبح النص البرمجي كالتالي:

  1. function s(i){
  2. alert(i);
  3. }

2) تغير الحروف بصيغة ASCCI ألى صيغة أخرى :


  1. alert("Hello World");

سيتم كتابة الحروف بصيغة OCT في هذا المثال (يمكن طباعة الحروف بشكل Hex):
  1. alert("\110\145\154\154\157 \127\157\162\154\144");

3) أستبدال حرف السطر الجديد "n\" بحرف مسافة :

  1. function test(){
  2. document.write("test");
  3. alert("Hello,World!");
  4. }

سيصبح النص كالتالي :

  1. function test(){document.write("test");alert("Hello,World!");}

قد تبدو لك هذه التقنيات بسيطة لكنها فعالة و كمثال على أستخدمها قم بعرض النص البرمجي لمحرك البحث الشهير قوقل .

  • التقنيات و الحلول التجارية :
لقد تم تطوير عدد من البرامج و الطرق البرمجية لتشويش النص البرمجي وهذا مثال لطريقة jjencdeo

$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"(\\\""+$.$_$_+$.$_$$+"\\"+$.__$+$.$__+$.$$$+$._$+$._$+"\\"+$.__$+$.$$_+$._$_+"."+$.$_$$+(![]+"")[$._$_]+$._$+"\\"+$.__$+$.$__+$.$$$+"\\"+$.__$+$.$$_+$._$$+"\\"+$.__$+$.$$_+$.___+$._$+$.__+"."+$.$$__+$._$+"\\"+$.__$+$.$_$+$.$_$+"\\\"\\"+$.$__+$.___+")"+"\"")())();

هذا النص البرمجي مساوي لي هذا النص:


alert("abgoor.blogspot.com" )

ستجد على هذا الرابط صفحة أنترنت تقوم بأنشاء الكود المشفرة لك .

و هذه قائمة بعدد من البرامج لتشويش النص البرمجي :

  1.  Thicket™ Obfuscator for JavaScript
  2. Javascript Obfuscator 
  3. Jasob 2
  4. JCE Pro

في النهاية المقال يجب أن انبه أن هذه الحل لن يمنع المخترق المحترف و لكنه سيبطأ عمله كما أنه سيبعد المخترقين المبتدئين عن موقعك .

هناك تعليقان (2):

  1. شكرا لكن سوال كيف تعمل فكرة jjencode اتمنى ان تشرحها لنفهم فكرة التشفير بـjjencode

    ردحذف
    الردود
    1. لا زالت أحاول أن أفهم الطريقة و أبحث عن مراجع و سوف أشرح الكيفية بشكل مفصل أن شاء الله في القريب العاجل

      حذف