جمعه, ۵ بهمن, ۱۴۰۳ / 24 January, 2025
مهندسی معکوس در آندروید
در دنیای برنامهنویسی یکی از مهمترین عوامل، نگهداری برنامهها و اعمال تغییرات در کمترین زمان ممکن است.
این عوامل شامل چند بخش میشود؛ بخش مهم و اساسی آن در نگهداری کدهای برنامه و قابلیت توسعهپذیری برنامه است و بخش دیگر مربوط به ظاهر برنامه یا متنهای به کار رفته در برنامه میشود.
در اینجا قصد داریم بگوییم شما چگونه میتوانید یک برنامه آندرویدی را که توسط فرد یا شرکت دیگری توسعه پیدا کرده است، تغییر دهید.
پیش از هر چیز به یاد داشته باشید که به عنوان برنامهنویس همواره از نوشتن 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 است که کارکردن با آن را برای شما راحت میکند.
امیربهاءالدین سبطالشیخ
ایران مسعود پزشکیان دولت چهاردهم پزشکیان مجلس شورای اسلامی محمدرضا عارف دولت مجلس کابینه دولت چهاردهم اسماعیل هنیه کابینه پزشکیان محمدجواد ظریف
پیاده روی اربعین تهران عراق پلیس تصادف هواشناسی شهرداری تهران سرقت بازنشستگان قتل آموزش و پرورش دستگیری
ایران خودرو خودرو وام قیمت طلا قیمت دلار قیمت خودرو بانک مرکزی برق بازار خودرو بورس بازار سرمایه قیمت سکه
میراث فرهنگی میدان آزادی سینما رهبر انقلاب بیتا فرهی وزارت فرهنگ و ارشاد اسلامی سینمای ایران تلویزیون کتاب تئاتر موسیقی
وزارت علوم تحقیقات و فناوری آزمون
رژیم صهیونیستی غزه روسیه حماس آمریکا فلسطین جنگ غزه اوکراین حزب الله لبنان دونالد ترامپ طوفان الاقصی ترکیه
پرسپولیس فوتبال ذوب آهن لیگ برتر استقلال لیگ برتر ایران المپیک المپیک 2024 پاریس رئال مادرید لیگ برتر فوتبال ایران مهدی تاج باشگاه پرسپولیس
هوش مصنوعی فناوری سامسونگ ایلان ماسک گوگل تلگرام گوشی ستار هاشمی مریخ روزنامه
فشار خون آلزایمر رژیم غذایی مغز دیابت چاقی افسردگی سلامت پوست