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

تحفظ اصل میں کیا مسترد کر رہا ہے

Android حساس تعاملات کو tapjacking سے بچاتا ہے، جہاں ایک اور ونڈو ڈائیلاگ کے اوپر بیٹھتی ہے اور یا تو ٹیپ چرا لیتی ہے یا اسے مبہم کر دیتی ہے۔ کوئی ویو View.setFilterTouchesWhenObscured کے ساتھ اس میں شامل ہوتا ہے، اور واقعہ MotionEvent.FLAG_WINDOW_IS_OBSCURED لے کر آتا ہے جب کسی اور ونڈو کو جزوی یا مکمل طور پر ڈھانپنے والا نشان زد کیا جائے۔ ایسا ہونے پر واقعہ غلط جگہ پہنچانے کے بجائے مسترد کر دیا جاتا ہے۔ Android 12 (API 31) نے نظام کی رضامندی کی سطحوں میں غیر قابل اعتماد ٹچ کو بلاک کر کے اسی تحفظ کو بڑھایا، اسی لیے منظوری کا ڈائیلاگ ایسے اوورلے سے آنے والا ٹیپ مسترد کر سکتا ہے جسے دوسری ایپس اب بھی قبول کریں گی۔

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

مردہ ٹیپ کو ناکام کنکشن سے الگ کریں

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

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

adb shell cmd appops get com.example.vpn SYSTEM_ALERT_WINDOW
adb shell settings get secure enabled_accessibility_services

فہرست بنائیں کہ اوورلے کی اجازت کس کے پاس ہے اور کون سی رسائی کی سروسز فعال ہیں، پھر انہیں چلنے والی چیزوں سے ملائیں۔ پلیٹ فارم کے تحفظ کو خود بند نہ کریں؛ آپ کی طرف سے چھپی ہوئی ونڈو کو رضامندی کے پیغام کا جواب دینے سے روکنے والی چیز وہی ہے۔

رکاوٹ ہٹائیں، پھر معمول کا عمل دوبارہ آزمائیں

پہلے وہ ایپ شناخت کریں جس نے VPN کی منظوری مانگی، تاکہ آپ کو معلوم ہو کہ کون سی رضامندی دے رہے ہیں۔ پھر اس مخصوص اوورلے کو اس کی اپنی سیٹنگ کے ذریعے روکیں، بجائے اس وسیع اجازت کو منسوخ کرنے کے جس کی آپ کو بعد میں ضرورت پڑ سکتی ہے۔ اسکرین فلٹر میں عام طور پر اپنی ایپ میں ٹوگل ہوتا ہے؛ تیرتے ویجٹ میں بند کرنے کا کنٹرول ہوتا ہے؛ بنانے والے کا اسکرین موڈ اسکرین سیٹنگز میں سوئچ رکھتا ہے۔

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

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

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

ڈائیلاگ سے گزرنے کے لیے کیا نہ کریں

کسی انجان ایپ کو رسائی کا اختیار نہ دیں تاکہ وہ بٹن دبا سکے، اور اس مقصد کے لیے مددگار ایپ انسٹال نہ کریں۔ وہ بالکل وہی صلاحیت دیتی ہیں جسے تحفظ انکار کرنے کے لیے موجود ہے، ایسی اسکرین پر جو VPN کی اجازت دیتی ہے۔

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

منظم ڈیوائس پر VPN تبدیلیوں کو محدود کرنے والی پالیسی منتظم کا فیصلہ ہے۔ اوورلے کا تجربہ اسے بائی پاس کرنے کی اجازت نہیں۔ اسی طرح، بے ردعمل منظوری بٹن سرٹیفکیٹ کی تصدیق کمزور کرنے یا اکاؤنٹ کی اسناد بدلنے کی وجہ نہیں: کوئی سیٹنگ مقامی ٹچ رکاوٹ نہیں ہٹاتی۔

اگر پھر بھی ناکام ہو تو درست رویہ رپورٹ کریں

نتیجے کی نہیں، ڈائیلاگ کی وضاحت کریں: کس ایپ نے منظوری مانگی، ڈائیلاگ کھلا رہا یا بند ہوا، کیا نامعلوم ذرائع یا رسائی کی انتباہات جیسے دیگر حساس پیغامات بھی ٹیپ نظر انداز کرتے ہیں، ڈیوائس ماڈل اور Android ورژن، اور آپ کی لی گئی اوورلے اور رسائی کی فہرستیں۔

وہاں موجود ہونے کے دوران سپورٹ کے ذمہ دار سے ایک اور سوال پوچھیں: کیا ڈیوائس پالیسی VPN کنفیگریشن کی تبدیلیوں کو کسی طرح محدود کرتی ہے۔ منظم بلاک نظر انداز کیے گئے ٹیپ سے مختلف دکھتا ہے، اور یہ جاننا کہ آپ کس سے نمٹ رہے ہیں دوسرا دور بچاتا ہے۔

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

Android کی tapjacking رہنمائی ڈھانپے گئے ونڈوز کی شرائط اور اس رویے کے پیچھے موجود APIs کا احاطہ کرتی ہے۔ اگر آپ ثبوت کا سراغ چاہتے ہیں تو اس واقعے میں FLAG_WINDOW_IS_OBSCURED اور FLAG_WINDOW_IS_PARTIALLY_OBSCURED تلاش کریں جو کبھی بٹن تک نہیں پہنچا۔ کھلا رہنے والا ڈائیلاگ ہی قابو کرنے والی چیز ہے، کیونکہ یہ دکھاتا ہے کہ ٹیپ کسی اور ونڈو کو پہنچانے کے بجائے روکا گیا تھا۔

متعلقہ مضامین