مهندسی معکوس یک اپلیکیشن اندرویدی: قسمت اول

هفته پیش از سر کنجکاوی خواستم با سورس کد یک اپلیکیشن اندرویدی سر و کله بزنم. مراحل کار ساده تر از اونی بود که فکر می کردم:

  1. دانلود فایل کامپایل شده (apk) از سایت apkpure
  2. نصب Apktool و دیکامپایل کردن این فایل دانلود شده توسط این برنامه (من در محیط لینوکس اینکار رو انجام دادم، فکر کنم در ویندوز هم به همین راحتی باشه)
  3. چون برنامه اش در اصل یک بانک اطلاعاتی بود، حدس میزدم اطلاعاتش رو به صورت یک فایل json ذخیره کرده باشه. اون فایل رو پیدا کردم و در سایت json-csv.com او فایل رو به CSV تبدیل کردم تا بتونم در اکسل بازش کنم و برخی ردیفهاش رو اصلاح کنم و ردیفهای جدید ایجاد کنم.
    من تا اینجا پیش رفتم ولی ادامه منطقیش این بود:
  4. تبدیل مجدد فایل CSV به Json. اینکار رو میشه در سایت csvjson.com به راحتی انجام داد.
  5. مجددا با برنامه Apktool فایل را کامپایل و به گوشی منتقل و نصبش کنیم.

البته مراحل ۳ و ۴ روی اپلیکیشنهای ساده ای که بانک اطلاعاتیشون رو در خود اپلیکیشن ذخیره می کنند (و بنابراین به صورت آفلاین هم کاملا کارایی دارند) کارایی دارند. خیلی از برنامه ها این نوع اطلاعات را در خودشان ذخیره نمی کنند، بلکه به صورت آنلاین (با استفاده از Rest API و جدیدا GraphQL) از یک یا چند سایت دیگر می خوانند.

برای من که تجربه جالبی بود و یکی دو ساعتی سرگرم شدم. اگر دوست داشتید، شما هم میتوانید اینکارها رو انجام بدید. برای آشنایی با جزئیات مراحلی که ممکنه براتون کمی پیچیده به نظر برسه (مراحل ۲ و ۵)، میتوانید جستجویی در ایتنرنت انجام بدهید، سایتهای زیادی هستند که توضیحات کافی ارائه کرده اند. مثلا این دو سایت که به زبان فارسی توضیح داده اند، اولی متنی و دومی آموزش ویدئویی (۱ و ۲)

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.