زنگ

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

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

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

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

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

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

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

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

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

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

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

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

درون یابی, درون یابی - در ریاضیات محاسباتی ، روشی برای یافتن مقادیر میانی یک مقدار از مجموعه گسسته موجود از مقادیر شناخته شده.

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

روشهای درون یابی تفاوت محدود بسیاری وجود دارد. اکثر
متداول ترین روش نیوتن برای درون یابی به جلو است (روش نیوتن-گریگوری). چند جمله ای درون یابی در این حالت دارای شکل زیر است:

ضرایب C را با فرمول پیدا می کنیم:

اجرای برنامه در C #:
با استفاده از سیستم ؛ namespace Interpolation (کلاس برنامه ...

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

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

در زیر چند عکس در حین مونتاژ دستگاه گرفته شده است.

سیم پیچ با سیم 0.08 میلی متر پیچیده می شود حدود 2000 لوله لوله PVC را به قطر 50 میلی متر و ارتفاع 200 میلی متر روشن می کند.

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

اولین نسخه توسط یک منبع تغذیه 12 ولت یک کامپیوتر قدیمی تأمین می شد و سپس یک واحد منبع تغذیه 30 ولت جداگانه با خنک کننده داخلی ساخته شد.

نمودار دستگاه:

اشتراک منابع (CORS) یکی از مشخصات W3C است که امکان ارتباط بین دامنه در مرورگر را فراهم می کند. با ساختن در بالای شی XMLHttpRequest ، CORS به توسعه دهندگان اجازه می دهد تا با اصطلاحات مشابه درخواست های دامنه واحد کار کنند. مورد استفاده برای CORS ساده است. تصور کنید که alice.com داده هایی دارد که bob.com می خواهد بدست آورد. این نوع درخواست به طور سنتی تحت همان سیاست مبدا مرورگر مجاز نیست. با این حال ، با پشتیبانی از درخواست های CORS ، alice.com می تواند برخی از عناوین پاسخ های سفارشی را اضافه کند که به bob.com امکان دسترسی به داده ها را می دهد. همانطور که از این مثال مشاهده می کنید ، پشتیبانی از CORS نیاز به هماهنگی بین سرور و سرویس گیرنده دارد. خوشبختانه ، اگر شما یک توسعه دهنده مشتری هستید ، از بسیاری از این جزئیات محافظت می کنید. در ادامه این مقاله نشان داده می شود که مشتریان چگونه می توانند درخواست های متقابل ارائه دهند و سرورها چگونه می توانند خود را برای پشتیبانی از CORS پیکربندی کنند. ادامه هید ...

بسیاری از شما می دانید که مراحل نصب یک برنامه آندروید ساده است - فروشگاه Google Play را باز می کنید ، برنامه یا بازی مورد نظر خود را پیدا می کنید ، بر روی دکمه بزرگ Install کلیک می کنید و تمام. با این حال ، برنامه های Android بسته بندی شده و به صورت دستی نصب می شوند. این بسته ها دارای پسوند ".apk" هستند و کاربردهای کاربردی آنها بسیار زیاد است. به عنوان مثال ، می توانید بدون هیچ مشکلی از برنامه هایی که به صورت فایل apk نیز ذخیره شده اند نسخه پشتیبان تهیه کنید. حتی اگر یک برنامه یا بازی به طور ناگهانی از Google Play ناپدید شود ، مانند آنچه که با Flappy Bird انجام شد ، به شما کمک می کند. در صورت تمایل ، هرکسی می تواند برنامه را بارگیری کرده و روی تلفن هوشمند خود نصب کند. همچنین نصب فایلهای apk بر روی دستگاههایی که به طور مصنوعی توسط تولید کننده محدود شده اند (Amazon Kindle Fire یا Nokia X) بسیار راحت است.

با این حال ، چگونه می توان فایل apk نصب شده را استخراج کرد؟ به راحتی می توانید برنامه را در اینترنت پیدا کنید ، آن را روی دستگاه Android خود بارگیری و نصب کنید. این روش با برنامه های رایگان عالی کار می کند. موارد پرداختی به دلایل مشخص از بارگیری در امان هستند. علاوه بر این ، برنامه هایی که پس از نصب پرونده های اضافی را بارگیری می کنند ، باید خوب کار کنند.

  • 1. در دستگاه Android google play خود برنامه ای را که می خواهید استخراج کنید بارگیری کنید.
  • 2. برنامه APK Extractor را بارگیری کنید. استفاده از آن رایگان و آسان است.
  • 3. برنامه APK Extractor را باز کنید و برنامه ای را که می خواهید استخراج کنید مشخص کنید. چندین برنامه را می توان به طور همزمان علامت گذاری کرد. پرونده های APK در پوشه ExtractedApks در حافظه دستگاه ذخیره می شوند.

پرونده های APK استخراج شده اکنون می توانند در تلفن هوشمند یا رایانه لوحی Android دیگر کپی شده و با استفاده از هر مدیر پرونده مانند Astro یا ES File Explorer نصب شوند.

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

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


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

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

سریع دانلود apk با استفاده از All-In-On Downloader

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

روشهای دیگر

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

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

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

معرفی

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

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

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

از کامپایل برنامه ها استفاده کنید

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

  • dex2jar - مترجم bytecode Dalvik به bytecode 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 - توضیحات برنامه این شامل ، به عنوان مثال ، لیستی از وضوح مورد نیاز ، نسخه Android مورد نیاز و وضوح صفحه نمایش مورد نیاز است.
  • کلاسها. dex - کد بایت برنامه کامپایل شده برای ماشین مجازی Dalvik ؛
  • منابع. arc - همچنین منابع ، اما از نوع دیگری - به ویژه ، رشته ها (بله ، این پرونده می تواند برای روسی سازی استفاده شود!).

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

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

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

  • پسوند APK Downloader برای Chrome ؛
  • aPK واقعی برنامه Leecher ؛
  • به اشتراک گذاری فایل های مختلف و warezniki.

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

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

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

مشاهده و اصلاح

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

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

می توانید از همه این ابزارها جدا استفاده کنید ، اما این کار ناخوشایند است ، بنابراین بهتر است از یک نرم افزار سطح بالاتر که بر اساس آنها ساخته شده است استفاده کنید. اگر روی Linux یا Mac OS X کار می کنید ، ابزاری به نام apktool وجود دارد. این امکان را به شما می دهد تا منابع را به شکل اصلی خود (از جمله پرونده های باینری XML و arsc) باز کنید ، بسته ای را با منابع تغییر یافته دوباره بسازید ، اما نمی تواند بسته ها را امضا کند ، بنابراین مجبورید ابزار signer را به صورت دستی اجرا کنید. علی رغم اینکه این برنامه به زبان جاوا نوشته شده است ، نصب آن تقریباً غیر استاندارد است. ابتدا باید خود فایل 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 \u003d ~ / bin: $ PATH

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


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

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

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

استفاده از apktool بسیار ساده است ، برای این منظور فقط باید یکی از دستورات و مسیر APK را مشخص کنید ، به عنوان مثال:

$ apktool d mail.apk

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

کالبد شکافی تبلیغات را غیرفعال کنید

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


بنابراین ، با استفاده از یکی از روش های فوق ، برنامه را از بازار بارگیری کنید. اگر تصمیم دارید از Virtuous Ten Studio استفاده کنید ، فقط فایل APK را در برنامه باز کنید و آن را باز کنید ، برای این کار یک پروژه ایجاد می کنید (File -\u003e New project) ، سپس وارد کردن پرونده را از منوی زمینه پروژه انتخاب کنید. اگر انتخاب شما روی 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 امضا کنیم. راه اندازی شد. رابط کاربری از دو زبانه تشکیل شده است - در کلید اول (کلید تولید کننده) کلید ایجاد می کنیم ، در قسمت دوم (امضا کننده APK) امضا می کنیم. برای ایجاد کلید خصوصی ما ، قسمتهای زیر را پر کنید:

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

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


هشدار

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

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

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

اطلاعات

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

امضای دیجیتال فقط برای نرم افزارهای شخص ثالث مورد نیاز است ، بنابراین اگر در حال اصلاح برنامه های سیستمی هستید که با کپی کردن آنها در دایرکتوری / 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:

نسخه جدید v3 ، Lcom / kauf / بازاریابی / تبلیغات ؛

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

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

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

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

پرونده Start.smali را باز کرده و دوباره به دنبال خط "Ad" بگردید ، در سطرهای 153 و 155 ذکر کلاس FirstAd را پیدا کنید. این همچنین در کد منبع وجود دارد و ، بر اساس نام ، دقیقاً مسئول نمایش تبلیغات در صفحه اصلی است. بعداً نگاه می کنیم ، با توجه به زمینه مربوط به این نمونه ، یک نمونه از کلاس FirstAd و یک هدف وجود دارد و سپس برچسب 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 رفتن: cond_10

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

نتیجه

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

زنگ

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