اہم نکات
1۔ ہیکنگ: غیر روایتی مسئلہ حل کرنے کا فن
ہیکنگ کی اصل روح یہ ہے کہ کسی صورتحال کے قوانین اور خصوصیات کے غیر متوقع یا نظر انداز شدہ استعمالات تلاش کیے جائیں اور پھر انہیں نئے اور تخلیقی انداز میں لاگو کر کے مسئلہ حل کیا جائے۔
قانونی حدود سے ماورا۔ ہیکنگ بذات خود قانون شکنی نہیں بلکہ موجودہ قواعد و ضوابط کے نئے اور منفرد استعمالات تلاش کر کے مسائل کا تخلیقی حل پیش کرنے کا نام ہے۔ یہ کمپیوٹر پروگراموں کی بہتری سے لے کر پرانے ٹیلیفون آلات کو نئے مقاصد کے لیے ڈھالنے تک ہو سکتا ہے۔ کلید یہ ہے کہ روایتی طریقوں سے ہٹ کر سوچا جائے اور منفرد حل تلاش کیے جائیں۔
ہیکر کا اخلاقی معیار۔ ایم آئی ٹی کے ابتدائی ہیکرز معلومات کی آزادانہ ترسیل اور مسلسل سیکھنے کو اہمیت دیتے تھے، اور تعصب جیسے روایتی رکاوٹوں سے بالاتر تھے۔ وہ منطق کو ایک فن سمجھتے اور پابندیوں کو عبور کر کے دنیا کو بہتر سمجھنے کی کوشش کرتے تھے۔ یہ اخلاقی معیار علم، جدت اور حدود کو بڑھانے پر زور دیتا ہے، چاہے قانونی دائرہ کار کچھ بھی ہو۔
ہیکر بمقابلہ کرکر۔ "کرکر" کی اصطلاح کبھی بد نیتی والے ہیکرز کو اخلاقی ہیکرز سے الگ کرنے کے لیے استعمال ہوتی تھی، مگر اب یہ فرق دھندلا ہو چکا ہے۔ جدید قوانین جو کرپٹوگرافی اور تحقیق کو محدود کرتے ہیں، نیک نیتی والے ہیکرز کو بھی قانون شکنی کا مرتکب دکھا سکتے ہیں۔ اصل ہیکر کا جذبہ حکومتی قوانین سے بالاتر ہو کر علم کے اطلاق پر مرکوز ہوتا ہے، چاہے وہ اچھے مقصد کے لیے ہو یا برے کے لیے۔
2۔ پروگرامنگ کی خوبصورتی ہوشیار اور غیر متوقع حل میں ہے
ہیکنگ درحقیقت مسئلہ کا ایک ہوشیار اور غیر متوقع حل تلاش کرنے کا عمل ہے۔
صرف کام کرنے والا کوڈ نہیں۔ پروگرامنگ صرف ایسا کوڈ بنانے کا نام نہیں جو کام کرے، بلکہ سب سے مؤثر اور خوبصورت طریقہ تلاش کرنے کا نام ہے۔ اس میں کمپیوٹر کے قواعد کو نئے اور تخلیقی انداز میں استعمال کیا جاتا ہے، جس سے اکثر چھوٹا، مؤثر اور صاف ستھرا کوڈ تیار ہوتا ہے۔ خوبصورتی کی یہ تلاش خود ایک قسم کی ہیکنگ ہے۔
ہیکس کی قدر۔ جدید کاروبار میں رفتار اور لاگت کو ترجیح دی جاتی ہے، مگر پروگرامنگ کی خوبصورتی کی اصل قدر شوقیہ افراد، ایکسپلائٹ لکھنے والوں اور بہترین حل تلاش کرنے والوں کے لیے مخصوص ہے۔ یہ لوگ خوبصورت کوڈ میں حسن اور ہوشیار ہیکس میں ذہانت تلاش کرتے ہیں، اور ممکنات کی حدوں کو بڑھاتے ہیں۔
پروگرامنگ کی بنیاد۔ پروگرامنگ کو سمجھنا کوڈ لکھنے اور اس کا استحصال کرنے دونوں کے لیے ضروری ہے۔ پروگرام کیسے لکھے جاتے ہیں جان کر ہیکرز کمزوریوں کو بہتر سمجھ کر ان سے فائدہ اٹھا سکتے ہیں۔ یہ علم پروگرامنگ کے دونوں پہلوؤں کے لیے لازمی ہے۔
3۔ پروگرام کا استحصال کمپیوٹر کے قواعد کے غیر متوقع استعمالات ظاہر کرتا ہے
پروگرام کا استحصال محض کمپیوٹر کو وہ کام کرنے پر مجبور کرنے کا ہوشیار طریقہ ہے جو موجودہ پروگرام روکنا چاہتا ہو۔
کمزوریوں کا استحصال۔ پروگرام کا استحصال اس کے ڈیزائن یا ماحول میں موجود خامیوں یا نظر انداز شدہ پہلوؤں کو تلاش کر کے کمپیوٹر کو غیر متوقع کام کرنے پر مجبور کرنے کا عمل ہے۔ اس میں اکثر سیکیورٹی اقدامات کو بائی پاس کر کے غیر مجاز رسائی حاصل کی جاتی ہے۔ سیکیورٹی کے سوراخ درحقیقت پروگرام یا اس کے ماحول کی ڈیزائن میں خامیاں ہوتی ہیں۔
آف بائی ون غلطیاں۔ ایک عام پروگرامنگ غلطی جو استحصال کے لیے استعمال ہوتی ہے وہ آف بائی ون ایرر ہے، جہاں پروگرامر ایک کی گنتی غلط کر دیتا ہے۔ اس سے ایسی کمزوریاں پیدا ہوتی ہیں جو حملہ آوروں کو ایڈمنسٹریٹو حقوق حاصل کرنے یا سیکیورٹی پابندیاں عبور کرنے کی اجازت دیتی ہیں۔ مثلاً، OpenSSH میں ایک آف بائی ون ایرر نے عام صارفین کو مکمل ایڈمن حقوق دلوا دیے۔
قانون کی حرف بہ حرف پیروی۔ پروگرام ہدایات کو بالکل ویسے ہی فالو کرتے ہیں جیسا لکھا گیا ہوتا ہے، چاہے نتیجہ پروگرامر کی نیت کے خلاف ہو۔ اس سے غیر متوقع اور تباہ کن نتائج نکل سکتے ہیں، جیسا کہ "لا ماکیا لوپ ہول" میں دیکھا گیا، جہاں ایک طالب علم نے قانونی خلا کا فائدہ اٹھا کر سافٹ ویئر کی چوری کو آسان بنایا بغیر ذاتی مالی فائدے کے۔
4۔ بفر اوور فلو اور فارمیٹ سٹرنگ: عمومی استحصال کی تکنیکیں
ان دونوں تکنیکوں کا حتمی مقصد ہدف پروگرام کے عمل درآمد کے بہاؤ پر قابو پانا ہے تاکہ اسے بدنیتی پر مبنی کوڈ چلانے پر مجبور کیا جا سکے جو مختلف طریقوں سے میموری میں چھپایا جا سکتا ہے۔
عام غلطیاں۔ کچھ عام پروگرامنگ غلطیاں ایسی ہوتی ہیں جن کا استحصال ہمیشہ واضح نہیں ہوتا۔ ان غلطیوں نے عمومی استحصال کی تکنیکوں کو جنم دیا ہے جو مختلف حالات میں استعمال کی جا سکتی ہیں۔ سب سے عام دو تکنیکیں بفر اوور فلو اور فارمیٹ سٹرنگ استحصال ہیں۔
بفر اوور فلو۔ بفر اوور فلو اس وقت ہوتا ہے جب پروگرام کسی بفر میں اس کی گنجائش سے زیادہ ڈیٹا لکھنے کی کوشش کرتا ہے، جس سے قریبی میموری جگہیں اوور رائٹ ہو جاتی ہیں۔ اس سے اہم ڈیٹا جیسے ریٹرن ایڈریس کو اوور رائٹ کر کے پروگرام کے عمل درآمد کے بہاؤ پر قابو پایا جا سکتا ہے۔
فارمیٹ سٹرنگ استحصال۔ فارمیٹ سٹرنگ استحصال میں printf()
جیسی فنکشنز کے فارمیٹ سٹرنگز کو اس طرح تبدیل کیا جاتا ہے کہ وہ کسی بھی میموری لوکیشن کو پڑھنے یا لکھنے کے قابل ہو جائیں۔ اس سے فنکشن پوائنٹرز یا دیگر اہم ڈیٹا کو اوور رائٹ کر کے پروگرام کے کنٹرول کو حاصل کیا جا سکتا ہے۔
5۔ میموری کی تقسیم: پروگرام کے عمل درآمد کے بہاؤ کو سمجھنا
پروگرام کی میموری پانچ حصوں میں تقسیم ہوتی ہے: ٹیکسٹ، ڈیٹا، بی ایس ایس، ہیپ، اور اسٹیک۔
میموری کی تنظیم۔ پروگرام کی میموری پانچ حصوں میں منقسم ہوتی ہے: ٹیکسٹ (کوڈ)، ڈیٹا، بی ایس ایس، ہیپ، اور اسٹیک۔ ہر حصہ مخصوص کام کے لیے ہوتا ہے، جیسے پروگرام کی ہدایات، عالمی متغیرات، یا عارضی ڈیٹا ذخیرہ کرنا۔ ان حصوں کی تنظیم کو سمجھنا کمزوریوں کے استحصال کے لیے نہایت اہم ہے۔
اسٹیک۔ اسٹیک عارضی جگہ ہے جہاں فنکشن کالز کے دوران سیاق و سباق محفوظ کیا جاتا ہے۔ اس میں پیرامیٹرز، مقامی متغیرات، اور پوائنٹرز شامل ہوتے ہیں جو فنکشن کے ختم ہونے کے بعد پروگرام کی حالت بحال کرنے کے لیے ضروری ہوتے ہیں۔ اسٹیک پر مبنی اوور فلو ریٹرن ایڈریس کو اوور رائٹ کر کے عمل درآمد کے بہاؤ کو بدل سکتا ہے۔
ہیپ۔ ہیپ متحرک میموری مختص کرنے کے لیے استعمال ہوتا ہے، جہاں پروگرام ضرورت کے مطابق میموری محفوظ کر سکتا ہے۔ ہیپ پر مبنی اوور فلو اہم متغیرات یا فنکشن پوائنٹرز کو اوور رائٹ کر کے سیکیورٹی خطرات پیدا کر سکتا ہے۔
6۔ کثیر صارف فائل اجازتیں: روٹ مراعات حاصل کرنا
اگر کسی SUID روٹ پروگرام کے عمل درآمد کے بہاؤ کو تبدیل کر کے اس میں بدنیتی پر مبنی کوڈ داخل کیا جائے، تو حملہ آور روٹ صارف کے طور پر پروگرام کو کچھ بھی کرنے پر مجبور کر سکتا ہے۔
لینکس کا سیکیورٹی ماڈل۔ لینکس ایک کثیر صارف آپریٹنگ سسٹم ہے جس میں مکمل نظامی اختیارات "روٹ" صارف کے پاس ہوتے ہیں۔ فائل اجازتیں صارفین اور گروپس کی بنیاد پر ہوتی ہیں تاکہ غیر مجاز رسائی روکی جا سکے۔
SUID پروگرامز۔ SUID (سیٹ یوزر آئی ڈی) پروگرامز غیر مراعات یافتہ صارفین کو ایسے نظامی کام کرنے کی اجازت دیتے ہیں جن کے لیے روٹ مراعات درکار ہوتی ہیں۔ جب کوئی SUID پروگرام چلایا جاتا ہے تو صارف کا مؤثر یوزر آئی ڈی پروگرام کے مالک، عموماً روٹ، میں تبدیل ہو جاتا ہے۔
SUID پروگرامز کا استحصال۔ اگر SUID روٹ پروگرام کے عمل درآمد کے بہاؤ کو تبدیل کر کے بدنیتی پر مبنی کوڈ چلایا جائے، تو حملہ آور روٹ مراعات حاصل کر سکتا ہے۔ یہ بفر اوور فلو یا فارمیٹ سٹرنگ استحصال کے ذریعے ممکن ہے، جس سے حملہ آور نظام پر مکمل کنٹرول حاصل کر لیتا ہے۔
7۔ نیٹ ورکنگ: مواصلات کے لیے معیاری پروٹوکولز پر انحصار
نیٹ ورکنگ کا مقصد مواصلات ہے، اور دو یا زیادہ فریقین کے درمیان صحیح رابطے کے لیے معیاری اصول و ضوابط ضروری ہوتے ہیں۔
OSI ماڈل۔ نیٹ ورک مواصلات اوپن سسٹمز انٹر کنیکشن (OSI) ریفرنس ماڈل کے تحت معیاری پروٹوکولز پر منحصر ہوتی ہے۔ یہ ماڈل سات تہوں پر مشتمل ہے، جو مواصلات کے مختلف پہلوؤں کو سنبھالتے ہیں، جیسے فزیکل کنکشن سے لے کر ایپلیکیشن تک۔
اہم تہیں۔ نیٹ ورک تہہ (IP)، ٹرانسپورٹ تہہ (TCP/UDP)، اور ڈیٹا-لنک تہہ (ایتھرنیٹ) نیٹ ورک کی کمزوریوں کو سمجھنے کے لیے خاص اہمیت رکھتی ہیں۔ یہ تہیں ایڈریسنگ، روٹنگ، قابل اعتماد ڈیٹا ٹرانسفر، اور ہارڈویئر ایڈریسنگ کو سنبھالتی ہیں۔
پیکٹس اور انکیپسولیشن۔ ڈیٹا پیکٹس کی صورت میں منتقل ہوتا ہے، جو ہر تہہ پر پروٹوکول ہیڈرز کے ساتھ لپیٹے جاتے ہیں۔ ان ہیڈرز کی ساخت اور ان کے باہمی تعامل کو سمجھنا نیٹ ورک کی کمزوریوں کے استحصال کے لیے ضروری ہے۔
8۔ نیٹ ورک سنفنگ: ڈیٹا کی ترسیل میں کمزوریوں کا انکشاف
پروگرام کا استحصال ہیکنگ کا لازمی جزو ہے۔
پرومسکوئس موڈ۔ نیٹ ورک سنفنگ میں نیٹ ورک پر منتقل ہونے والے پیکٹس کو پکڑنا شامل ہے۔ غیر سوئچڈ نیٹ ورک میں، ڈیوائسز کو پرومسکوئس موڈ پر سیٹ کیا جا سکتا ہے، جو انہیں تمام پیکٹس پکڑنے کی اجازت دیتا ہے، چاہے وہ ان کے لیے نہ ہوں۔
سوئچڈ نیٹ ورکس۔ سوئچڈ نیٹ ورکس ٹریفک کو مخصوص پورٹس تک محدود کرتے ہیں جو MAC ایڈریسز کی بنیاد پر ہوتی ہیں، جس سے سنفنگ مشکل ہو جاتی ہے۔ تاہم، ARP ری ڈائریکشن جیسی تکنیکیں اس سیکیورٹی کو عبور کر سکتی ہیں۔
ARP ری ڈائریکشن۔ ARP ری ڈائریکشن میں ARP جوابات کو جعلی بنا کر ہدف مشینوں کے ARP کیشز کو زہریلا کیا جاتا ہے، جس سے ان کا ٹریفک حملہ آور کی مشین سے گزرنے پر مجبور ہو جاتا ہے۔ اس سے حملہ آور ٹریفک کو سنف کر کے اس میں تبدیلی بھی کر سکتا ہے۔
9۔ کرپٹولوجی: سیکیورٹی اور عملیّت کا توازن
علم بذات خود نہ اچھا ہے نہ برا؛ اس کی اخلاقیات اس کے استعمال میں پوشیدہ ہیں۔
کرپٹوگرافی اور کرپٹو انالیسس۔ کرپٹولوجی میں کرپٹوگرافی (خفیہ مواصلات کا فن) اور کرپٹو انالیسس (ان خفیہ پیغامات کو توڑنے کا فن) شامل ہیں۔ مضبوط کرپٹوگرافی آن لائن لین دین اور حساس معلومات کے تحفظ کے لیے ناگزیر ہے۔
غیر مشروط بمقابلہ حسابی سیکیورٹی۔ غیر مشروط سیکیورٹی، جیسا کہ ون ٹائم پیڈز، لامحدود وسائل کے باوجود ناقابل شکست ہوتی ہے، مگر اکثر غیر عملی ہوتی ہے۔ حسابی سیکیورٹی اس بات پر منحصر ہے کہ موجودہ ٹیکنالوجی کے تحت کسی سائفر کو معقول وقت میں توڑنا کتنا مشکل ہے۔
سمیٹرک بمقابلہ اسمیٹرک انکرپشن۔ سمیٹرک سائفرز انکرپشن اور ڈکرپشن کے لیے ایک ہی کلید استعمال کرتے ہیں، جو تیز رفتار مگر کلید کی تقسیم میں مشکلات پیدا کرتے ہیں۔ اسمیٹرک سائفرز عوامی اور نجی کلیدوں کا استعمال کرتے ہیں، جو کلید کے تبادلے کو آسان بناتے ہیں مگر رفتار کم کرتے ہیں۔ ہائبرڈ سائفرز دونوں طریقوں کو ملا کر بہترین سیکیورٹی اور کارکردگی فراہم کرتے ہیں۔
10۔ وائرلیس 802.11b انکرپشن کا استحصال: WEP حملے
نیوکلیئر فزکس اور بایوکیمسٹری کی سائنسیں قتل کے لیے استعمال ہو سکتی ہیں، مگر یہ ہمیں سائنسی ترقی اور جدید طب بھی فراہم کرتی ہیں۔
WEP کا مقصد۔ WEP (وائرڈ ایکویویلنٹ پرائیویسی) کو وائرڈ نیٹ ورک کے برابر سیکیورٹی فراہم کرنے کے لیے ڈیزائن کیا گیا تھا، مگر اس پروٹوکول کی کمزوریاں اسے مختلف حملوں کے لیے حساس بناتی ہیں۔
WEP کا انکرپشن عمل۔ WEP RC4 اسٹریم سائفر استعمال کرتا ہے جس میں 24 بٹ کا انیشیلائزیشن ویکٹر (IV) اور 40 یا 104 بٹ کی کلید شامل ہوتی ہے۔ IV کو کلید کے ساتھ جوڑ کر RC4 الگورتھم کو بیج دیا جاتا ہے، جو کی اسٹریم پیدا کرتا ہے جسے پیغام کے ساتھ XOR کیا جاتا ہے۔
WEP کی کمزوریاں۔ WEP آف لائن برٹ فورس حملوں، کی اسٹریم کے دوبارہ استعمال، اور IV پر مبنی ڈکرپشن ڈکشنری حملوں کے لیے حساس ہے۔ ان کمزوریوں کا فائدہ اٹھا کر WEP کیز کو توڑا جا سکتا ہے اور وائرلیس نیٹ ورکس تک غیر مجاز رسائی حاصل کی جا سکتی ہے۔
آخری تازہ کاری:
FAQ
What's Hacking: The Art of Exploitation about?
- Introduction to Hacking: The book introduces hacking as a form of creative problem-solving, focusing on finding unconventional solutions.
- Technical Foundation: It provides a comprehensive technical foundation, covering essential hacking techniques often missing in other literature.
- Core Techniques: Readers learn about exploiting buffer overflows, writing shellcode, and understanding networking and cryptology.
Why should I read Hacking: The Art of Exploitation?
- Comprehensive Learning: Ideal for those serious about ethical hacking or understanding system vulnerabilities.
- Hands-On Approach: Encourages experimentation with code examples on a Linux system for practical understanding.
- Mindset Development: Helps develop a hacker mindset, fostering creative problem-solving and security awareness.
What are the key takeaways of Hacking: The Art of Exploitation?
- Understanding Exploits: Gain insights into how exploits work and how to defend against them, including buffer overflows and format string vulnerabilities.
- Hacker Ethic: Discusses the Hacker Ethic, promoting the free flow of information and knowledge pursuit.
- Practical Skills: Equips readers with skills to write hacks and understand security vulnerabilities.
How does Hacking: The Art of Exploitation define hacking?
- Creative Problem Solving: Describes hacking as creating problem-solving methods through unconventional means.
- Beyond Criminality: Emphasizes that hacking is not inherently criminal but a means of innovation and exploration.
- Historical Context: Traces hacking origins to early computer enthusiasts who creatively manipulated systems.
What is the Hacker Ethic mentioned in Hacking: The Art of Exploitation?
- Free Information: Promotes the belief that information should be free and accessible to all.
- Learning and Mastery: Values continuous learning and mastery over technology, encouraging boundary-pushing and innovation.
- Community and Collaboration: Fosters a sense of community among hackers, where knowledge sharing and collaboration are encouraged.
What are some core techniques covered in Hacking: The Art of Exploitation?
- Buffer Overflows: Explains exploiting programs using buffer overflows, a common software vulnerability.
- Shellcode Writing: Teaches writing and injecting shellcode, essential for executing arbitrary code on target systems.
- Network Traffic Manipulation: Covers techniques to redirect network traffic and hijack TCP connections, enhancing network security understanding.
How does Jon Erickson explain buffer overflows in Hacking: The Art of Exploitation?
- Detailed Explanation: Provides a thorough explanation of buffer overflows, including their occurrence and implications.
- Practical Examples: Includes practical examples and code snippets to illustrate buffer overflow exploitation.
- Mitigation Strategies: Discusses strategies for mitigating buffer overflow vulnerabilities, emphasizing secure coding practices.
What is the significance of shellcode in hacking as explained in Hacking: The Art of Exploitation?
- Execution of Arbitrary Code: Shellcode is crucial for executing arbitrary code on a target system, a key component of many exploits.
- Crafting Shellcode: Teaches writing shellcode that is small, efficient, and free of null bytes for successful exploitation.
- Polymorphic Shellcode: Discusses creating polymorphic shellcode to evade detection by security systems.
What are some specific methods discussed in Hacking: The Art of Exploitation?
- Buffer Overflow Exploits: Details how buffer overflows can be exploited to execute arbitrary code by manipulating stack memory.
- Format String Vulnerabilities: Explains exploiting format string vulnerabilities to read or write arbitrary memory locations.
- Network Attacks: Covers network attacks like ARP spoofing and TCP/IP hijacking, demonstrating traffic interception and manipulation.
How does Hacking: The Art of Exploitation approach the topic of network security?
- Comprehensive Coverage: Covers various aspects of network security, including common attacks and vulnerabilities.
- Practical Techniques: Includes techniques for securing networks, such as implementing firewalls and intrusion detection systems.
- Real-World Examples: Uses real-world examples to illustrate the impact of network vulnerabilities, emphasizing the importance of security.
What are the best quotes from Hacking: The Art of Exploitation and what do they mean?
- "Hacking is about understanding the rules of the system.": Emphasizes understanding systems to identify vulnerabilities, highlighting the hacker mindset.
- "The best way to learn is by doing.": Reflects the book's hands-on approach, encouraging practical exercises and real-world application.
- "Vulnerabilities exist in every system.": Reminds readers that no system is completely secure, underscoring the need for continuous security improvement.
How can I apply the knowledge from Hacking: The Art of Exploitation in real life?
- Ethical Hacking: Techniques can be applied in ethical hacking and penetration testing to identify and mitigate system vulnerabilities.
- Improving Security Practices: Understanding hacking techniques helps developers and IT professionals enhance security practices.
- Continuous Learning: Encourages a mindset of continuous learning and curiosity, staying updated on the latest hacking techniques and security measures.
جائزے
ہیکنگ: دی آرٹ آف ایکسپلویٹیشن اپنی گہرائی میں تکنیکی وضاحتوں کی وجہ سے بے حد سراہا جاتا ہے، جس میں ہیکنگ کی مختلف تکنیکوں جیسے بفر اوور فلو، نیٹ ورکنگ، اور کرپٹوگرافی کو تفصیل سے بیان کیا گیا ہے۔ قارئین اس کتاب کے ساتھ فراہم کردہ لائیو سی ڈی کے ذریعے عملی تجربات کرنے کے موقع کو خاص طور پر پسند کرتے ہیں۔ اگرچہ کچھ افراد کے لیے یہ کتاب مشکل اور کچھ حد تک پرانی محسوس ہو سکتی ہے، لیکن بہت سے ماہرین اسے لو لیول ایکسپلائٹس کو سمجھنے اور پروگرامنگ کی مہارتوں کو بہتر بنانے کے لیے ایک لازمی ذریعہ قرار دیتے ہیں۔ یہ کتاب خاص طور پر سائبر سیکیورٹی میں دلچسپی رکھنے والوں کے لیے تجویز کی جاتی ہے، تاہم یہ ابتدائی افراد کے لیے قدرے پیچیدہ ہو سکتی ہے اور اس کا زیادہ تر زور سی پروگرامنگ اور لینکس سسٹمز پر مرکوز ہے۔
Similar Books









