آموزش برنامه نویسی اندروید (Android)
دسته بندی ( ۴۸۲ آموزش )
نمایش دسته بندی ها (۴۸۲ آموزش)
مباحث اولیه، در برنامه نویسی اندروید
مباحث اولیه، در برنامه نویسی اندروید 28
کار با Activity ها ، در برنامه نویسی اندروید
کار با Activity ها ، در برنامه نویسی اندروید 21
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید 11
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید 11
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید 10
کار با برنامه Android Studio ، در برنامه نویسی اندروید
کار با برنامه Android Studio ، در برنامه نویسی اندروید 9
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید 3
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید 9
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید 23
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید 38
ساخت دکمه (Button) ، در برنامه نویسی اندروید
ساخت دکمه (Button) ، در برنامه نویسی اندروید 7
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید 12
ساخت EditText، در برنامه نویسی اندروید
ساخت EditText، در برنامه نویسی اندروید 6
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید 13
طراحی متریال (Material Design)، در برنامه نویسی اندروید
طراحی متریال (Material Design)، در برنامه نویسی اندروید 3
پخش موسیقی، در برنامه نویسی اندروید
پخش موسیقی، در برنامه نویسی اندروید 5
نمایش انیمیشن، در برنامه نویسی اندروید
نمایش انیمیشن، در برنامه نویسی اندروید 3
تغییر ویژگی های کلی برنامه اندروید
تغییر ویژگی های کلی برنامه اندروید 3
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید 2
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید 10
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید 21
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید 8
حلقه ها (for و while و ...)، در برنامه نویسی اندروید
حلقه ها (for و while و ...)، در برنامه نویسی اندروید 2
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید 11
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید 10
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید 4
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید 5
بازی سازی، در برنامه نویسی اندروید
بازی سازی، در برنامه نویسی اندروید 1
به اشتراک گذاری (share)، در برنامه نویسی اندروید
به اشتراک گذاری (share)، در برنامه نویسی اندروید 5
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید 15
کار با پوشه های raw و assets ، در برنامه نویسی اندروید
کار با پوشه های raw و assets ، در برنامه نویسی اندروید 2
عملیات های ریاضی، در برنامه نویسی اندروید
عملیات های ریاضی، در برنامه نویسی اندروید 13
کار با دوربین (Camera)، در برنامه نویسی اندروید
کار با دوربین (Camera)، در برنامه نویسی اندروید 3
کار با action bar ، در برنامه نویسی اندروید
کار با action bar ، در برنامه نویسی اندروید 4
کار با کلاس ها (class) ، در برنامه نویسی اندروید
کار با کلاس ها (class) ، در برنامه نویسی اندروید 4
کار با package ها ، در برنامه نویسی اندروید
کار با package ها ، در برنامه نویسی اندروید 2
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز)
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز) 2
امنیت، در برنامه نویسی اندروید
امنیت، در برنامه نویسی اندروید 1
Thread ها، در برنامه نویسی اندروید
Thread ها، در برنامه نویسی اندروید 3
سرویس ها (Service)، در برنامه نویسی اندروید
سرویس ها (Service)، در برنامه نویسی اندروید 9
BroadcastReceiver ، در برنامه نویسی اندروید
BroadcastReceiver ، در برنامه نویسی اندروید 0
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید 11
AsyncTask ، در برنامه نویسی اندروید
AsyncTask ، در برنامه نویسی اندروید 2
آرایه ها (Arrays)، در برنامه نویسی اندروید
آرایه ها (Arrays)، در برنامه نویسی اندروید 3
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید 6
رنگ ها (Colors)، در برنامه نویسی اندروید
رنگ ها (Colors)، در برنامه نویسی اندروید 3
Fragment ها و Tab بندی، در برنامه نویسی اندروید
Fragment ها و Tab بندی، در برنامه نویسی اندروید 8
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید 1
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید 3
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید 1
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید 2
پرداخت درون برنامه ای، در برنامه نویسی اندروید
پرداخت درون برنامه ای، در برنامه نویسی اندروید 1
 پروژه های اندروید Open Source کاربران کلیدستان
پروژه های اندروید Open Source کاربران کلیدستان 2
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید 5
مباحث عمومی، در برنامه نویسی اندروید
مباحث عمومی، در برنامه نویسی اندروید 35

استفاده از ProGuard برای سخت تر شدن مهندسی معکوس (reverse engineering) و استخراج کدهای فایل apk برنامه اندروید

شاید تاکنون این سوال به ذهن شما رسیده باشد که آیا هنگامی که یک فایل apk از پروژه اندروید خود می سازید و آن را به سایت های فروش می دهید، آیا کاربران می توانند کدهای آن را از فایل apk استخراج نمایند. بر حسب تجربه باید بگویم که پاسخ کلی به این سوال، بله می باشد، اما مسلما گوگل و سایر توسعه دهنده های اندروید هم بیکار نمی نشینند و راهکارهایی را برای سختتر شدن مهندسی معکوس (reverse engineering) کدها، ارائه می دهند. یکی از این راهکارها، استفاده از ProGuard است که می خواهیم در مورد آن، در این مبحث صحبت کنیم.

تا به اینجا حدس می زنم که از شنیدن این موضوع که ممکن است کدهایی که شما نوشته اید را دیگران ببینند، نگران شده اید. راستش را بخواهید، نمی دانم که یک فرد باید چه انگیزه ای برای این کار داشته باشد، امروزه اینترنت همچون بهشتی برای برنامه نویسان است و می توانند انواع عملیات های برنامه نویسی مورد نظرشان را در مباحث آموزشی بیابند، بنابراین به نظر می آید که تنها انگیزه ای که باقی می ماند، یافتن بخشی از کدها است که از آن بتوان سوء استفاده کرد و در سیستم برنامه، اختلال ایجاد کرد. خود من تنها یک بار از مهندسی معکوس کدهای فایل apk استفاده کرده ام و آن هم برای اطمینان از امکان پذیر بودن دیدن کدهای برنامه بود. بنابراین شما باید برای امنیت بیشتر برنامه اندروید خود، از راهکارهای امنیتی استفاده کنید. یکی از این راهکارها، استفاده از ProGuard است. خوشبختانه اگر از جدیدترین برنامه های مربوط به توسعه اندروید استفاده می کنید (مثلا یک نسخه جدید از ADT Bundle)، آنگاه نیازی به نصب هیچ برنامه جدیدی نیست و خود برنامه مربوط به توسعه، حاوی ProGuard می باشد. بنابراین با فرض اینکه برنامه توسعه شما، زیاد قدیمی نباشد، مراحل فعال کردن ProGuard برای پروژه اندروید را شرح می دهیم.

فرض کنید که در برنامه eclipse ، یک پروژه اندروید با نام Kelidestan.com ساخته ایم و اکنون می خواهیم که ProGuard را برای آن فعال کنیم. درون پوشه بندی پروژه اندروید، بر روی فایل project.properties کلیک می کنیم تا باز شود :

استفاده از ProGuard برای سخت تر شدن مهندسی معکوس (reverse engineering) و استخراج کدهای فایل apk برنامه اندروید

کدهای فایل project.properties ، در ابتدا به صورت زیر می باشد :


# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-19

همان طور که مشاهده می کنید، اکثر کدهای آن، به صورت توضیح (comment) می باشند. به این خط از کدها توجه کنید :


#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

این خط از کدها را باید از حالت توضیح (comment) دربیاوریم، یعنی علامت # را از ابتدای آن، حذف کنیم. بنابراین کدها، به صورت زیر در می آید :


proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

تغییرات را ذخیره کرده و فایل را ببندید. اکنون به همان روش عادی که از پروژه اندروید، یک فایل apk می ساخته اید، این بار نیز همان عملیات را انجام بدهید (بر روی نام پروژه اندروید، کلیک سمت راست کرده و سپس گزینه Export را انتخاب می کنیم و سایر گزینه ها را برای ساخت فایل apk ، طی می کنیم، ساخت فایل apk را در مبحثی دیگر شرح داده بودیم و آن توضیحات را تکرار نمی کنیم). اگر در حین ساخت فایل apk ، دقت کنید، در پوشه بندی پروژه اندروید، یک پوشه (folder) جدید با نام proguard ساخته می شود (به طور خودکار). آن را در شکل زیر نمایش داده ایم (با مقایسه آن با شکل قبل، می توانید مشاهده کنید که قبلا وجود نداشته است) :

استفاده از ProGuard برای سخت تر شدن مهندسی معکوس (reverse engineering) و استخراج کدهای فایل apk برنامه اندروید

از وجود همین فولدر می توان مطمئن شد که ProGuard برای برنامه اندروید، فعال شده است.

  • فهرست مباحث
نویسنده علیرضا گلمکانی
شماره کلید 323
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 2 2 0
sami
۱۳۹۵/۰۷/۱۸
۱۹:۰۳

با سلام
دوتا مشکل دارم : 1. داخل فایل project.properties پروژه من این خط کد proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt وجود نداره
2.وقتی خودم این خط رو اضاف میکنم و میخوام اکسپورت کنم این پیغام "proguard-project.txt  does not exist or is not a regular file" رو میده و اجازه اتمام کار رو نمیده!!!!

jafar
۱۳۹۶/۱۱/۱۰
۱۶:۰۰

proguard محیط اندروید استودیو رو هم توضیح بدین

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو


کلمات کلیدی

راهنمای کلمات کلیدی (کلاس ها، توابع، عناصر و ...) در برنامه نویسی اندروید، بر اساس حرف اول کلمه کلیدی :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

developer.android.com