ڈاٹفسکیٹر (ویزال اسٹوڈیو 2022 ورژن) کا استعمال کرتے ہوئے تخلیق کردہ ایپلی کیشنز کو ختم کرنا۔

جب صفحے کی تازہ کاری :
صفحہ تخلیق تاریخ :

خلاصہ

فریم ورک کے .نیٹ سیریز پر مبنی ایپلی کیشنز کو ایک عام درمیانی زبان کہا جاتا ہے، تاکہ انہیں ڈس اسمبلی ٹولز اور اس طرح کے استعمال سے اصل ماخذ کوڈ کے قریب ایک شکل میں پڑھا جا سکے۔ یہ سیکشن بیان کرتا ہے کہ کس طرح ڈوٹفسکیٹر کے مفت ورژن کا استعمال کرتے ہوئے کلاسوں اور طریقہ ناموں کو آسانی سے ناقابل مطالعہ فارمیٹ میں تبدیل کیا جائے، یہ اوبفسکیٹر ٹول ہے جو ویژیول اسٹوڈیو کے ساتھ آتا ہے۔

اسے ویژیول سٹوڈیو 2022 کا استعمال کرتے ہوئے بیان کیا گیا ہے، لیکن اسے ڈاٹفسکیٹر کے دیگر ورژن میں بھی استعمال کیا جاسکتا ہے۔

آپریٹنگ ماحول

بصری سٹوڈیو
  • ویژیول سٹوڈیو 2022

ڈاٹفسکیٹر کے بارے میں

ڈاٹفسکیٹر ایک اوبفسکیشن ٹول ہے جو ماخذ کوڈ کو پڑھنا مشکل بناتا ہے جب فریم ورک کے .نیٹ خاندان کے ساتھ لکھی گئی درخواستوں کے لئے الگ کیا جاتا ہے (اس کے بعد اسے .نیٹ کہا جاتا ہے)۔ ڈاٹفسکیٹر مفت اور فیس کے عوض ویژیول اسٹوڈیو کے ساتھ آتا ہے۔

مفت ورژن اس وقت تک دستیاب نہیں ہے جب تک کہ اس کی بہت سی خصوصیات محدود نہ ہوں یا ویژیول سٹوڈیو شروع نہ کیا جائے، لیکن کوئی بھی اسے اس وقت تک استعمال کر سکتا ہے جب تک وہ ویژیول اسٹوڈیو انسٹال ہے۔ پیڈ ورژن میں بہت سے طاقتور اوبفسکیشن فیچرز ہیں جو مفت ورژن میں نہیں پائے جاتے ہیں، لیکن یہ ایک ایسی قیمت پر پیش کیا جاتا ہے جو عام لوگوں کے لئے برداشت کرنا مشکل ہے۔

ڈاٹفسکیٹر کی مختلف خصوصیات، قیمتیں اور ایڈیشن ورژن پر منحصر ہیں، لہذا براہ کرم تفصیلات کے لیے درج ذیل ہوم پیج کا حوالہ دیں۔

ڈس اسمبلی کے بارے میں

میں نے پہلے ذکر کیا تھا کہ .نیٹ میں لکھی گئی ایپلی کیشنز آسانی سے اصل ماخذ کوڈ کو الگ کر سکتی ہیں اور پڑھ سکتی ہیں، لیکن اصل میں یہ ہو رہا ہے کہ اگر آپ .exe فائل (یا .dll فائل) کو الگ کر دیں جیسا کہ درج ذیل اعداد و شمار میں دکھایا گیا ہے، تو آپ اصل ماخذ کوڈ کو تقریبا دوبارہ پیش کر سکتے ہیں، جیسے نیم اسپیس، کلاس نام، طریقہ نام وغیرہ۔

پروگراموں کی اقسام جن کو ختم کیا جانا چاہئے

یہ بنیادی طور پر ان پروگراموں پر لاگو ہوتا ہے جو غیر متعین صارفین کو تقسیم اور چلائے جاتے ہیں۔ مثال کے طور پر ڈیسک ٹاپ ایپلی کیشنز۔ اس کے برعکس، ویب ایپلی کیشنز جن کو براہ راست پروگرام فائلوں تک رسائی میں دشواری ہوتی ہے، اوبفسکیشن کے لیے کم اہم ہیں۔

اس بار، ہم ڈبلیو پی ایف میں ایک پروجیکٹ پر غور کر رہے ہیں، ایک ڈیسک ٹاپ ایپلی کیشن۔

ڈاٹفسکیٹر نصب کر رہا ہے

یہ ایپلی کیشن ویژیول سٹوڈیو 2022 کے ساتھ آتی ہے لیکن معیاری تنصیب میں شامل نہیں ہے (کچھ ماضی کے ویژیول اسٹوڈیوز میں اسے شروع سے انسٹال کیا جاسکتا ہے)۔

ڈاٹفسکیٹر شامل کرنے کے لئے: ویسول سٹوڈیو شروع کریں اور ٹولز سے ٹولز اور فیچرز حاصل کریں منتخب کریں۔

اوپر ٹیب سے "انفرادی اجزاء" منتخب کریں، "کوڈ ٹولز" گروپ میں "پیشگی تحفظ - ڈاٹفسکیٹر" چیک کریں، اور نچلے دائیں کونے میں تنصیب بٹن پر کلک کریں۔ ایسا کرتے وقت ویژیول سٹوڈیو کنسول بند کر دو۔

اوبفسکیشن طریقہ کار

ان ناموں کو الجھانے اور الجھانے کے اقدامات کی وضاحت کرتا ہے۔

ویژیول سٹوڈیو میں ایپلی کیشن بنائیں، .exe فائل بنائیں اور پھر کلک کریں۔ ایک مسل بنائیں۔ اب تک، یہ ایک باقاعدہ ایپلی کیشن بنانے کے برابر ہے۔ آپ کی بنائی ہوئی ایپ کا مقصد رہائی کی تعمیر میں بنائی گئی ایپ کے لئے ہونا چاہئے۔ (کیونکہ آپ عام طور پر ڈیبگ میں شائع نہیں کرتے ہیں۔)

.exe یا .dll بنانے کے بعد، ویژیول سٹوڈیو مینیو سے ٹولز منتخب کریں، اور پھر پیشگی تحفظ - ڈاٹفسکیٹر کمیونٹی کا انتخاب کریں۔

رجسٹریشن سکرین دکھائی جاتی ہے، لیکن اس کی ضرورت نہیں ہے، لہذا اگر یہ غیر ضروری ہے تو منسوخ بٹن پر کلک کریں جیسا کہ یہ ہے۔

رہو اور ٹھیک ہے بٹن پر کلک کریں.

ڈاٹفسکیٹر شروع ہوتا ہے۔ ایپلی کیشن اپنے طور پر کام کرتی ہے، تاکہ آپ ان فائلوں کو ختم کر سکیں جو فی الحال کھلے منصوبے سے متعلق نہیں ہیں۔ (ایپلی کیشن کے مفت ورژن کے معاملے میں، یہ فرض کیا جاتا ہے کہ ویژیول سٹوڈیو شروع کیا گیا ہے.) )

اس مضمون میں، میں ایک نمونے کے طور پر ڈیفالٹ کے ساتھ تعمیر کردہ .نیٹ 6.0 ڈبلیو پی ایف ایپلی کیشن پروجیکٹ کو ختم کروں گا۔

بائیں طرف فہرست سے "ان پٹ" منتخب کریں اور "+" بٹن پر کلک کریں۔

وہ پروگرام مسل منتخب کریں جو آپ ضد کرنا چاہتے ہیں۔ نیٹ فریم ورک میں لکھی گئی درخواستوں نے اکثر .exe کو ختم کر دیا ہے، لیکن .نیٹ اور .نیٹ کور میں، پروگرام اکثر .dll ادارے ہوتے ہیں۔ نیٹ ڈبلیو پی ایف ایپلی کیشنز میں .dll ادارے بھی ہوں گے، لہذا .dll کا انتخاب کریں۔

اسے فہرست میں شامل کیا جائے گا۔ اگر یہ متعدد ڈی ایل ایل پر مشتمل ہے تو ایک سے زیادہ شامل کریں۔

ہدف مسل شامل کرنے کے بعد ٹول بار سے "تعمیر کریں" بٹن پر کلک کریں۔

آپ سے پوچھا جائے گا کہ اوبفسکیٹڈ پروجیکٹ فائل کو کہاں محفوظ کیا جائے، لہذا اس کی وضاحت کریں۔ محل وقوع من مانی ہو سکتا ہے، لیکن یہ ایک اوبفسکیٹڈ پروگرام کا آؤٹ پٹ مقام بھی ہوسکتا ہے۔ یہ آپ کے ان پٹ کو بچاتا ہے اور اگر آپ اسے دوبارہ ختم کرنا چاہتے ہیں تو یہ اوبفسکیشن پروجیکٹ فائل کھول دے گا۔ توسیع ہے ". ایکس ایم ایل".

اگر تعمیر شروع ہو چکی ہے اور "مکمل تعمیر" نیچے پیغام میں دکھائی گئی ہے تو یہ کامیاب تکمیل کی نشاندہی کرتی ہے۔ سکرین بلڈ لاگ اور اوبفسکیٹڈ کلاسز اور متغیرات کی فہرست دکھاتی ہے۔

کلاس اور طریقہ کار کے نام کیسے تبدیل ہوئے ہیں اس کی تفصیلات دیکھنے کے لئے بائیں طرف کی فہرست سے "نتیجہ" منتخب کریں۔

دائیں طرف درخت میں طبقاتی نام اور طریقہ نام، جیسے ">"، اوبفسکیشن کے بعد کے نام ہیں۔ طبقاتی نام یا طریقہ نام کو اس طرح کے بے معنی نام میں تبدیل کرکے، آپ ماخذ کوڈ کے مندرجات کو پڑھنا مشکل بنا سکتے ہیں چاہے وہ الگ ہی ہو۔

اوبفسکیٹڈ پروگرام اس جگہ پر "ڈاٹفسکیٹڈ" نامی فولڈر میں محفوظ کیے جاتے ہیں جہاں آپ نے پروجیکٹ فائل محفوظ کی تھی۔

نقشہ.xml ایک اوبفسکیشن رزلٹ فائل ہے، تاکہ آپ اسے محفوظ طریقے سے حذف کر سکیں۔

چونکہ .نیٹ 6.0 ڈبلیو پی ایف صرف ڈی ایل ایل کے ذریعہ شروع نہیں کیا جا سکتا، اس لئے اسی فولڈر میں آؤٹ پٹ بنانے کے وقت پیدا ہونے والی "ایکس ایکس ایکس .exe" اور "ایکس ایکس ایکس.رن ٹائمکونفیگ ڈاٹ جے سن" کاپی کریں اور اسے شروع کریں۔ اگر آپ عام طور پر شروع کر سکتے ہیں، فی الحال کوئی مسئلہ نہیں ہے. اگر آپ اسے شروع نہیں کر سکتے، تو آپ فائلوں سے محروم ہو سکتے ہیں یا آپ کوئی ایسا پروگرام بنا رہے ہوں گے جو اوبفسکیشن کی وجہ سے غیر موافق ہو جاتا ہے۔

اگر آپ اس پروگرام کا تجزیہ کریں جو اصل میں ختم کر دیا گیا ہے، تو آپ کو اوبفسکیشن کے کچھ نشانات نظر آئے گا۔ نیچے دی گئی شکل کا پہلا ورق اوبفسکیشن سے پہلے ہے اور دوسرا اوبفسکیشن کے بعد ہے۔

نوٹ کریں کہ .نیٹ لائبریریوں میں متعین طبقاتی نام نام تبدیل کرنے کے تابع نہیں ہیں کیونکہ وہ ایک فریم ورک کے طور پر موجود ہیں۔

اس بار، میں نے تخلیق کردہ طے شدہ منصوبے کو ویسے ہی ختم کر دیا ہے، لہذا میں سمجھتا ہوں کہ ایک ایسی تصویر ہے جو تقریبا ختم نہیں ہوئی ہے، لیکن میں سمجھتا ہوں کہ اوبفسکیشن کا اثر واضح ہو جاتا ہے کیونکہ پروجیکٹ جتنا بڑا ہوگا، اتنی ہی منفرد کلاسیں بڑھیں گی۔

اس کے علاوہ، اگرچہ ہم نے اس بار مفت ورژن میں طریقہ کار کو شامل کیا ہے، ادائیگی شدہ ورژن زیادہ پیچیدہ اوبفسکیشن کی اجازت دیتا ہے اور خود کو الگ کرنے سے بھی روکتا ہے۔ تاہم، اوبفسکیشن کے مختلف منفی اثرات اور ہونے کی صلاحیت ہوتی ہے، لہذا جب اوبفسکیٹنگ کی جاتی ہے تو اس پر غور کرتے ہوئے اسے بنانا ضروری ہوتا ہے کہ آیا یہ ڈیزائن کے آغاز سے ہی صحیح طریقے سے کام کرے گا یا نہیں۔

ضد خارج کریں

اگر آپ کے پاس کلاس یا پراپرٹی کے نام ہیں جو آپ ختم نہیں کرنا چاہتے ہیں، تو آپ انہیں خارج کرسکتے ہیں۔

جب اسمبلی لوڈ ہو جائے تو سکرین کے بائیں جانب سے خارج > نام تبدیل کریں منتخب کریں۔ چونکہ اسمبلی کے مندرجات دکھائے گئے ہیں، میں ان کی جانچ کروں گا جن کو میں ختم نہیں کرنا چاہتا۔

دانہ دار سطح پر اوبفسکیشن کو خارج کرنا ممکن ہے، لیکن میں سمجھتا ہوں کہ اسے نام کی بنیاد پر ایڈجسٹ کرنا آسان ہے۔

لائبریری موڈ

جب آپ ان پٹ اسمبلی منتخب کرتے ہیں، تو آپ دیکھ سکتے ہیں کہ "لائبریری موڈ" چیک کیا جاتا ہے۔

"لائبریری موڈ" ڈی ایل ایل سے منسلک کرنا ہے جسے دیگر پروگراموں کے ذریعہ بلایا جاسکتا ہے۔ اگر چیک کیا جائے تو عوامی طبقات اور دیگر پروگراموں کے ذریعہ طلب کی جانے والی جائیدادوں کو اوبفسکیشن سے خارج کردیا جاتا ہے۔

تاہم، عمومی طور پر، کسی لائبریری کو بے نقاب کرنا شاذ و نادر ہی ہوتا ہے جسے دوسرے پروگراموں سے پیدا ی طور پر کہا جاتا ہے، اور میں سمجھتا ہوں کہ یہ اکثر ان ایپلی کیشنز کے لئے متروک ہوتا ہے جو اکیلے کام کرتی ہیں، لہذا بنیادی طور پر اس چیک کو ہٹانا ٹھیک ہے۔

واحد مسل .exe کا اوبفسکیشن (غیر مصدقہ)

ویژیول سٹوڈیو 2022 میں اس شے کی تحقیقات فی الحال غیر مصدقہ ہیں۔

یہ شاید ایم ایس بلڈ کے ساتھ اوبفسکیشن ہوگا، لیکن میں اس وقت معلومات کی کمی کی وجہ سے اسے روک رہا ہوں۔