(غیر) سرکاری ہیبر ایپلی کیشن - HabrApp 2.0: رسائی حاصل کرنا

ایک سست اور پہلے سے ہی کافی بورنگ شام، میں، باہر نکل رہا ہوں۔ سرکاری ہیبر ایپلی کیشن، ایک بار پھر میں نے اپنی انگلیاں موڑیں، ہر ایک غیر کام کرنے والی خصوصیت کے لیے۔ یہاں، مثال کے طور پر، آپ تبصرہ نہیں کر سکتے، یہاں آپ کو ووٹ دینے کے حق سے انکار کیا جاتا ہے، اور عام طور پر، فارمولے اسکرین پر کیوں نظر نہیں آتے؟

(غیر) سرکاری ہیبر ایپلی کیشن - HabrApp 2.0: رسائی حاصل کرنا
یہ فیصلہ کیا گیا تھا: ہمیں کچھ آرام دہ، خوشگوار، اپنی اپنی چیز کی ضرورت ہے۔ حبر کے لیے آپ کی اپنی درخواست کے بارے میں کیا خیال ہے؟
صورتحال کو سمجھنے کے لیے میں آپ کو چند اسکرین شاٹس دیتا ہوں۔

(غیر) سرکاری ہیبر ایپلی کیشن - HabrApp 2.0: رسائی حاصل کرناکچھ ایسا لگتا ہے۔ اس --.کا habr.com کی درخواست

"تکلیفوں" کی فہرست

  • آپ کسی ایسی اشاعت کی درجہ بندی نہیں کر سکتے جس کی درجہ بندی 0 سے مختلف ہو۔
  • تبصرہ لکھنا ہمیشہ ممکن نہیں ہوتا
  • پولز کام نہیں کرتے
  • ڈارک تھیم میں فارمولے نظر نہیں آتے (سیاہ پر سیاہ)
  • تمام بک مارکس دستیاب نہیں ہیں۔

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

حصہ اول. رسائی کی تلاش ہے۔

فوری گوگل استفسار "habrahabr API" اس کا کہنا ہے کہ یہ پہلے ہی کافی پرانا ہے۔ ذخیرہ Github پر، تب سے اپ ڈیٹ نہیں ہوا۔ نومبر 21 2016اور یہ، ایک لمحے کے لیے، ڈھائی سال.

اس حقیقت کو نظر انداز کرتے ہوئے کہ یہ پی ایچ پی ہے، نیچے سکرول کریں اور پڑھیں:

درخواست کی شناخت حاصل کرنا

فائدہ اٹھانا یہ فارم Habrahabr پر، آپ کو مختصر طور پر نئی ایپلیکیشن کے جوہر اور اس مقصد کو بیان کرنے کی ضرورت ہے جس کے لیے اسے API کی ضرورت ہے۔

کوئی سوال نہیں ہے، اگر آپ کو رسائی حاصل کرنے کی ضرورت ہے، تو آپ کو اس کی ضرورت ہے۔ ہم ایک خط لکھتے ہیں (مختصرا):

لکھنا

پی ڈبلیو اے کی بنیاد پر حبر کے لیے درخواست دینے کی خواہش ہے۔ اس کی کئی وجوہات ہیں۔ 

پہلا اور سب سے واضح: اینڈرائیڈ ایپلی کیشن میری ذاتی ضروریات کو پورا نہیں کرتی۔

دوسرا: ہر قسم کی چیزوں کے بارے میں کافی مقامی اطلاعات نہیں ہیں جو عام طور پر ای میل کے ذریعے آتی ہیں (مثال کے طور پر تبصرے)۔

تیسرا: ذاتی ہضم (ایک نقطہ نظر کے طور پر) لوگوں/حبوں پر جو میری دلچسپی رکھتے ہیں، میری دلچسپیوں کو مدنظر رکھتے ہوئے۔

جواب، یقینا، بہت خوشگوار نہیں تھا، لیکن کم از کم ایماندار:

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

"ٹھیک ہے کوئی مسئلہ نہیں! ہم کچھ لے کر آئیں گے!" - میں نے اپنے آپ کو بتایا اور دیکھنے لگا۔

دوسرا حصہ. گہری کھدائی۔

منطق کی بنیاد پر، اگر ایپلیکیشن چل رہی ہے، تو اسے API تک رسائی حاصل ہے، اور یہ ایپلی کیشن میں ہارڈ وائرڈ ہے۔ آئیے تجزیہ کرتے ہیں۔

چونکہ ہم ٹریفک سے نمٹ رہے ہیں، وائر شارک ہماری پسند ہے۔ بغیر کسی تکلیف کے، فون کو ڈیسک ٹاپ کمپیوٹر کے ذریعے انٹرنیٹ سے منسلک کرنے کے بعد، ہم ایپلیکیشن کھولتے ہیں اور درخواستوں کو دیکھتے ہیں:

(غیر) سرکاری ہیبر ایپلی کیشن - HabrApp 2.0: رسائی حاصل کرنا
یہ واضح ہے کہ کچھ بھی واضح نہیں ہے۔

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

ڈی کمپائلڈ . APK، آئیے تلاش کرنا شروع کریں۔ کسی بھی API کو کیا ضرورت ہے؟ ٹھیک ہے، آخر پوائنٹ، وہ جگہ جہاں تمام درخواستیں جاتی ہیں۔ یہ شاید http(s) ہے، آئیے "https://" تلاش کرنے کی کوشش کریں:

فائل میں AuthLinkManager.smali ہم تلاش کرتے ہیں

.field OAUTH:Ljava/lang/String; = "https://habrahabr.ru/auth/o/%s/"
.field OAUTH_PARAMS:Ljava/lang/String; = "?client_id=%s&response_type=token&redirect_uri=%s"
.field OAUTH_REDIRECT_URL:Ljava/lang/String; = "http://cleverpumpkin.ru"

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

آئیے مزید دیکھتے ہیں۔ تلاش میں اگلی فائل جو آتی ہے۔ NetworkModule.smali:

const-string v0, "https://habr.com/api/v1/"

اور یہاں آپ کی درخواستوں کے ساتھ جانے کی جگہ ہے!

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

تاہم، سورس کوڈ میں اس متن کو تلاش کرنے سے متعلقہ معلومات حاصل نہیں ہوئیں...

لیکن اچانک میری نظروں میں سے ایک فائل میں کچھ دلچسپ لکیریں پڑی:

const-string p8, "log-tag"
invoke-static {p8, p2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

یہ، جیسا کہ آپ سمجھ سکتے ہیں، ایک لاگ انٹری ہے۔ لیکن کیا ریکارڈنگ؟

تیسرا حصہ۔ یہ نوشتہ جات ہیں!

ہم استعمال کرتے ہیں adb logcat ایپلیکیشن لاگز دیکھنے کے لیے۔

(غیر) سرکاری ہیبر ایپلی کیشن - HabrApp 2.0: رسائی حاصل کرنا

غیر متوقع طور پر، نوشتہ جات توقع سے بھی زیادہ تفصیلی نکلے۔

یہاں ہمارے پاس صرف وہی نہیں ہے جس کی ہمیں ضرورت ہے۔ client_idلیکن ٹوکن صارف/درخواست، اور لاگ ان и پاس ورڈ واضح متن میں!

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

اس صورت میں، ہوائی اڈے پر "مفت چارجنگ" کے نتیجے میں اکاؤنٹ چوری ہو سکتا ہے، لیکن کس کو اس کی ضرورت ہے؟
ان لاگز سے ہم نکال سکتے ہیں:

  • client_id и apikeyتک رسائی کی ضرورت ہے۔ اے پی آئی;
  • صارف کی اجازت کا URL (عجیب، لیکن اس طریقہ کار کے بارے میں ذخیرہ میں کچھ نہیں ہے، شاید یہ فراہم نہیں کیا گیا ہے؟)

ایسا ہی ہوا۔ اس چھوٹی سی تحقیق کی بنیاد پر، پہلے ہی ایک چھوٹے پروجیکٹ پر کام جاری ہے - ایک موبائل ایپلیکیشن کا ہمارا اپنا نفاذ۔ میں ان لوگوں سے کہتا ہوں جو پیغام لکھنے میں مدد کرنا چاہتے ہیں، اور باقی سب - ووٹ ڈالیں (کیونکہ میں یہ سمجھنا چاہتا ہوں کہ آیا کسی کو اس کی ضرورت ہے)۔

آپ کا شکریہ!

سروے میں صرف رجسٹرڈ صارفین ہی حصہ لے سکتے ہیں۔ سائن ان، برائے مہربانی.

کیا آپ Habr موبائل ایپلیکیشن استعمال کرتے ہیں؟

  • جی ہاں، میں اسے استعمال کرتا ہوں، میں اس سے خوش ہوں۔

  • ہاں، میں اسے استعمال کرتا ہوں، ایپلیکیشن تکلیف کا باعث بنتی ہے۔

  • نہیں، میں اپنے فون پر ویب ورژن استعمال کرتا ہوں۔

  • نہیں، میں اپنے کمپیوٹر سے Habr استعمال کرتا ہوں۔

357 صارفین نے ووٹ دیا۔ 30 صارفین غیر حاضر رہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں