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

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

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

مهندسی معکوس برنامه های اندروید (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 است.)
  آموزش باگ XSS و امنیت این اسیب پذیری + آموزش ویدیو ای

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

نکته: فایل هایی با پسوند 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 را در این نرم افزار درگ می‌کنیم.
مهندسی معکوس برنامه های اندروید + آموزش
مرحله نهم مهندسی معکوس

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

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

در نهایت

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

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

0/5 (0 نظر)

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

مطالب مرتبط

ابزار SSLScan

ابزار SSLScan و برسی SSL وب سایت

در این آموزش به ابزار SSLScan جهت بررسی امنیتی SSL وب سایت ها می پردازیم، در ادامه در ادامه این آموزش با ما همراه باشید. 0/5 (0 نظر)   آموزش باگ XSS و امنیت این اسیب پذیری + آموزش ویدیو ای

اسکن سریع اسیب پذیری

اسکن سریع اسیب پذیری با CRLFuzz

در این آموزش با نحوه اسکن سریع اسیب پذیری ها با استفاده از ابزار CRLFuzz آشنا خواهید شد، با ما در ادامه این آموزش هک و امنیت همراه باشید. 0/5 (0 نظر)   اطلاعات گیت هاب را با Stardox استخراج کنید

انواع هک

انواع هک و هکر ها

در این اموزش با انواع هک و انواع هکر ها به صورت کامل اشنا خواهید شد، با ما در ادامه این اموزش همراه باشید. 5/5 (1 نظر)   ابزارهای یافتن ساب دامین

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

  • Asd شهریور ۱۶, ۱۳۹۹ پاسخ

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

    • نیما حسینی شهریور ۲۱, ۱۳۹۹ پاسخ

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

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

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