نقل قول: محافظت از برنامهء پایتون
البته میدونم که ممکنه روی سیستم key logger نصب کرده باشن و پسورد فایل ما رو سرقت کنن، ولی باز برای این هم میشه تمهیدهای اندیشید که این کار براشون خیلی پیچیده تر و مشکل تر بشه که فکر میکنم بتونه جلوی تقریبا تمام موارد رو بگیره (دیگه دوتا دزد دوزاری که بیشتر نیستن!)
خیلی بدم میاد یکی برنامم رو بدزده. البته نه اینکه من آدم انحصارگری باشم، اتفاقا خودم طرفدار نرم افزار آزاد و بازمتن هستم و تاحالا برنامه ها و کدهای بازمتن زیادی هم نوشتم و بصورت عمومی منتشر کردم، ولی یکی دوتا برنامهء خاص شخصی دارم که به دلایلی فکر نمیکنم هیچوقت بخوام به این سادگی در دسترس دیگران قرار بگیره.
نقل قول: محافظت از برنامهء پایتون
دقیقا سوالی که دیشب همین موقع برای من هم پیش امد یه چیزی تو این مایه ها بود، مرسی که پرسیدی.
من هم دنبال اینم که تحلیلگر نتونه سورس برنامه رو بخونه..
البته اگه شما دنبال این هستی که فایلی رو که پایک کردی ریکاوری نشه میتونی از متدها و ابزارهای anti forensics استفاده کنی..
نقل قول: محافظت از برنامهء پایتون
نقل قول:
نوشته شده توسط
maarek
دقیقا سوالی که دیشب همین موقع برای من هم پیش امد یه چیزی تو این مایه ها بود، مرسی که پرسیدی.
من هم دنبال اینم که تحلیلگر نتونه سورس برنامه رو بخونه..
بستگی داره هدف شما از اینکه سورس برنامه رو مخفی نگه دارید چی باشه.
اگر بخاطر امنیت است، یعنی اینکه مثلا کسی نتونه از برنامهء شما سوء استفاده بکنه و مختلش کنه (مثلا کارکرد سروری که برنامهء شما باهاش تبادل اطلاعات میکنه رو مختل کنه)، معمولا این نشان دهندهء «امنیت از طریق تیرگی» است که راهکار حرفه ای نیست، یعنی نشون میده اصل الگوریتم برنامه از نظر امنیتی ضعیفه و ما سعی داریم این ضعف ها رو از دید دیگران پنهان کنیم (مثل جارو کردن آشغال ها به زیر فرش!)، و البته اغلب چنین چیزی امنیت واقعی و کافی رو تامین نمیکنه و تنها درمورد نفوذگرهای کم توان یا کم انگیزه کافیه.
از دیدگاه امنیت اصولی و حرفه ای، امنیت برنامه در درجهء اول باید چنان طبق روشهای علمی و دقیق و محکم باشه که برای تامین امنیتش نیازی به پنهان کردن الگوریتم و مشخصات فنیش نباشه. مثلا این همه برنامه های بازمتن که هستن اگر قرار بود با در دسترس بودن سورس اونها امنیت نداشته باشن که نمیشد.
در علم امنیت مدرن تنها چیزهایی که بطور معمول باید پنهان بشن، چیزهایی مثل کلیدهای رمزنگاری هستن.
البته بعد از اینکه الگوریتم خود برنامه امنیت اصولی داشت، اگر توجیه و صرف کافی داشت میشه از لایه های افزوده مثل تیرگی هم برای محکم کاری و امنیت چندلایه استفاده کرد.
ولی یک وقت هست هدف شما از پنهان کردن سورس، جلوگیری از کپی و استفادهء غیرمجاز ابداعات و ایده ها یا کل برنامهء شماست. اون بحثش فرق میکنه.
ولی مثلا میخوای آدرس وبی که دیتای برنامه رو بهش ارسال میکنی مخفی بمونه، خب اینطور چیزها رو با مخفی کردن سورس هم نمیشه مخفی کرد، چون با یک اسنیفر میشه اینها رو فهمید.
نقل قول: محافظت از برنامهء پایتون
با توجه به تجربه اندکی که توی زمینه امنیت نرم افزار دارم متاسفانه باید بگم که هر روشی که تا الان ابداع شده واسه امنیت کد، پس از مدت کوتاهی شکسته شده.
روش هایی که هست.
تبدیل فایل py به pyc بایت کد....قابل برگشت به کد پایتون با یک سری برنامه مثل Uncompyle2
مبهم سازی کد...با این روش فقط اسامی توابع و متغیرها تبدیل به اسامی مزخرف می شن و گاها یک سری توابع رو می پیچونه که خوندن کد سخت شه
پک کردن برنامه با Packer.....تمام پکر ها قابل آنپک کردن هستن.
قفل نرم افزاری....می زنن
قفل سخت افزاری...می زننن
نکته اینه که پایتون که اسکریپته...حتی اگه pyc هم بشه..باز هم به یک زبان میانی تبدیل می شه و بالا گفتم قابل برگشته
ولی حتی اگر شما کدت تبدیل به زبان ماشین هم بشه...باز هم الگوریتمت با Trace کردن قابل فهمیدنه....string هات قابل دیدنه...و شروطت قابل تغییر.
پست ناامید کننده ای بود..ولی سرشار از حقیقت تلخ