مهندسی معکوس برنامه های اندروید + آموزش

مهندسی معکوس برنامه های اندروید

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

مهندسی معکوس برنامه های اندروید (APK)

مهندسی معکوس چیست؟

مهندسی معکوس بر اساس نوع کاربرد و رشته ای که در آن استفاده می‌شود، ممکن است معنایش فرق کند که ما در این مقاله به بررسی مهندسی معکوس برنامه های اندرویدی می‌پردازیم. اما در کل واژه مهندسی معکوس به معنای زیر است:

  1. زمانی که پاسخ سوالی را داریم و می‌خواهیم به صورت سوال برسیم از مهندسی معکوس استفاده می‌کنیم.
  2. صورت سوال و همچنین پاسخ را داریم، اما فرایند رسیدن از سوال به پاسخ را نمی‌دانیم.

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

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

مهندسی معکوس برنامه های اندرویدی

تکنیک های مهندسی معکوس در برنامه های اندرویدی به معنای استخراج کردن کد منبع از یک برنامه با پسوند .apk است.

شاید در نگاه اول مهندسی معکوس یک برنامه اندرویدی سخت به نظر برسد؛ اما اگر با برنامه نویسی اندروید آشنایی داشته باشید، درک روش های مهندسی معکوس برایتان ساده است.

برای شروع بهتر است اول با برخی از ابزارهای مهندسی معکوس برنامه های اندرویدی آشنا شوید که در ادامه به توضیح آن ها می‌پردازیم.

ابزارهای مهندسی معکوس برنامه های اندرویدی

  1. Apktools

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

برای استفاده از این ابزار از آدرس زیر استفاده کنید.

  1. Dex2jar

از این ابزار برای خواندن و نوشتن فایل های DEX استفاده می‌شود. به سادگی می‌توانید این فایل ها را به class file تبدیل کرده و همه آن ها را پس از آرشیو کردن با فرمت jar دریافت کنید.

برای استفاده از این ابزار به سایت زیر مراجعه نمایید.

  1. Androguard

این ابزار به زبان پایتون است. با استفاده از این ابزار، بر روی فایل های dex کنترل کامل دارید.
همچنین می‌توانید برای آنالیز استاتیک کد و پیدا کردن بدافزارها موجود در آن استفاده کنید.

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

  1. Appknox

این ابزار برای تست نفوذ و امنیت استفاده می‌شود و ابزاری کامل و قدرتمند در این زمینه محسوب می‌شود.

می‌توانید این ابزار را از سایت زیر دانلود کنید.

  1. Virtualapk

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

ازلینک زیر برای دانلود این ابزار استفاده کنید.

به غیر از این ابزارها، ابزارهای آنلاینی هم وجود دارد که می‌توانید برای مهندسی معکوس برنامه های اندرویدی از آن ها استفاده کنید. مانند:

http://www.decompileandroid.com

http://www.javadecompilers.com/apk

شروع کار

برای اینکه نحوه کار مهندسی معکوس را متوجه شوید، در ادامه آموزشی ساده با استفاده از ابزار Apktool را برای شما توضیح داده ایم. پس با ما همراه باشید.

قبل از شروع کار مطمئن شوید JDK جاوا بر روی سیستم شما نصب است.

اگر بر روی سیستم وجود نداشت، JDK را از لینک زیر دانلود و نصب کنید.

https://www.oracle.com/java/technologies/javase-downloads.html

حال باید نرم افزار اندرویدی که می‌خواهید سورس آن را تغییر دهید، دانلود کنید. ما در این آموزش از نرم افزار Telegram استفاده کرده ایم.

پس از دانلود و نصب تمام نیازمندی ها برای مهندسی معکوس یا همان decompile کردن نرم افزار اندرویدی، کار خود را شروع می‌کنیم.

  1. نرم افزار اندرویدی که از قبل دانلود کرده اید را در پوشه ی ابزار Apktool قرار دهید.
مهندسی معکوس برنامه های اندروید + آموزش
مهندسی معکوس اندروید مرحله اول
  1. پسوند نرم افزار را از apk به zip تغییر دهید.
مهندسی معکوس برنامه های اندروید + آموزش
مهندسی معکوس اندروید مرحله دوم
  1.  روی فایل زیپ شده کلیک کنید. در بین تمام فایل ها، فایلی با نام dex مشاهده می‌کنید. (نرم افزار تلگرام دارای 3 فایل classes.dex است.)

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

نکته: فایل هایی با پسوند dex، فایل های کامپایل شده نرم افزارهای اندرویدی هستند.

مرحله 4 از مهندسی معکوس اندروید

  1. حال فایل dex را اکسترکت می‌کنیم.
مهندسی معکوس برنامه های اندروید + آموزش
مرحله سوم
  1. می‌توانیم اسم فایل ها را تغییر دهیم تا برای ما خواناتر باشد. حال فایل ها را در پوشه dex2jar قرار دهید.
مهندسی معکوس برنامه های اندروید + آموزش
مرحله چهارم مهندسی معکوس اندروید

اگر این فایل را با notepad باز کنید، چیزی جز حروف عجیب غریب و نامفهوم نمی‌بینید. اما برای دیدن کدها، ادامه مراحل را انجام دهید.

مهندسی معکوس برنامه های اندروید + آموزش
کدهای نامفهوم
  1. حال برای دیدن کدها، در بین فایل هایی که در پوشه dex2jar وجود دارد، فایلی به اسم bat را پیدا کنید.
مهندسی معکوس برنامه های اندروید + آموزش
مرحله پنجم
  1.  cmd را باز کنید و دستورات زیر را اجرا کنید.

ابتدا وارد مسیری شوید که پوشه ابزار Apktool در آن وجود دارد.

اینجا مسیر C:\Users\User\Desktop\Apktool – dex2jar\dex2jar است. یعنی در محیط cmd باید وارد این مسیر شویم.

مهندسی معکوس برنامه های اندروید + آموزش
مرحله ششم
  1. می‌خواهیم با استفاده از فایل bat کدها را قابل خواندن کنیم. با استفاده از دستورات زیر این کار را انجام می‌دهیم.

ابتدا dex2jar.bat را می‌نویسیم و سپس فایلی را که پسوندش dex است را جلوی آن می‌نویسیم.

مهندسی معکوس برنامه های اندروید + آموزش
مرحله هفتم

پس از زدن اینتر باید نتیجه زیر را مشاهده کنید.

مهندسی معکوس برنامه های اندروید + آموزش
مشاهده نتیجه مهندسی معکوس اندروید
  1. حال فایل زیر که در پوشه dex2jar است را اجرا کنید.
مهندسی معکوس برنامه های اندروید + آموزش
مرحله هشتم
  1. فایل jar را در این نرم افزار درگ می‌کنیم.
مهندسی معکوس برنامه های اندروید + آموزش
مرحله نهم مهندسی معکوس

در نهایت شما به تمام سورس های نرم افزار تلگرام دسترسی دارید و می‌توانید تغییراتی که دوست دارید را اعمال کنید.

مهندسی معکوس برنامه های اندروید + آموزش
مرحله دهم و اخر از مهندسی معکوس اندروید

در نهایت

شما می‌توانید به سورس های هر نرم افزار اندرویدی که دوست دارید، دسترسی پیدا کنید و تغییراتی را اعمال کنید. بهتر است از مهندسی معکوس برای ایده گرفتن، درک کردن کدها و… استفاده کنید.

امیدوارم از این آموزش لذت برده باشید.

5/5 (1 نظر)

مطالب مرتبط

۷ دیدگاه در “مهندسی معکوس برنامه های اندروید + آموزش”

  • Asd شهریور 16, 1399 پاسخ

    سلام من apk tools رو دانلود کردم ولی محتویاتش با اون چیزی که شما نشون دادین فرق داشت

    • نیما حسینی شهریور 21, 1399 پاسخ

      درود
      منظورتون محتوا خود ابزار هست یا Apk، اگر Apk منظورتون هست هر برنامه ممکن است متفاوت باشد اما اگر خود ابزار منظورتون هست از لینک قرار داده شده استفاده کنید.

  • sorena مهر 28, 1399 پاسخ

    سلام منم ابزار رو از لینکی که گذاشته بودین دانلود کردم ولی پوشه dex2jar رو شما چطوری آوردین؟
    تنها فایلی که دانلود شد apktool_2.4.1.jar این بود.

    • نیما حسینی آبان 4, 1399 پاسخ

      درود
      لینک دانلود dex2jar داخل اموزش قرار دارد که باید دانلود کنید.

  • االیاس آذر 5, 1399 پاسخ

    سلام چجوری با نرم افزار JD-gui کدها رو ویرایش کنیم همچین قابلیتی نداره.

    • نیما حسینی آذر 7, 1399 پاسخ

      درود
      طبق اموزش پیش بروید.

  • حامد مهر 24, 1400 پاسخ

    سلام ، برای اینکه دوره مهندسی معکوس رو بهتر متوجه بشیم ، پیش نیاز این دوره چیه؟

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

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

قوانین پن تست کور
دوره کالی لینوکس
نماد های اعتماد
نماد های اعتماد