خانه - سرویس
چگونه از یک برنامه نصب شده یک apk بسازیم. APK Extractor: APK را از یک برنامه نصب شده در اندروید استخراج کنید

یکی از برنامه های محبوب از این نوع است. به شما امکان می دهد فایل نصب را مستقیماً از فروشگاه رسمی استخراج کرده و آن را در رایانه شخصی خود ذخیره کنید. در این مورد، برنامه حتی نیازی به نصب بر روی رایانه شخصی ندارد - یک نسخه قابل حمل موجود است که به طور کامل از درایوهای خارجی کار می کند. هنگام راه اندازی Raccoon برای اولین بار، کاربر باید اعتبار حساب Google خود را وارد کند. شناسه دستگاه نیز درخواست شده است، اما این پارامتر قابل چشم پوشی است.

رابط برنامه از دو تب تشکیل شده است: دانلود و جستجو. هنگام جستجو می توانید از نام، شناسه یا پیوند موجود در کاتالوگ رسمی استفاده کنید. پس از پیدا کردن برنامه، می توانید آن را به عنوان یک فایل معمولی در رایانه شخصی خود ذخیره کنید و سپس به صورت دستی آن را روی دستگاه تلفن همراه دیگری نصب کنید.


یک کاتالوگ جایگزین محبوب برای اندروید که محصولاتی را از توسعه دهندگان مختلف ارائه می دهد. کلاینت دایرکتوری از نظر اندازه کوچک است که امکان استفاده از آن را در دستگاه های ارزان قیمت فراهم می کند. همه برنامه ها به دسته ها طبقه بندی شده اند، جستجوی راحت وجود دارد و خود برنامه ها را می توان به صورت فایل دانلود کرد.

و سپس برای تمیز کردن سریع گوشی خود از زباله، همیشه می توانید از Clean Master استفاده کنید. نمیدونی چیه؟ .

APK Downloader

برنامه افزودنی برای مرورگرهای کروم و فایرفاکس. همچنین به شما این امکان را می دهد که به سرعت ابزار انتخاب شده را به عنوان یک فایل جداگانه دانلود کنید. پس از فعال سازی افزونه کافیست به صفحه برنامه مورد نظر در گوگل پلی رفته و از کلید F5 استفاده کنید. صفحه رفرش می شود و دکمه دانلود را برای مورد مربوطه نمایش می دهد.

روش های دیگر

همچنین راه هایی برای دانلود فایل های apk بدون نصب نرم افزار شخص ثالث وجود دارد. به عنوان مثال، به جای افزونه APK Downloader، می توانید از سرویس آنلاینی با همین نام استفاده کنید. کافی است منبع را باز کنید، پیوندی به برنامه را در یک فرم خاص وارد کنید و دکمه ای را دریافت کنید که فعال سازی آن شروع به دانلود می کند.

راه دیگر: صفحه مورد نظر را در Google Play باز کنید و به صورت دستی play.google.com را در نوار آدرس مرورگر به apk-dl.com تغییر دهید (باید بقیه آدرس را بگذارید). پس از رفرش صفحه، به کاربر فرصت داده می شود تا فایل انتخابی را دانلود کند.

بسیاری از کاربران اندروید می دانند که با استفاده از اپلیکیشن Titanium Backup می توانید اپلیکیشن را به صورت فایل apk از دستگاه استخراج کنید. امروز روشی را بررسی خواهیم کرد که با آن می توانید فایل apk یک برنامه را مستقیماً از فروشگاه Google Play خارج کنید.

مزیت این روش این است که نیازی به نصب برنامه ابتدا بر روی دستگاه نیست. متأسفانه این روش فقط برای برنامه های رایگان کار می کند. بنابراین آنچه ما نیاز داریم:

1. گوگل کروم

یک میانبر دوم برای Google Chrome روی دسکتاپ خود ایجاد کنید.

روی میانبر کلیک راست کرده و "Properties" را انتخاب کنید. در قسمت "Object" دستورات زیر را با فاصله از هم جدا کنید:

نادیده گرفتن-گواهی-خطاها

اجازه اجرای محتوای ناامن

چیزی شبیه به این خواهد بود:

...\chrome.exe" --ignore-certificate-errors --allow-running-insecure-content

روی «اعمال» و «OK» کلیک کنید.

پس از این عملیات، باید مرورگر را مجددا راه اندازی کنید و تمام نمونه های در حال اجرا برنامه را ببندید.

2. نام حساب Google و شناسه دستگاه

در واقع، ما قصد داریم دانلود یک برنامه را روی دستگاه شبیه سازی کنیم، بنابراین شما باید نام اکانت خود، یعنی نام صندوق پست گوگل و همچنین شماره شناسایی دستگاه اندرویدی خود را بدانید.

همه چیز با جعبه مشخص است، اما برای پیدا کردن شناسه دستگاه، شماره گیر را در تلفن هوشمند خود باز کنید و *#*#8255#*#* را شماره گیری کنید.

در صفحه ای که ظاهر می شود، باید خط "شناسه دستگاه" را پیدا کنید:

شماره شناسه ترکیبی از حروف و اعداد زیر "android-" است. به عنوان مثال، اگر در خط "ID دستگاه: android-1122aa33bb445577" را مشاهده کنید، شناسه ترکیبی "1122aa33bb445577" است. این ترکیب را یادداشت کنید.

اگر به دلایلی نتوانستید شناسه دستگاه خود را با استفاده از روش بالا پیدا کنید، می توانید به سادگی برنامه Device ID را از فروشگاه Google Play دانلود کنید.

3. APK Downloader

افزونه مرورگر به نام APK Downloader را دانلود کنید.

در پنجره ای که ظاهر می شود آدرس اکانت گوگل ما یعنی آدرس ایمیل را وارد کنید. رمز عبور (بله، ترسناک)، و همچنین شناسه دستگاه. پس از آن، روی "ورود" کلیک کنید.

در پنجره بعدی، کشور و اپراتور تلفن همراه خود را انتخاب کنید و سپس روی "ذخیره تنظیمات" کلیک کنید. در مرحله بعد، پنجره ای ظاهر می شود که نشان می دهد برنامه افزودنی با موفقیت فعال شده است.

4. گوگل پلی استور

اکنون به فروشگاه Google Play مورد علاقه ما بروید و هر برنامه رایگان را انتخاب کنید. یک سر سبز مشخص با یک فلش در سمت راست نوار آدرس مرورگر ظاهر می شود.

روی این نماد کلیک کنید و برنامه با موفقیت به عنوان یک فایل apk در رایانه شما دانلود می شود. اساسا، ما اکنون می دانیم که چگونه توزیع های مستقل برنامه های کاربردی رایگان ایجاد کنیم.

تأیید یکپارچگی مطلق توسعه دهنده برنامه افزودنی APK Downloader امکان پذیر نیست، بنابراین اطلاعات حساب خود را با خطر و خطر خود وارد کنید. علاوه بر این، در اصل، چنین اقداماتی قوانین استفاده از فروشگاه Google Play را نقض می کند.

گاهی اوقات برخی از اپلیکیشن ها در اندروید به نوعی مناسب کاربر نیستند. یک مثال تبلیغات سرزده است. و همچنین اتفاق می افتد که برنامه برای همه خوب است، اما ترجمه در آن یا کج است یا کاملاً وجود ندارد. یا مثلا برنامه آزمایشی است ولی راهی برای دریافت نسخه کامل وجود ندارد. چگونه شرایط را تغییر دهیم؟

معرفی

در این مقاله ما در مورد نحوه جداسازی بسته APK با یک برنامه صحبت خواهیم کرد، به ساختار داخلی آن نگاه می کنیم، بایت کد را جدا می کنیم و کامپایل می کنیم و همچنین سعی می کنیم چندین تغییر در برنامه ها ایجاد کنیم که می تواند مزایایی را برای ما به ارمغان بیاورد.

برای انجام همه این کارها، حداقل به دانش اولیه زبان جاوا، که برنامه های اندروید با آن نوشته می شوند، و زبان XML که در همه جای اندروید استفاده می شود - از توصیف خود برنامه و حقوق دسترسی آن گرفته تا ذخیره رشته ها نیاز دارید. روی صفحه نمایش داده خواهد شد. همچنین به توانایی استفاده از نرم افزارهای تخصصی کنسول نیاز خواهید داشت.

بنابراین، یک بسته APK چیست که در آن کاملاً تمام نرم افزارهای اندرویدی توزیع شده است؟

حذف کامپایل برنامه

در این مقاله ما فقط با کدهای برنامه جدا شده کار کردیم، اما اگر تغییرات جدی تری در برنامه های بزرگ ایجاد شود، درک کد smali بسیار دشوارتر خواهد شد. خوشبختانه، می‌توانیم کد dex را به کد جاوا تبدیل کنیم، که اگرچه اصلی نیست و کامپایل نشده است، اما خواندن و درک منطق برنامه بسیار آسان‌تر است. برای این کار به دو ابزار نیاز داریم:

  • dex2jar یک مترجم بایت کد Dalvik به بایت کد JVM است که بر اساس آن می توانیم کدهایی را در زبان جاوا بدست آوریم.
  • jd-gui خود یک دیکامپایلر است که به شما امکان می دهد کد جاوا قابل خواندن را از بایت کد JVM دریافت کنید. به عنوان جایگزین، می توانید از Jad (www.varaneckas.com/jad) استفاده کنید. اگرچه بسیار قدیمی است، اما در برخی موارد کد خواناتری نسبت به Jd-gui تولید می کند.

اینگونه باید از آنها استفاده کرد. ابتدا dex2jar را راه اندازی می کنیم و مسیر بسته apk را به عنوان آرگومان مشخص می کنیم:

% dex2jar.sh mail.apk

در نتیجه، بسته جاوا mail.jar در دایرکتوری فعلی ظاهر می‌شود، که از قبل می‌توان آن را در jd-gui برای مشاهده کد جاوا باز کرد.

تنظیم بسته های APK و دریافت آنها

بسته برنامه اندروید در اصل یک فایل ZIP معمولی است که برای مشاهده محتویات یا استخراج آن به ابزار خاصی نیاز ندارد. کافی است یک آرشیو داشته باشید - 7zip برای ویندوز یا کنسول unzip در لینوکس. اما این در مورد لفاف است. داخلش چیه؟ به طور کلی، ساختار زیر را در داخل داریم:

  • META-INF/- حاوی یک گواهی دیجیتال از برنامه، شناسایی سازنده آن، و چک جمع فایل های بسته.
  • res/ - منابع مختلفی که برنامه در کار خود از آنها استفاده می کند، مانند تصاویر، توضیحات توصیفی رابط، و همچنین داده های دیگر.
  • AndroidManifest.xml- شرح برنامه این شامل، برای مثال، لیستی از مجوزهای مورد نیاز، نسخه اندروید مورد نیاز و وضوح صفحه نمایش مورد نیاز است.
  • classes.dex- بایت کد برنامه کامپایل شده برای ماشین مجازی Dalvik.
  • منابع.arsc- همچنین منابع، اما از نوع متفاوت - به ویژه، رشته ها (بله، این فایل را می توان برای Russification استفاده کرد!).

فایل‌ها و دایرکتوری‌های فهرست‌شده، اگر نه در همه، در اکثریت قریب به اتفاق APK‌ها هستند. با این حال، چند فایل/دایرکتوری نه چندان رایج دیگر وجود دارد که ارزش ذکر کردن را دارند:

  • دارایی های- آنالوگ منابع تفاوت اصلی این است که برای دسترسی به یک منبع باید شناسه آن را بدانید، اما لیست دارایی ها را می توان به صورت پویا با استفاده از متد AssetManager.list() در کد برنامه به دست آورد.
  • lib- کتابخانه های لینوکس بومی که با استفاده از NDK (Native Development Kit) نوشته شده اند.

این فهرست توسط تولیدکنندگان بازی که موتورهای بازی خود را که به زبان C/C++ نوشته شده‌اند، و همچنین سازندگان برنامه‌های کاربردی با کارایی بالا (مثلاً Google Chrome) در آنجا قرار می‌دهند. ما دستگاه را کشف کردیم. اما چگونه فایل پکیج اپلیکیشن مورد نظرتان را دریافت می کنید؟ از آنجایی که دریافت فایل‌های APK از دستگاه بدون روت امکان‌پذیر نیست (آنها در فهرست /data/app قرار دارند)، و روت کردن همیشه توصیه نمی‌شود، حداقل سه راه برای دریافت فایل برنامه به رایانه شما وجود دارد:

  • پسوند APK Downloader برای کروم.
  • برنامه واقعی APK Leecher.
  • میزبانی فایل های مختلف و Varezniks.

استفاده از کدام یک موضوع سلیقه ای است. ما ترجیح می دهیم از برنامه های جداگانه استفاده کنیم، بنابراین استفاده از Real APK Leecher را شرح می دهیم، به خصوص که در جاوا نوشته شده است و بر این اساس، در ویندوز یا Nix کار می کند.

پس از شروع برنامه، باید سه قسمت ایمیل، رمز عبور و شناسه دستگاه را پر کنید و یک زبان را انتخاب کنید. دو مورد اول ایمیل و رمز عبور حساب Google شما هستند که در دستگاه استفاده می کنید. سومین شناسه دستگاه است و با تایپ کد روی شماره گیر قابل دریافت است # #8255## و سپس خط Device ID را پیدا کنید. هنگام پر کردن، فقط باید شناسه را بدون پیشوند android- وارد کنید.

پس از پر کردن و ذخیره کردن، اغلب پیام "خطا هنگام اتصال به سرور" ظاهر می شود. هیچ ربطی به Google Play ندارد، بنابراین با خیال راحت آن را نادیده بگیرید و به دنبال بسته های مورد علاقه خود بگردید.

مشاهده و اصلاح کنید

فرض کنید بسته‌ای را پیدا کرده‌اید که مورد علاقه‌تان است، آن را دانلود کرده‌اید، بسته‌بندی آن را باز کرده‌اید... و وقتی سعی کردید برخی از فایل‌های XML را مشاهده کنید، از اینکه متوجه شدید که فایل متنی نیست، متعجب شدید. چگونه آن را دیکامپایل کنیم و به طور کلی چگونه با بسته ها کار کنیم؟ آیا نصب SDK واقعا ضروری است؟ خیر اصلا نیازی به نصب SDK نیست. در واقع، تمام مراحل استخراج، اصلاح و بسته بندی بسته های APK به ابزارهای زیر نیاز دارد:

  • بایگانی ZIPبرای باز کردن و بسته بندی؛
  • کوچک- دستگاه مجازی Dalvik بایت کد اسمبلر/جداساز (code.google.com/p/smali)؛
  • aapt- ابزاری برای بسته بندی منابع (به طور پیش فرض، منابع به شکل باینری برای بهینه سازی عملکرد برنامه ذخیره می شوند). در Android SDK گنجانده شده است، اما می توان آن را به طور جداگانه دریافت کرد.
  • امضاکننده- ابزاری برای امضای دیجیتالی یک بسته اصلاح شده (bit.ly/Rmrv4M).

می توانید از همه این ابزارها به طور جداگانه استفاده کنید، اما این کار ناخوشایند است، بنابراین بهتر است از نرم افزارهای سطح بالاتر ساخته شده بر اساس آنها استفاده کنید. اگر روی لینوکس یا Mac OS X کار می کنید، ابزاری به نام apktool وجود دارد. این به شما امکان می دهد منابع را به شکل اصلی خود باز کنید (از جمله فایل های XML باینری و arsc)، بسته ای را با منابع تغییر یافته بازسازی کنید، اما نمی داند چگونه بسته ها را امضا کند، بنابراین باید ابزار امضا کننده را به صورت دستی اجرا کنید. با وجود این واقعیت که ابزار به زبان جاوا نوشته شده است، نصب آن کاملا غیر استاندارد است. ابتدا باید خود فایل jar را دریافت کنید:

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ export PATH=~/bin:$PATH

اگر روی ویندوز کار می کنید، پس یک ابزار عالی برای آن به نام Virtuous Ten Studio وجود دارد که تمام این ابزارها (از جمله خود apktool) را نیز جمع آوری می کند، اما به جای یک رابط CLI، یک رابط گرافیکی بصری در اختیار کاربر قرار می دهد که با آن می توانید عملیات باز کردن، جداسازی و کامپایل کردن را با چند کلیک انجام دهید. این ابزار Donation-ware است، یعنی گاهی اوقات ویندوز ظاهر می شود که از شما مجوز دریافت می کند، اما در نهایت می توان این را تحمل کرد. هیچ فایده ای در توصیف آن وجود ندارد، زیرا می توانید در عرض چند دقیقه رابط کاربری را درک کنید. اما apktool با توجه به کنسولی بودنش باید بیشتر مورد بحث قرار گیرد.


بیایید به گزینه های apktool نگاه کنیم. به طور خلاصه، سه دستور اصلی وجود دارد: d (decode)، b (build) و if (install frame). اگر همه چیز با دو دستور اول مشخص است، پس عبارت شرطی سوم چه کاری انجام می دهد؟ فریمورک UI مشخص شده را باز می کند، که در مواردی که هر بسته سیستمی را تجزیه می کنید ضروری است.

بیایید به جالب ترین گزینه های دستور اول نگاه کنیم:

  • -s- فایل های dex را از هم جدا نکنید.
  • -r- منابع را باز نکنید.
  • - اطلاعات اشکال زدایی را در نتایج جداسازی فایل dex وارد نکنید.
  • -- فریم مسیر- از چارچوب UI مشخص شده به جای چارچوب ساخته شده در apktool استفاده کنید. حالا بیایید به چند گزینه برای دستور b نگاه کنیم:
  • - مونتاژ اجباری بدون بررسی تغییرات؛
  • - اگر به دلایلی می خواهید از منبع دیگری استفاده کنید، مسیر aapt (ابزاری برای ساخت بایگانی APK) را نشان دهید.

استفاده از apktool بسیار ساده است؛ برای انجام این کار، کافی است یکی از دستورات و مسیر APK را مشخص کنید، برای مثال:

$ apktool d mail.apk

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

آماده سازی. غیرفعال کردن تبلیغات

البته تئوری خوب است، اما اگر نمی‌دانیم با بسته‌های بسته‌بندی نشده چه کنیم، چرا به آن نیاز است؟ بیایید سعی کنیم تئوری را به نفع خود اعمال کنیم، یعنی برخی از نرم افزارها را اصلاح کنیم تا تبلیغات را به ما نشان ندهد. به عنوان مثال، اجازه دهید مشعل مجازی باشد - یک مشعل مجازی. این نرم افزار برای ما ایده آل است، زیرا با تبلیغات مزاحم پر شده است و علاوه بر این، به اندازه کافی ساده است که در جنگل کد گم نشوید.


پس با استفاده از یکی از روش های بالا اپلیکیشن را از بازار دانلود کنید. اگر تصمیم دارید از Virtuous Ten Studio استفاده کنید، به سادگی فایل APK را در برنامه باز کنید و آن را از حالت فشرده خارج کنید، یک پروژه ایجاد کنید (File -> New project)، سپس Import File را در منوی زمینه پروژه انتخاب کنید. اگر انتخاب شما بر روی apktool بود، فقط یک دستور را اجرا کنید:

$ apktool d com.kauf.particle.virtualtorch.apk

پس از این، یک درخت فایل مشابه آنچه در بخش قبل توضیح داده شد، در فهرست com.kauf.particle.virtualtorch ظاهر می شود، اما به جای فایل های dex و یک فایل apktool.yml، یک فهرست smali اضافی وجود دارد. اولی حاوی کد جداشده از فایل dex اجرایی برنامه است، دومی حاوی اطلاعات سرویس لازم برای apktool است تا بسته را دوباره جمع کند.

البته اولین جایی که باید نگاه کنیم AndroidManifest.xml است. و در اینجا بلافاصله با خط زیر روبرو می شویم:

حدس زدن اینکه مسئول اعطای مجوزهای برنامه برای استفاده از اتصال به اینترنت است، دشوار نیست. در واقع، اگر فقط بخواهیم از شر تبلیغات خلاص شویم، به احتمال زیاد فقط باید برنامه را از اینترنت مسدود کنیم. بیایید سعی کنیم این کار را انجام دهیم. خط مشخص شده را حذف می کنیم و سعی می کنیم نرم افزار را با استفاده از apktool بسازیم:

$ apktool b com.kauf.particle.virtualtorch

فایل APK به دست آمده در دایرکتوری com.kauf.particle.virtualtorch/build/ ظاهر می شود. با این حال، نصب آن امکان پذیر نخواهد بود، زیرا دارای امضای دیجیتال و جمع بندی فایل نیست (به سادگی یک فهرست META-INF/ ندارد). ما باید بسته را با استفاده از ابزار apk-signer امضا کنیم. راه اندازی شد. رابط از دو تب تشکیل شده است - در اول (Key Generator) کلیدها را ایجاد می کنیم ، در دوم (APK Signer) امضا می کنیم. برای ایجاد کلید خصوصی، فیلدهای زیر را پر کنید:

  • فایل هدف- فایل خروجی ذخیره کلید. معمولاً یک جفت کلید را ذخیره می کند.
  • کلمه عبورو تایید- رمز عبور برای ذخیره سازی؛
  • نام مستعار- نام کلید در انبار؛
  • رمز عبور مستعارو تایید- رمز عبور کلید مخفی؛
  • اعتبار- مدت اعتبار (به سال). مقدار پیش فرض بهینه است.

فیلدهای باقی مانده، به طور کلی، اختیاری هستند - اما حداقل یکی باید پر شود.


هشدار

برای امضای برنامه با استفاده از apk-signer، باید Android SDK را نصب کرده و مسیر کامل آن را در تنظیمات برنامه مشخص کنید.

تمام اطلاعات فقط برای مقاصد اطلاعاتی ارائه شده است. نه سردبیران و نه نویسنده مسئولیتی در قبال آسیب احتمالی ناشی از مطالب این مقاله ندارند.

اکنون می توانید APK را با این کلید امضا کنید. در برگه APK Signer، فایل جدید تولید شده را انتخاب کنید، رمز عبور، نام مستعار کلیدی و رمز عبور را وارد کنید، سپس فایل APK را پیدا کنید و با جسارت روی دکمه "Sign" کلیک کنید. اگر همه چیز خوب پیش برود، بسته امضا خواهد شد.

اطلاعات

از آنجایی که ما بسته را با کلید خودمان امضا کردیم، با برنامه اصلی در تضاد است، به این معنی که وقتی می خواهیم نرم افزار را از طریق مارکت به روز کنیم، با خطا مواجه می شویم.

امضای دیجیتال فقط برای نرم‌افزارهای شخص ثالث مورد نیاز است، بنابراین اگر برنامه‌های سیستمی را که با کپی کردن آنها در فهرست /system/app/ نصب می‌شوند تغییر می‌دهید، دیگر نیازی به امضای آنها ندارید.

پس از آن، بسته را در تلفن هوشمند خود دانلود کنید، آن را نصب کرده و راه اندازی کنید. Voila، آگهی از بین رفته است! اما در عوض، پیامی ظاهر شد که ما اینترنت نداریم یا مجوزهای مناسب را نداریم. در تئوری، این ممکن است کافی باشد، اما پیام آزاردهنده به نظر می رسد، و صادقانه بگویم، ما فقط با یک برنامه احمقانه خوش شانس بودیم. نرم افزاری که معمولاً نوشته شده است به احتمال زیاد اعتبار خود را روشن می کند یا اتصال اینترنت را بررسی می کند و در غیر این صورت به سادگی از راه اندازی خودداری می کند. چگونه در این مورد باشیم؟ البته کد را ویرایش کنید.

به طور معمول، نویسندگان برنامه زمانی که برنامه یا یکی از «فعالیت‌های» آن (به عبارت ساده، صفحه‌های برنامه) راه‌اندازی می‌شود، کلاس‌های خاصی را برای نمایش تبلیغات و روش‌های فراخوانی این کلاس‌ها ایجاد می‌کنند. بیایید سعی کنیم این کلاس ها را پیدا کنیم. ما به دایرکتوری smali می رویم، سپس com (org فقط شامل کتابخانه گرافیکی باز cocos2d است)، سپس kauf (این جایی است، زیرا این نام توسعه دهنده است و تمام کدهای او در آنجا وجود دارد) - و اینجاست. دایرکتوری بازاریابی در داخل ما تعداد زیادی فایل با پسوند smali پیدا می کنیم. اینها کلاس هایی هستند و قابل توجه ترین آنها کلاس Ad.smali است که از نام آن به راحتی می توان حدس زد که این کلاس تبلیغاتی است.

ما می‌توانیم منطق عملکرد آن را تغییر دهیم، اما حذف تماس‌های هر یک از روش‌های آن از خود برنامه بسیار ساده‌تر است. بنابراین، دایرکتوری بازاریابی را ترک می کنیم و به دایرکتوری ذرات مجاور و سپس virtualtorch می رویم. فایل MainActivity.smali در اینجا شایسته توجه ویژه است. این یک کلاس استاندارد اندروید است که توسط Android SDK ایجاد شده و به عنوان نقطه ورود به برنامه نصب شده است (مشابه با عملکرد اصلی در C). فایل را برای ویرایش باز کنید.

در داخل کد smali (اسمبلر محلی) وجود دارد. به دلیل ماهیت سطح پایین آن کاملاً گیج کننده و خواندن آن دشوار است، بنابراین ما آن را مطالعه نمی کنیم، بلکه به سادگی تمام ارجاعات به کلاس Ad را در کد پیدا می کنیم و آنها را نظر می دهیم. ما خط "تبلیغ" را در جستجو وارد می کنیم و به خط 25 می رسیم:

آگهی خصوصی فیلد:Lcom/kauf/marketing/Ad;

در اینجا یک فیلد تبلیغاتی برای ذخیره یک شیء کلاس Ad ایجاد می شود. ما با گذاشتن علامت ## در جلوی خط نظر می دهیم. ما به جستجو ادامه می دهیم. خط 423:

نسخه جدید نسخه 3، Lcom/kauf/marketing/Ad.

این جایی است که ایجاد شی رخ می دهد. نظر بدهیم جستجو را ادامه می دهیم و در خطوط 433، 435، 466، 468، 738، 740، 800 و 802 فراخوانی متدهای کلاس Ad را پیدا می کنیم. نظر بدهیم بنظر همینه صرفه جویی. اکنون بسته باید دوباره کنار هم قرار گیرد و از نظر عملکرد و وجود تبلیغات بررسی شود. برای خلوص آزمایش، خط حذف شده از AndroidManifest.xml را برمی گردانیم، بسته را مونتاژ می کنیم، امضا می کنیم و نصب می کنیم.

خوکچه هندی ما تبلیغات قابل مشاهده

اوه! تبلیغات فقط در زمانی که برنامه در حال اجرا بود ناپدید شد، اما در منوی اصلی باقی ماند، که هنگام راه اندازی نرم افزار مشاهده می کنیم. بنابراین، صبر کنید، اما نقطه ورودی کلاس MainActivity است، و تبلیغات در حالی که برنامه در حال اجرا بود ناپدید شد، اما در منوی اصلی باقی ماند، بنابراین نقطه ورودی متفاوت است؟ برای شناسایی نقطه ورودی واقعی، فایل AndroidManifest.xml را دوباره باز کنید. و بله، شامل خطوط زیر است:

آنها به ما می گویند (و مهمتر از آن اندروید) که فعالیتی به نام Start باید در پاسخ به تولید یک intent (رویداد) android.intent.action.MAIN از دسته android.intent.category.LAUNCHER راه اندازی شود. این رویداد زمانی ایجاد می‌شود که روی نماد برنامه در راه‌انداز ضربه بزنید، بنابراین نقطه ورودی، یعنی کلاس Start را تعیین می‌کند. به احتمال زیاد، برنامه نویس ابتدا یک برنامه بدون منوی اصلی نوشت که نقطه ورودی آن کلاس استاندارد MainActivity بود و سپس یک پنجره (اکتیویتی) جدید حاوی منو و توضیح در کلاس Start اضافه کرد و به صورت دستی آن را به ورودی تبدیل کرد. نقطه.

فایل Start.smali را باز کنید و دوباره به دنبال خط "Ad" بگردید، ما در خطوط 153 و 155 اشاره ای به کلاس FirstAd پیدا می کنیم. همچنین در کد منبع وجود دارد و با قضاوت از روی نام، وظیفه نمایش تبلیغات در صفحه اصلی را بر عهده دارد. بیایید بیشتر نگاه کنیم، ایجاد یک نمونه از کلاس FirstAd و یک intent وجود دارد که با توجه به زمینه، مربوط به این نمونه است، و سپس برچسب cond_10، که انتقال شرطی به آن دقیقاً قبل از ایجاد یک نمونه انجام می شود. از کلاس:

If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :cond_10

به احتمال زیاد، برنامه به نوعی به طور تصادفی محاسبه می کند که آیا تبلیغات باید در صفحه اصلی نشان داده شود یا خیر، و اگر نه، مستقیماً به cond_10 می پرد. خوب، بیایید کار او را ساده کنیم و انتقال شرطی را با یک غیرشرطی جایگزین کنیم:

#if-ne p1, v0, :cond_10 goto:cond_10

دیگر هیچ اشاره ای به FirstAd در کد وجود ندارد، بنابراین فایل را می بندیم و مشعل مجازی خود را با استفاده از apktool دوباره جمع می کنیم. آن را در گوشی هوشمند خود کپی کنید، نصب کنید، راه اندازی کنید. Voila، همه تبلیغات ناپدید شده اند، که ما به همه ما تبریک می گوییم.

نتایج

این مقاله تنها معرفی مختصری از روش های هک و اصلاح اپلیکیشن های اندروید است. بسیاری از مشکلات در پشت صحنه باقی ماندند، مانند حذف حفاظت، تجزیه کد مبهم، ترجمه و جایگزینی منابع برنامه، و همچنین اصلاح برنامه های نوشته شده با استفاده از Android NDK. با این حال، با داشتن دانش اولیه، فهمیدن همه چیز فقط مسئله زمان است.

سلام به خوانندگان سایت ما. یک روز یکی از بازدیدکنندگان درخواست کمک کرد؛ او باید فایل های APK را از یک تلفن هوشمند اندرویدی استخراج می کرد. بنابراین تصمیم گرفتیم پاسخ این سوال را در این مقاله شرح دهیم. با استفاده از این عملیات، می توانید از تمامی برنامه های نصب شده روی گوشی هوشمند، تبلت یا سایر ابزارهایی که سیستم عامل اندروید را اجرا می کنند، نسخه پشتیبان تهیه کنید.

در چه مواردی از برنامه های نصب شده نسخه پشتیبان تهیه می شود؟

موقعیت یک.شما باید گوشی خود را به تنظیمات کارخانه بازنشانی کنید، اما به اینترنت دسترسی ندارید یا فقط به موبایل دسترسی دارید. نمی‌خواهید دوباره برنامه‌ها را از Google Play بارگیری کنید زیرا زمان زیادی می‌برد. برای چنین مواردی است که امکان استخراج فایل های APK از دستگاه اندرویدی یا .

موقعیت دو.شما یک بازی هیجان انگیز نصب کرده اید که کش آن بسیار "وزن" است و دوست شما آن را دوست داشت و او همان اسباب بازی را می خواست ، اما باز هم دسترسی به اینترنت وجود ندارد. در اینجا باید بازی نصب شده را رزرو کنید. دستورالعمل‌های نصب صحیح بازی‌ها با کش را می‌توانید در اینجا پیدا کنید.

چنین موقعیت هایی زیاد است.

چگونه فایل های APK را از دستگاه اندروید استخراج کنیم؟

برای تکمیل این کار، به برنامه رایگان ES Explorer نیاز داریم که می‌توانید آن را در Google Play پیدا کنید. چرا این هادی خاص؟ ساده است، یک فایل منیجر عالی و آسان برای استفاده است و در حال حاضر دارای یک ویژگی پشتیبان گیری برنامه یکپارچه است. با استفاده از این تابع می توانید فایل های APK مورد نظر را از دستگاه های اندرویدی استخراج کنید.

روش 1.بنابراین، شما "ES Explorer" را نصب کرده اید، اکنون اجازه دهید آن را راه اندازی کنیم:

تصویر 1

برای انجام این کار به منوی برنامه می رویم، دکمه ای را که در گوشه سمت چپ بالای صفحه دستگاه نشان داده ایم فشار دهید. بخش «کتابخانه‌ها» را باز کنید و روی برنامه‌ها کلیک کنید.

شکل 2

اگر همه کارها را به درستی انجام داده باشید، پنجره ای با برنامه های کاربری نصب شده در مقابل شما باز می شود. در مرحله بعد برنامه ای را که می خواهید استخراج کنید انتخاب کنید و دکمه را فشار دهید ذخیره در پایین صفحه نمایش


شکل 3 شکل 4

همه برنامه های استخراج شده در پوشه قرار دارند « حافظه تلفن/پشتیبان گیری/برنامه ها". ممکن است متوجه شده باشید که در شکل‌های 3 و 4 برخی از فایل‌ها با رنگ قرمز یا سبز مشخص شده‌اند، بنابراین در اینجا می‌روید: برنامه‌هایی که قبلاً پشتیبان‌گیری شده‌اند و در پوشه قرار دارند با رنگ سبز مشخص شده‌اند. برنامه ها و به رنگ قرمز - برنامه‌هایی که قبلاً استخراج شده‌اند اما از پوشه حذف شده‌اند برنامه ها (فقط فایل های استخراج شده حذف می شوند نه فایل های نصب شده). این اساسا تمام چیزی است که برای استخراج با استفاده از این روش وجود دارد.

شکل 5

اکنون می توانید هر کاری که می خواهید با این فایل ها انجام دهید: آنها را در رایانه خود دانلود کنید، آنها را از طریق بلوتوث یا ایمیل برای دوست خود ارسال کنید. یک بار دیگر یادآوری می کنیم که این روش فقط از برنامه هایی که توسط کاربر نصب شده اند پشتیبان تهیه می کند، اما از برنامه های سیستمی پشتیبانی نمی کند. برای تهیه نسخه پشتیبان از برنامه های سیستمی، از روش 2 استفاده کنید.

روش 2.ما همان "ES Explorer" را راه اندازی می کنیم. در بالای صفحه، مجموعه ای از بخش های حافظه وجود دارد (شکل 6) یا به منوی "فضای ذخیره سازی محلی" (شکل 7) بروید و مورد را انتخاب کنید. /دستگاه .


شکل 6 شکل 7

بعد باید به سیستم/برنامه . در اینجا همه برنامه هایی که بر روی دستگاه نصب شده است: کاربر و سیستم. سپس به دنبال فایل APK مورد نیاز می گردیم و آن را در پوشه مورد نظر کپی می کنیم. بنابراین، یک فایل APK آماده برای نصب بر روی ابزارهای دیگر دریافت خواهید کرد.

هشدار! برای هر دو روش ممکن است مجبور باشید. این امکان کاملاً وجود دارد که برخی از فایل های APK سیستم استخراج شده به دلیل اینکه برای یک سیستم عامل خاص طراحی شده اند، روی سایر دستگاه های اندرویدی نصب نشوند.

همین.

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

با ما همراه باشید، هنوز چیزهای جالب زیادی در راه است.

فایل APK که با آن بازی ها را نصب می کنیم یک فایل دسته ای است و در صورت نیاز قابل استخراج است. این بسیار راحت است، زیرا برنامه های از قبل نصب شده را می توان در یک فایل استخراج کرد.

موقعیت‌هایی اغلب زمانی اتفاق می‌افتد که، برای مثال، یک بازی را تکمیل کرده و آن را از دستگاه تلفن همراه خود حذف کرده‌اید. اما بعد از مدتی تصمیم گرفتند دوباره بازی کنند. برای اینکه گذر از ابتدا شروع نشود کافی است ARC را بردارید و در مواقع لزوم از آن استفاده کنید. کل فرآیند بازیابی خواهد شد.

استخراج APK زمانی که به آن از طریق بلوتوث برای یک دوست نیاز دارید بسیار مفید خواهد بود. برای جلوگیری از نصب برنامه خاص می توانید از روش زیر استفاده کنید.

ARC از برنامه های نصب شده با استفاده از نرم افزار خاصی استخراج می شود. یک مدیر فایل مناسب برای این کار مناسب است. مدیر فایل Astro.

مدیر فایل به شما کمک می کند تا پشتیبان گیری از برنامه های موجود در دستگاه، مشاهده فیلم ها و تصاویر و مدیر وظیفه را مدیریت کنید. برای حذف آسان ARC نصب، به موارد زیر نیاز دارید:

1. برای عملکرد Astro File Manager، باید آن را روی دستگاه خود نصب کنید، که برای آن باید به Google Play نگاه کنید. پس از اتمام مراحل نصب، می توانید شروع به کار کنید.

2. Astro File Manager را راه اندازی کنید. پنجره ای روی صفحه باز می شود که درایوهای حافظه موجود و لیستی از خدماتی را نشان می دهد که می توانید در آن ثبت نام یا وارد شوید.

3. انگشت خود را به چپ بکشید تا منوی اصلی برنامه باز شود. در پایین سمت چپ، روی نماد ابزارها کلیک کنید و به Application Manager بروید.

4. لیستی با تمام برنامه ها و بازی های نصب شده مشاهده خواهید کرد.

5. برای برداشتن ARK، دکمه مخصوص واقع در گوشه بالا سمت راست را فشار دهید. از میان گزینه های ارائه شده، BACKUP را انتخاب کنید. برای وضوح، من این عملیات را با .

اکنون فقط باید منتظر بمانید تا فرآیند به پایان برسد. همه فایل های به دست آمده در پوشه Backups – Apps قرار خواهند گرفت. آنها به سادگی فایل های APK معمولی نصب می شوند.



 


خواندن:



منوی سمت چپ cayo coco را باز کنید

منوی سمت چپ cayo coco را باز کنید

جزیره کایو کوکو یک جزیره تفریحی در مرکز کوبا است. موقعیت جزیره جزیره کایو کوکو دقیقا روبروی کانال ویجو در...

چرا به ارتباطات رادیویی و ایستگاه های رادیویی نیاز داریم؟

چرا به ارتباطات رادیویی و ایستگاه های رادیویی نیاز داریم؟

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

ضرایب همبستگی رتبه کندال و اسپیرمن مثال ضریب همبستگی رتبه کندال

ضرایب همبستگی رتبه کندال و اسپیرمن مثال ضریب همبستگی رتبه کندال

ارائه و پردازش مقدماتی ارزیابی های کارشناسی در عمل از چندین نوع ارزیابی استفاده می شود: - کیفی (اغلب به ندرت،...

توابع برنامه نویسی

توابع برنامه نویسی

هدف کار: 1) قوانین توصیف توابع را مطالعه کنید. 2) کسب مهارت در استفاده از توابع هنگام نوشتن برنامه در C++. نظری...

فید-تصویر RSS