Mohsen Tahmasebi 🇺🇦 Profile picture
Computer nerd, Agnostic, Doomed by science. English account: @moh53n محسن طهماسبی

Sep 1, 13 tweets

چند روزی هست که جناب @Nima__Nikjoo ابهاماتی رو درباره اپ Oblivion مطرح کردن. آیا نسخه گیت هاب Oblivion با نسخه گوگل پلی فرق داره؟ آیا نسخه گیت هاب آلوده است؟
سند و مدرکی ارائه نشده، پس تصمیم گرفتم خودم موضوع رو به صورت فنی بررسی کنم:
(خلاصه اش: نه، فرقی بین دو نسخه نیست)
1/13


هشدار دادن Google Play Protect مسئله ای هست که جای فکر داره و باید بررسی شه، اما اینکه نسخه گیت هاب با گوگل فرق داره و هشدار امنیتی رندوم نداریم و...، حرف های جالبی هستن. پس در اینجا میخوایم بررسی کنیم که آیا واقعا نسخه گیت هاب Oblivion با نسخه گوگل پلی فرق داره؟
2/13

از اونجایی که ابهام عموما درباره نسخه 4 هست، پس اختصاصا همین نسخه رو بررسی میکنیم. مراحل رو جوری توضیح میدم که بقیه هم بتونن تکرار و نتیجه رو مقایسه کنن.
اول نسخه 4 رو از گیت هاب دانلود میکنم، بعد نسخه 4 رو از apkpure دانلود میکنم. اما از کجا بدونیم نسخه apkpure دقیقا
3/13

همون نسخه ای هست که روی گوگل پلی بوده؟
برای این کار آخرین نسخه Oblivion که 5 هست رو از گوگل پلی روی گوشی خودم دانلود میکنم، با APK extractor فایلش رو استخراج میکنم و signature هر دو رو مقایسه میکنم.
با keytool و apksigner بررسی کردم و نتیجه یکی بود.
4/13

هر دو با کلید گوگل پلی برای اپ Oblivion ساین شدن که نشون میده نسخه apkpure همون نسخه 4 اصلی گوگل پلی هست.
حالا میتونیم تفاوت نسخه گیت هاب و گوگل پلی رو بررسی کنیم. هر دو نسخه، باندل universal اپ برای معماری های مختلف هستن، پس بررسی کاملی خواهیم داشت.
5/13

اول apk هر دو نسخه رو با jadx باز میکنیم، بعد از فایل dex هر دو (کد های جاوا) هش میگیریم. همونطور که مشخصه، هر دو فایل دقیقا یکی هستن.
بعد از باینری های هر دو نسخه هش میگیریم، که بازم کاملا یکی هستن.
پس کد های برنامه یکسانن.
6/13

اما بیاید بد بینانه نگاه کنیم. شاید مکانیزم پیچیده ای به کار گرفته شده و بخش خطرناک، در resource های اپ جاساز شده. پس کل باز شده ی دو نسخه رو با هم مقایسه میکنیم.
چند تا تفاوت هست که اگرچه هیچکدوم کد نیستن، اما دونه دونه بررسی میکنیم.
7/13

گوگل پلی از شما باندل برنامه رو میگیره، یک سری تغییرات کوچیک روش اعمال میکنه و بعد منتشرش میکنه. تفاوت هایی که بالا در چند فایل دیدیم، دقیقا همین تغییرات هستن. بیاید دقیق تر بررسی کنیم.
اولی: این تفاوت AndroidManifest.xml دو نسخه است. واضحه که یک سری متادیتا
8/13

توسط گوگل پلی اضافه شده.
دومی، سومی، چهارمی و پنجمی، مربوط به تفاوت signature و نحوه ساین شدن دو نسخه هستن.
نسخه گیت هاب توسط کلید توسعه دهنده ساین شده، نسخه گوگل پلی توسط کلید اختصاصی گوگل پلی برای این اپ ساین شده و نحوه ساین شدن هم کمی متفاوته. اینم از تغییرات گوگل پلی بود
9/13

شیشمی هش فایل های داخل apk هست که چون گوگل پلی از باندل اصلی، نسخه های مختلفی میسازه، طبیعتا برای هر کدوم یک MANIFEST. MF جدید تولید میکنه. اینجا هم با مقایسه دو نسخه میشه فهمید که طی فرایند بهینه سازی گوگل پلی، تغییراتی در این نسخه رخ داده و عادیه.
10/13

هفتمی، گوگل پلی یک فایل جدید اضافه کرده که مربوط به splits فایل های apk هست و مورد هشتم هم خود این فایل اضافه شده است. اینم مربوط به قابلیت ماژولار بودن apk هاست که گوگل پلی ازش استفاده میکنه و عادیه.
نهمی هم مثل مورد 2 و 3 و 4 و 5، مربوط به فرایند ساین کردن
11/13

گوگل پلی هست. تمام.
این نشون میده که نسخه 4 گیت هاب و گوگل پلی اپ Oblivion با هم تفاوتی ندارن. اینکه چرا Google Play Protect به نسخه گیت هاب گیر میده، دلایل مختلفی میتونه داشته باشه.
12/13

اما عملا نسخه گوگل پلی و گیت هاب تفاوتی با هم ندارن. اگر نسخه گوگل پلی امنه، نسخه گیت هاب هم امنه.
خطاب به جناب @Nima__Nikjoo: اگر توان و حوصله بررسی فنی چیزی رو ندارید، تز خلاف واقع ندید، چراکه درباره نیت شما ابهامات زیادی ایجاد میکنه.
13/13

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling