برنامه نویسی

نمونه ساده از معکوس .APK (حذف تبلیغات)

خوب ، امروز من می خواهم یک مهندسی معکوس ساده را در مورد برنامه Android انجام دهم. به عنوان نمونه ، من یک برنامه شگفت انگیز APK Extractor سریعترین و پشتیبانی می کنم

ابزار

فرآیند

دریافت پرونده .APK توسط Extractor APK Fastest & SUPPOR.

صفحه اصلی استخراج کننده APK
آنچه می بینیم؟ ما یک تبلیغات وحشتناک را در برنامه بسیار شگفت انگیز مشاهده می کنیم.

کد جاوا را کشف کنید

و ما می توانیم چیزی شبیه به این را ببینیم:
صفحه نمایش

  • مشت از همه ما باید ببینیم AndroidManifest.xmlبشر
    اوه ، داداش ، خیلی ممنون!

android:name="com.iraavanan.apkextractor.ad.NoAdsActivity"
android:screenOrientation="portrait"/>
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • بیایید ببینیم NoAdsActivity، بدیهی است

مسیر در JADX است

Source code/com.iraavanan.apkextractor.ad.NoAdsActivityبشر

protected void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    setContentView(R.layout.activity_no_ads);
    ActionBar supportActionBar = getSupportActionBar();
    if (supportActionBar != null) {
        supportActionBar.setTitle(getString(R.string.premium));
    }
    ActionBar supportActionBar2 = getSupportActionBar();
    if (supportActionBar2 != null) {
        supportActionBar2.setDisplayHomeAsUpEnabled(true);
    }
    com.iraavanan.apkextractor.g.f fVar = com.iraavanan.apkextractor.g.f.a;
    if (fVar.b(this).getBoolean(getString(R.string.is_premium), false)) {
        J();
        return;
    }
// some code
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

OMG ، Bro ، آیا شما واقعاً یک پرچم برتر را در برنامه های مشترک نگه دارید؟!
وقتی آن را دیدم فکر کردم نمونه دیگری را بدست آورم ، اما اشکالی ندارد. ساده و قابل مشاهده است.

کد SMALI را استخراج و تغییر دهید

/opt/apktool/apktool d ApkExtractor_com.iraavanan.apkextractor.apk

بنابراین ما یک پوشه داریم ApkExtractor_com.iraavanan.apkextractor با کد SMALI. می توانید این پوشه را به عنوان یک پروژه در Android Studio باز کنید. فعالیت ما در همان مسیر: smali/com.iraavanan.apkextractor.ad.NoAdsActivity.smali

  • به دنبال شرایط در onCreate() عمل
:cond_1
sget-object p1, Lcom/iraavanan/apkextractor/g/f;->a:Lcom/iraavanan/apkextractor/g/f;

invoke-virtual {p1, p0}, Lcom/iraavanan/apkextractor/g/f;->b(Landroid/content/Context;)Landroid/content/SharedPreferences;

move-result-object v0

const v1, 0x7f10004a

invoke-virtual {p0, v1}, Landroid/app/Activity;->getString(I)Ljava/lang/String;

move-result-object v1

const/4 v2, 0x0

invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z

move-result v0

if-eqz v0, :cond_2

invoke-direct {p0}, Lcom/iraavanan/apkextractor/ad/NoAdsActivity;->J()V

goto/16 :goto_1
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

خیلی خوب به نظر نمی رسد 🙂 بیایید تعریف کنیم چه اتفاقی می افتد. دالوی
sget-object p1 //etc – ما در حال گرفتن یک شی هستیم و آن را وارد می کنیم p1
invoke-virtual {p1, p0} //etc – اجرای برخی از عملکردها p1 هدف p0 اشاره گر فعالیت ما است … احتمالاً 🙂 به نظر می رسد که ما به اشتراک گذاشته ایم
move-result-object v0 – محصولات مشترک را وارد کنید v0
const v1, 0x7f10004a – برخی از موارد مشابه مانند شناسه منبع
invoke-virtual {p0, v1} //etc – فعالیت p0 دریافت منبع رشته توسط v1 شناسه
move-result-object v1 – آن رشته را در داخل قرار دهید v1
const/4 v2, 0x0 – تعریف دروغ ثابت
invoke-interface {v0, v1, v2} //etc – عملکرد کلیدی ما آنچه را تعریف می کند
move-result v0 – نتیجه عملکرد به v0
if-eqz v0, :cond_2 – اگر نتیجه ما باشد 0 (دروغ) برنامه به :cond_2

بدیهی است ، ما باید نتیجه عملکرد را تغییر دهیم.

move-result v0

const/4 v0, 0x1

if-eqz v0, :cond_2
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بسته به .apk

/opt/apktool/apktool b ApkExtractor_com.iraavanan.apkextractor -o apkextractor.apk

zipalign -v -p 4 apkextractor.apk apkextractor_compressed.apk

keytool -genkeypair -v -keystore release-key.keystore -alias apkextractor -keyalg RSA -keysize 2048

apksigner sign --ks release-key.keystore --ks-key-alias apkextractor --out apkextractor_signed.apk apkextractor_compressed.apk

نصب و اجرا

  • نسخه برنامه پایه را حذف کنید

adb uninstall com.iraavanan.apkextractor

adb install apkextractor_signed.apk

صفحه اصلی استخراج کننده APK با تبلیغات

هوم … مشکلی پیش آمد …

خوب ، شاید من باید به گزینه Premium در برنامه بروم.

صفحه نمایش حق بیمه استخراج کننده APK

بیایید فعالیت توسط Back دکمه یا صفحه چرخش.

صفحه اصلی استخراج کننده APK بدون تبلیغات

بنابراین … این همه ، بدون تبلیغ است.


می خواهم در پایان چه بگویم؟ پرچم های حق بیمه را در داخل برنامه نگه ندارید.
با تشکر از توجه شما!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا