منصوبے کے بارے میں

obfus.h ایک میکرو صرف لائبریری ہے جو C ایپلی کیشنز کی کمپائل ٹائم اوبفیسکیشن کے لیے ہے، خاص طور پر ونڈوز x86 اور x64 پر Tiny C Compiler (tcc) کے لیے ڈیزائن کی گئی ہے۔ یہ ایک واحد ہیڈر کے طور پر تقسیم کی جاتی ہے جسے آپ اپنے سورس میں شامل کرتے ہیں؛ اوبفیسکیشن کمپائلیشن کے دوران خودکار طور پر لاگو ہوتی ہے۔ مصنف نوٹ کرتا ہے کہ یہ tcc کے تقریباً تمام ورژنز کو سپورٹ کرتی ہے، tcc 0.9.27 کی سفارش کرتی ہے، اور بتاتا ہے کہ Visual C، GCC اور Clang سپورٹ نہیں ہیں۔ دستاویزی خصوصیات: - فنکشن کال اوبفیسکیشن تاکہ کالیں کم پڑھنے کے قابل ہوں۔ - اینٹی ڈیبگنگ میکانزم جن کا مقصد رن ٹائم تجزیہ میں رکاوٹ ڈالنا ہے؛ تحفظ بہت سے بنیادی MSVCRT فنکشنز کی کالوں سے متحرک ہوتا ہے، اور ANTI_DEBUG؛ کنسٹرکٹ کو اہم مقامات پر رکھا جا سکتا ہے۔ - کنٹرول فلو کوڈ میوٹیشن جو شرائط اور لوپس کی ساخت بدل دیتی ہے؛ CFLOW_V2 آپشن ایک مضبوط (اور سست) قسم فراہم کرتا ہے۔ - HIDE_STRING(str) کے ذریعے اسٹرنگ چھپانا، جو اسٹرنگز کو سٹیٹک طور پر ڈیکلیئر کرنے کے بجائے رن ٹائم پر mov انسٹرکشنز کے ذریعے اسٹیک پر جمع کرتا ہے۔ README خبردار کرتا ہے کہ کچھ ڈیکمپائلرز سٹیٹک آپٹیمائزیشنز کی وجہ سے انہیں پھر بھی ظاہر کر سکتے ہیں۔ - اینٹی ڈیکمپائلیشن تکنیکیں جن کا مقصد ڈیکمپائلر آؤٹ پٹ کو بصری طور پر توڑنا ہے۔ - مختلف پیکرز اور پروٹیکٹرز کے جعلی دستخط تاکہ ریورس انجینئرز کو الجھایا جا سکے۔ - ایک ریاضی ورچوئل مشین (VIRT کے ساتھ فعال) جو VM_ADD، VM_SUB، VM_MUL، VM_DIV، VM_MOD، موازنہ میکروز جیسے VM_EQU/VM_NEQ/VM_LSS/VM_GTR/VM_LEQ/VM_GEQ، ڈبل قسمیں، اور VM_IF/VM_ELSE_IF/VM_ELSE منطقی کنسٹرکٹس پیش کرتی ہے۔ README خبردار کرتا ہے کہ ورچوئلائزیشن آپٹیمائزیشن کو متاثر کر سکتی ہے اور اسے صرف وہیں استعمال کرنا چاہیے جہاں ضرورت ہو، اور کچھ ڈبل موازنہ آپریشنز غیر سپورٹڈ ہیں۔ کنفیگریشن ڈیفائنز جیسے VIRT، CFLOW_V2، ANTIDEBUG_V2، FAKE_SIGNS، اور غیر فعال کرنے والے فلیگز NO_OBF، NO_CFLOW، NO_ANTIDEBUG، یا کمپائلر آرگیومنٹس کے ذریعے کی جاتی ہے (مثال کے طور پر tcc app.c -w -D NO_CFLOW -D ANTIDEBUG_V2 -D FAKE_SIGNS -D VIRT)۔ README مشورہ دیتا ہے کہ اوبفیسکیشن کے دوران پیدا ہونے والی بہت سی وارننگز کو دبانے کے لیے -w کے ساتھ کمپائل کریں۔ استعمال صرف ایک #include "obfus.h" لائن ہے۔ ایک ونڈوز بیچ اسکرپٹ (include-updater/obfh-update.cmd) ریپوزٹری سے تازہ ترین ہیڈر حاصل کر سکتا ہے بغیر git کے، جو بلڈز سے پہلے خودکار سیکیورٹی اپ ڈیٹس کے لیے مفید ہے۔ README کمیونٹی سیکیورٹی تجزیوں سے لنک کرتا ہے، جن میں تحفظ میکانزم کا بلیک باکس تجزیہ (جس کے نتائج مصنف کے مطابق پیچ کیے گئے ہیں)، ایک CTF رائٹ اپ جو پہلے جنریشن کا استعمال کرتا ہے، اور ObfusHunter، ایک یوٹیلیٹی جو obfus.h سے محفوظ فائلوں کو اسکین کرنے کے لیے ہے۔ مصنف کہتا ہے کہ محفوظ پروگرام لاجک کو بازیافت کرنا تقریباً ناممکن ہے، لیکن زور دیتا ہے کہ صرف اوبفیسکیشن مکمل تحفظ کی ضمانت نہیں دیتی اور اندرونی سیکیورٹی سسٹمز کو پھر بھی تیار اور برقرار رکھا جانا چاہیے۔