تفاوت میان دو محصول DexGuard و ProGuard در چیست؟

  • نویسنده: پروانه شجاعی
  • تاریخ انتشار: شنبه ، ۰۴ شهریور ماه ۹۶
  • تعداد بازدید: 6922
  • تعداد نظرها: 5
  • دسته بندی: امنیت برنامه های موبایل

به عنوان یکی از مهمترین ابهامات و موضوعات مهم در خصوص انتخاب و استفاده از ابزارهای ایمن سازی برنامه های کاربردی و اپلیکیشن های موبایلی، سوالی که به دفعات از ما در خصوص محصولات ارائه شده از سوی شرکت گارداسکوئر (GuardSquare) پرسیده می شود این است: "چگونه دکسگارد (DexGuard) با پروگارد (ProGuard) مقایسه می گردد و تفاوت اساسی این دو محصول در چیست؟ کدام محصول برای پروژه و اپلیکیشن من مناسبتر است؟" از سوی دیگر این سوال مطرح می شود که آیا استفاده از ProGuard به عنوان یک ابزار متن باز و قابل دسترس، برای امنیت اپلیکیشن موبایل کفایت می کند؟ (برای پاسخ به این سوال به این مطلب رجوع گردد.)

برای کمک به درک بهتر شما از محصولات این شرکت در حوزه امنیت و ایمن‌سازی اپلیکیشن های موبایلی، ما تفاوت های اساسی بین پروگارد (ProGuard) و دکسگارد (DexGuard) را در قالب این مطلب خلاصه کرده ایم.

 

پروگارد (ProGuard): یک بهینه ساز عمومی برای جاوا است.

دکسگارد (DexGuard): ابزار تخصصی برای حفاظت از برنامه های آندروید است.

 

پروگارد (ProGuard) شما را قادر به کاهش، بهینه سازی و مبهم ساختن (obfuscation) برنامه های دسک تاپ، برنامه های کاربردی جاسازی شده (درون برنامه های بزرگتر) و برنامه های تلفن همراه (اندروید) می کند.  از سوی دیگر دکسگارد (DexGuard) به طور خاص برای حفاظت و بهینه سازی برنامه های اندروید طراحی شده است. حفاظت چند لایه (multilayered) در دکسگارد، قابلیت انطباق بالایی با محیط رو به تکامل برنامه های موبایل دارد. علاوه بر این، دکسگارد (DexGuard) قابلیت هایی را ارائه می دهد که به شما کمک می کنند تا از پلتفرم اندروید به صورت بهینه استفاده نمایید. این برنامه با پیکربندی تنظیم شده برای زمان اجرا (runtime)ی اندروید و برای کتابخانه های رایج (سرویس های Google Play، Kagger، Realm، SQLCipher و غیره) همراه است و به طور خودکار فایل های Dex را که حجمی بیش از حد مجاز فرمت (MultiDex) را دارند، تقسیم و خرد می کند.

 

پروگارد (ProGuard) برنامه را  به صورت ابتدایی و اولیه در برابر تحلیل های ایستا، محافظت می کند.

دکسگارد (DexGuard) برنامه های کاربردی را در برابر تحلیل های ایستا و پویا محافظت می کند.

 

هکرها عموما دو رویکرد متداول را در هنگام تلاش برای مهندسی معکوس یک برنامه، با یکدیگر ترکیب کرده و بکار می گیرند. در رویکرد اول (تجزیه و تحلیل ایستا)  آنها سعی می کنند با استفاده از decompilers به سورس کد برنامه دسترسی پیدا کنند و در رویکرد دوم (تجزیه و تحلیل پویا) آنها رفتار برنامه را در زمان تحت نظر می گیرند. پروگارد (ProGuard) به صورت ابتدایی و تا سطحی محدود، برنامه را در برابر تحلیل های ایستا محافظت می کند، در حالی که دکسگارد (DexGuard) برنامه های کاربردی را از هر دو تحلیل ایستا و پویا به صورت کامل محافظت می کند. دکسگارد (DexGuard) نه تنها سورس کد برنامه را با استفاده از تکنیک های مبهم سازی و رمزنگاری پیچیده تر و ایمن می کند، بلکه یک سری از مکانیزم های امنیتی زمان اجرا را نیز در آن ادغام می کند و به صورت یکپارچه در می آورد. این مکانیزم ها یکپارچگی برنامه و محیطی را که در آن اجرا می شود، بررسی می کند و برنامه را قادر می سازد تا هر زمانی که فعالیت مشکوکی شناسایی شد، از خود واکنش نشان دهد.

 

پروگارد (ProGuard) حداقل میزان مبهم سازی کدها را اعمال می کند.

دکسگارد (DexGuard) لایه های متعددی از رمزنگاری و مبهم سازی کدها را اعمال می‌کند.

 

 پروگارد (ProGuard) و دکسگارد (DexGuard) هر دو سورس کد برنامه ها را مبهم سازی می کنند تا از مهندسی معکوس جلوگیری شود، اما میزان و قدرت انجام این ماموریت در آنها متفاوت است.  پروگارد (ProGuard) تنها با مبهم سازی نام کلاس های استفاده شده در برنامه، این کار را انجام می دهد، از سوی دیگر دکسگارد (DexGuard) نه تنها نام کلاس ها، فیلدها و متدها بلکه عبارات ریاضی و منطقی در کد و جریان کنترل کد درون متدها را نیز مبهم می کند. علاوه بر این، دکسگارد (DexGuard) رشته ها (String) و کلاس ها را رمز نموده و دسترسی به API های حساس را بسیار دشوار و پیچیده می سازد. در نتیجه خروجی بدست آمده یک برنامه محافظت شده و ایمن خواهد بود.

 

پروگارد (ProGuard) روی بایت کد (bytecode) جاوا متمرکز می شود.

دکسگارد (DexGuard) تمام اجزای یک برنامه را پردازش کرده و ایمن می کند.

وظیفه‌ی پروگارد (ProGuard) تنها محدود به بررسی و محافظت از بایت کد جاوا در برنامه ها می باشد، این در حالی است که دکسگارد (DexGuard) یک محافظ تمام عیار، 360 درجه و کامل بر روی برنامه است. علاوه بر بایت کد Dalvik ، این محصول فایل های manifast، کتابخانه های native، منابع و فایل های منابع را بهینه سازی، مبهم سازی و رمزنگاری می کند.

 

پروگارد (ProGuard) یک ابزار متن باز است.

دکسگارد (DexGuard) یک محصول تجاری و مختص کسب و کار است.

پروگارد (ProGuard) به صورت رایگان قابل دانلود می باشد که می توانید از آن جهت پردازش برنامه های تجاری و غیر تجاری خود استفاده نمایید. تمام اطلاعاتی که برای تنظیم پروگارد (ProGuard) نیاز دارید، در راهنمای آنلاین آن به صورت دقیق بیان شده است. دکسگارد (DexGuard) یک محصول تجاری است که برای استفاده از آن نیازمند خرید لایسنس هستید. با خرید این لایسنس شما این مجوز را دارید تا به یک تیم از مهندسان مجرب دسترسی پیدا کنید که می توانند به شما در راه اندازی و پیکربندی نرم افزار کمک کنند.

 

ارتقای پروگارد (ProGuard) به دکسگارد (DexGuard)

با توجه به اینکه هر دو محصول توسط شرکت گارداسکوئر (GuardSquare) ارائه شده است، شما می توانید به آسانی از تنظیمات موجود پروگارد خود استفاده نموده و شروع به مهاجرت و ارتقاء به دکسگارد (DexGuard) نمایید. در ویدئو زیر چگونگی انجام این عملیات تشریح شده است. لازم به ذکر است که برخلاف پروگارد، دکسگارد به صورت تجاری عرضه می شود که نیاز است قبل از مهاجرت، لایسنس مربوطه خریداری گردد. (اطلاعات بیشتر)

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

 

 

لینک ویدئو در یوتیوپ: https://youtu.be/KL--TDlctkQ

شرکت آشنا ایمن به عنوان نماینده انحصاری فروش محصولات شرکت گارداسکوئر (GuardSquare) در ایران، آمادگی پاسخگویی به سوالات شما را در این حوزه دارد.

نظرات کاربران

Zerodium

یک‌شنبه ، ۲۵ فروردین ماه ۹۸

APKProtect

DexGuard

Bangcle

Ijiami

LIAPP



تو اینها Ijiami از همه بهتره ولی باید بخریش.

علی

چهارشنبه ، ۰۲ خرداد ماه ۹۷

سلام

چطوری میشه DexGuard رو تهیه کرد؟ قیمتش چقدره و چطوری باید سفارش داد.

اگر یک بار خریداری بشه میشه برای برنامه‌های مختلف اجراش کرد یا اینکه برای هر برنامه ای که میسازیم باید جداگانه خریداری بشه؟

پروانه شجاعی

چهارشنبه ، ۰۲ خرداد ماه ۹۷

سلام شما می توانید از طریق تماس با بخش فروش شرکت آشنا ایمن لایسنس DexGuard را تهیه نمایید:

88896103 داخلی 500



همچنین لایسنس های ایجاد شده تنها برای یک اپلیکیشن کاربرد دارد و برای هر برنامه می بایست لایسنس جداگانه تهیه شود.

امیر خوانی

یک‌شنبه ، ۱۲ شهریور ماه ۹۶

آیا شرکت گارداسکوئر برای برنامه های IOS نیزابزار مناسبی دارد؟

میلاد یداللهی

یک‌شنبه ، ۱۲ شهریور ماه ۹۶

بله محصول iXGuard برای پلتفرم iOS موجود است.

https://www.ashnasecure.com/ixguard/