جمعه, ۸ تیر, ۱۴۰۳ / 28 June, 2024
مهندسی معکوس در آندروید
![مهندسی معکوس در آندروید](/web/imgs/16/162/mrl9l1.jpeg)
در دنیای برنامهنویسی یکی از مهمترین عوامل، نگهداری برنامهها و اعمال تغییرات در کمترین زمان ممکن است.
این عوامل شامل چند بخش میشود؛ بخش مهم و اساسی آن در نگهداری کدهای برنامه و قابلیت توسعهپذیری برنامه است و بخش دیگر مربوط به ظاهر برنامه یا متنهای به کار رفته در برنامه میشود.
در اینجا قصد داریم بگوییم شما چگونه میتوانید یک برنامه آندرویدی را که توسط فرد یا شرکت دیگری توسعه پیدا کرده است، تغییر دهید.
پیش از هر چیز به یاد داشته باشید که به عنوان برنامهنویس همواره از نوشتن Hard-Code خودداری کنید. با یک مثال Hard-Code یا کد سخت را توضیح میدهیم.
شما برنامهای را توسعه دادهاید. رشته متنی که برای ارتباط با پایگاه داده شما به کار میرود در کد شما ذخیره شده است و هر بار که میخواهید با پایگاه داده ارتباط برقرار کنید، آن رشته را درون کد خود به صورت یک متن قرار میدهید. اما حساب کنید مشتری شما قصد تغییر سیستم پایگاه داده خود را دارد بنابراین شما نیاز دارید هر جا که از آن رشته متنی استفاده کردهاید، آن را تغییر دهید.
هر چه برنامه بزرگتر باشد این رشتههای متنی که قرار است تغییر کند، بیشتر میشود.
چگونه از این کار جلوگیری کنیم؟ برای اینکار شما میتوانید از فایلهای Resource در کنار برنامه استفاده کنید تا در صورت تغییر، در کمترین زمان ممکن این کار را انجام دهید. این منابع علاوه بر رشتهها میتواند شامل عکسهای برنامه نیز بشود.
حالا قبل از اینکه سراغ تغییر در برنامههای آندروید برویم، ساختار برنامهها را یک مرور کلی میکنیم. پروژه آندرویدی شامل یک فایل به نام Android.manifest است که اطلاعات اصلی برنامه را دربردارد. در تغییر آن باید بهدقت عمل کنید.
اگر این فایل مشکلی داشته باشد، برنامهها کلا از کار خواهد افتاد. دو پوشه نیز به نامهای src که سورس برنامه در آن قرار دارد و یک فولدر res که شامل منابع برنامه است، وجود دارد. مثل layout و عکسها و رشتههای متنی و اعدادی که قرار است در برنامه به صورت عمومی استفاده شود و...
ما اگر بخواهیم در منابع یک برنامه تغییراتی بدهیم، قطعا سراغ پوشه layout میرویم؛ اما ما قرار است در برنامهای که نوشته شده تغییرات ایجاد کنیم.
برنامههای آندروید که کامپایل میشود شامل یکسری فایل dex بوده که در واقع کامپایل شده کد جاوای شما برای ماشین مجازی Dalvik است و بقیه محتویات آن منابع و کتابخانههایی را شامل میشود که شما از آن استفاده کردهاید.
فایل خروجی آن که در واقع فایل اجرای برنامه آندرویدی شماست به فرمت apk بوده که یک فایل zip و ساین شده، است.
دسترسی به محتویات این فایل با Extractکردن آن امکانپذیر است اما اگر بخواهید با Extract کردن، در برنامه آندروید خود تغییر ایجاد کنید، با مشکلات عدیدهای مواجه خواهید شد.
شما با استفاده از apk-tool که یک برنامه نوشته شده با جاواست، فایلهای apk خود را باز و اصطلاحا Decompile کنید سپس تغییراتی که میخواهید در آنها بدهید و دوباره آنها را از اول build کنید. (توجه داشته باشید که این برنامه فقط منابع فایل را به شما میدهد و نمیتواند کد را Decompile کند).
شما میتوانید برنامه را از این آدرس دانلود کنید:
code.google.com/p/android-apktool
نسخه ویندوزی آن شامل یک فایل bat است که کارکردن با آن را برای شما راحت میکند.
امیربهاءالدین سبطالشیخ
انتخابات ریاست جمهوری انتخابات شهدای خدمت ایران علیرضا زاکانی سعید جلیلی انتخابات ریاست جمهوری 1403 مسعود پزشکیان انتخابات ریاست جمهوری چهاردهم قالیباف محمدباقر قالیباف مناظره انتخاباتی
سیل هواشناسی بارش باران سوادکوه قتل قوه قضاییه تهران سیلاب سازمان هواشناسی محیط زیست شهرداری تهران افزایش حقوق بازنشستگان
دولت سیزدهم قیمت خودرو هوش مصنوعی قیمت دلار قیمت طلا دلار حقوق بازنشستگان بازنشستگان نهضت ملی مسکن مسکن قیمت سکه خودرو
جوکر فضای مجازی احسان علیخانی تلویزیون سینمای ایران رسانه ملی سریال سینما تئاتر
ماهواره دانش بنیان
رژیم صهیونیستی آمریکا غزه فلسطین دونالد ترامپ بولیوی جنگ غزه چین اتحادیه اروپا اوکراین ترکیه حزب الله لبنان
پرسپولیس فوتبال استقلال یورو 2024 باشگاه پرسپولیس تیم ملی فوتبال ایران لیگ برتر عبدالکریم حسن کریستیانو رونالدو جام ملت های اروپا جواد نکونام لیگ برتر ایران
نمایشگاه الکامپ همراه اول عیسی زارع پور وزیر ارتباطات فناوری ایلان ماسک گوشی
دیابت سازمان غذا و دارو کاهش وزن سرطان زوال عقل سلامت روده