مقال يشرح Obfuscation وكيف عمل Deobfuscation للاكواد الجزء الاول

تعريف Obfuscation ويعني التشويش وهو عدم القدرة على فهم الكود البرمجي المكتوب.

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

في هذه الاجزاء سوف نشرح استخدامها وطريقة فك التشويش deobfuscate لعدد من اللغات (PHP, PowerShell,Javascript,.net,VBA,ASP)

سوف نبدا مع PHP كجزء أول

كما تلاحظون في الصورة التالية الكود المبدئي الذي نود ان نقوم بالتشويش عليه Obfuscate

وهنا بعد استخدامنا لموقع https://php-minify.com/php-obfuscator/ لعمل تشويش على الكود

كما تلاحظون المخرجات متطابقة كما في الكود الاول ولكن الكود اصح اعقد وصعب قرائته وفهمه

لفهم الكود علينا اولا ان نقوم بترتيبه لجعهله اوضح واسهل عند القراءه سوف استخدم محرر sublime text

عند فتح الملف سوف يظهر بالشكل التالي ولكي يتم ترتيبة نقوم بالبحث والاستبدال عن نهاية الجملة في php

“;” ونستبدلها بـ “;\n” كما في الصورة ولاننسى تفعيل خيار regex

بعد الاستبدال نرى النتيجة النهائية

* هذه الطريقة ايضا يمكن استخدامها مع notepad++

هنا اصبح الكود افضل من قبل ولكن لازال غير مفهوم ولكي يتم فهمه بالكامل نبدا بتحليل قيمة المتغيرات فمثلا

المتغير $name

$name = "\x41\113\115\x61\154\x77\x61\x72\x65";

المحتوى عبارة عن خليط hex و Octal حيث ان 41 hex يساوي A

يمكن القيام بطباعتها باستخدام php command

في بعض الاحيان يتم استخدام base64 مع دالة eval كما في المثال التالي

بسهولة نستبدل eval بدالة الطباعة print

كما تلاحظون تم طباعة الكود في المتصفح بعد فك base64

هنا ينتهي الدرس وسوف نستكمل الاجزاء الاخرى قريبا

أضف تعليق