PDA

View Full Version : Decompile Android



malizergani
جمعه 03 اردیبهشت 1395, 08:23 صبح
باسلام خدمت دوستان

چه روشی برای امنیت در apk را پیشنهاد میکنید که کسی نتواند فایل خروجی apk را Decompile کنه و نتواند کدها را ببینه.

برنامه ای که خواستم درست کنم با وب سرویس php کارمیکنه اگر Decompile کردن اینقدر آسون باشه کلاه ما پس معرکه س.

ممنونم پیش از راهنمایی شما عزیزان از اهمیت دادن به این موضوع

SZsXsZS
جمعه 03 اردیبهشت 1395, 13:08 عصر
چون به PHP و وب سرویس اشاره کردی فکر کنم منظورت اینه که آدرس و پارامترهای وب سرویس رو کسی دربیاره ازش سوء استفاده کنه؟

این مربوط به طراحی الگوریتم برنامه میشه هم سمت کلاینت (اندروید) و هم سمت سرور.

شما باید فرض کنی برنامت اصلا بازمتن است!
فکر کن پس این همه نرم افزار بازمتن که دارن با سرویسهای وب کار میکنن چطور امنیت دارن؟

امنیت واقعی وقتیه که با این فرض که الگوریتم و آدرسهای مورد استفاده برنامه در دسترس همه هست، برنامه طراحی بشه و با این حال از امنیت کافی برخوردار باشه.
با پنهان کردن الگوریتم و آدرسها معمولا امنیت واقعی بدست نمیاد و هیچوقت هم نمیشه تضمین کرد که کسی طوری بهشون دست پیدا نمیکنه. فرض مثلا جلوی Decompile برنامه اندروید رو گرفتی، هنوزم با روشهای دیگری میشه ارتباطهای شبکه ای برنامه رو کلا رصد کرد و آدرس و پارامترهاش رو بدست آورد، چون ارتباطات شبکه ای یه چیزیه که از برنامه و سیستم خارج میشه و میشه بوسیلهء ابزارها و برنامه های دیگه اونا رو مشاهده کرد (حالا یا روی همون سیستم یا حتی روی سیستم دیگری و در مسیر تا مقصد). البته با مقداری رمزنگاری و پیچوندن این آدرسها و پارامترها به گمانم بشه امنیت رو خیلی بالاتر برد، ولی باز اینم اصول و روشهای استاندارد تخصصی داره که با صرف پیچوندن و مبهم کردن تفاوت میکنن. همهء اینا جزو علم امنیت و رمزنگاری هستن که اگر میخواید برنامه های اصولی و حرفه ای و با امنیت بالا طراحی کنید باید در علم امنیت و رمزنگاری مطالعه و تحقیق و یادگیری داشته باشید و تخصص کافی بدست بیارید که چطور برنامه هایی طراحی کنید که باوجودی که الگوریتم و مشخصات اونا در دسترس عموم هست ولی امنیت کافی داشته باشن. به این میگن امنیت اصولی. بعد از این مرحله اگر تشخیص بدید که مفیده و صرف میکنه، میشه سعی کرد که الگوریتم و مشخصات هم تاحد ممکن پنهان و Obfuscate و ضد کرک بشن، بقول معروف میگه کار از محکم کاری عیب نمیکنه؛ ولی مشکل اونجاییه که شما مرحلهء اول رو درست انجام ندید و از ابتدا تا انتها فقط دنبال پنهان کردن الگوریتم و پارامترها و آدرسها باشید، چون اغلب اوقات این روش امنیت اصولی و کافی رو تامین نمیکنه و بیشتر توهم امنیت ایجاد میکنه تا امنیت واقعی. البته بستگی به اینم داره که برنامه تا چه حد مهم باشه آیا جلب توجه آدمهای حرفه ای رو بکنه و انگیزهء کافی داشته باشن وقت و انرژی صرفش بکنن تا دخلش رو بیارن. طبیعتا کاربران عادی مال این حرفا نیستن!

saeidpsl
جمعه 03 اردیبهشت 1395, 18:43 عصر
یه سر به اینجا (http://barnamenevis.org/showthread.php?460023-Decompile-And-Anti-Decompile&highlight=Decompile) بزن.

reza-hassani
یک شنبه 05 اردیبهشت 1395, 21:55 عصر
سلام سورس جاوا تقریبا 80% دی کامپایل میشه راحت اون 20 % بقیه هم اگر برنامه نویس از زبان دیگه ای استفاده نکرده باشه (مثلا جاوا با لایبری ++C) (.SO)یا کد به روش خاصی در هم سازی نشده باشه.البته بماند که بعد از دی کامپال کردن خودت باید در کد بعضی قسمت ها را دوباره نویسی کنی که خیلی اعصاب خورد کن است.در مورد اتصالات وب هم به صورت مبتدی میشه با یک اسنیفر راحت شنود کرد. که خوشبختانه سطح امنیت تو ایران پاینه خخخ.اشخاص زیادی اطلاعات جامع ندارن.

اما درکل کمتر کسی پیدا میشه بیاد برنامه ات را در سیستم ابتدا خوب انالیز (مثل انالیز کننده های ویروس)بکنه بعد بیاد بایت کدش را برسی کنه بعد هم اتصال های TCP-IP OR UDP یا بقیه پروتکلها و روشهای دیگه را برسی کنه یا در بعضی موارد شنود بعد بیاد برنامه ات را کپی کامل کنه مثل چندتا برنامه نویس داخلی که امدن چندتا انتی ویروس برای اندروید نوشتند که بدردنخور است دیتا بیس خوبی نداره و هوش مصنوعی.و ... دیگه که شرمنده حوصله ندارم.