نقل قول نوشته شده توسط محمد تارزان مشاهده تاپیک
از پاسخ خوب شما ممنونم، سعی میکنم از راهنماییتون به نحو احسن استفاده کنم. ضمنا میخواستم نظر شما رو در مورد کارآمدی مبهم ساز obfuscar بدونم و با توجه به "اپن سورس" بودن اون، در چه سطحی از تغییرات می تونیم الگوریتم مبهم سازی اون رو سفارشی سازی کنیم.
معمولا سطح مبهم سازی را تا حدی باید انجام بدید که خروجی برنامه را بتونید حداقل در ماشین های مختلف تست کنید و تظمین کنید که کمترین میزان مشکل را دارید.
بهتره ابتدا یک سطح از مبهم سازی را انجام بدید مثلا با پیش فرض ها وبعد از تست های واحد در زمان اجرا را انجام بدیددر صورتی که خطای منطقی مشاهده نکردید. سطح مبهم سازی را بیشتر کنید و دوباره تست ها را انجام بدید برای هر مرحله هم سعی کنید تمام جزییات را مستند کنید مثلا در سطح بعدی مبهم سازی سعی کنید مثلا نام متغییرها و رفرنس های آبجکتها را مبهم کنید در سطح بعدی نام متدها و نام توابع غیر عضو ویا متغیر های سراسری را مبهم کنید. سعی کنید کلاسها تون را در فایل های مختلف و در فضای نام ها ویا پکیج ها مختلف نگه داری کنید اینطوری کار برای کسی که سورسها را باز میکنه سخت تر خواهد شد.
کلا مبهم سازی سورس کدها، یک اصول کلی که بتوان برای سورس کدها در پروژه های مختلف نرم افزاری بهمدیگر تعمیم داد وجود ندارد بنابراین تنظیم سطوح مختلف مبهم سازی بیشتر به روش کد نوشتن شما و قواعد برنامه نویسی شما مرتبط می باشد. که با سعی و خطا و یکم هم ممارست می تونید به بهترین سطح مبهم سازی برسید.
البته بازهم تکرار میکنم سعی کنید جانب اعتدال را رعایت کنید در غیر اینصورت متاسفانه در برخی از ماشین ها رفتارهای تعریف نشده خواهید گرفت، که مطمنا رفع کردن شون هم به سادگی امکانپذیر نیست و در صدد رفع اشکال بوجود آمده برمیاد که متوجه میشید روی ماشین های دیگه که درست بوده هم به اشکال برمیخورید که در این شرایط در پارادوکس های نرم افزاری وحشتناک گرفتار میشید برای همین مبهم سازی را از یک حدی بیشتر اصلا انجام ندید!!