با سلام و خسته نباشید خدمت برنامه نویسان عزیز
سوالی داشتم در مورد امنیت فایلهای کامپایل شده در VB.Net
با توجه به اینکه هر فایلی را می توان با برنامه هایی مشابه WinHex باز نمود چگونه می توان برنامه را طوری Encode کرد که امکان مشاهده نام فرمها و Object ها و ... در آن وجود نداشته باشد؟
در VB 6.0 این امکان وجود داشت که با برنامه هایی مشابه eXPressor فایل EXE را فشرده کرد که این باعث می شد که ساختار Hex آن به هم بریزد.
ضررهای شناخت توسط Hex:
1- توانایی تغییر ثابت های تعیین شده مثل سریال محصول
2- شناخت فایلهای مورد استفاده قرار گرفته شده خارجی (بیشترین استفاده در DB)
3- شناخت آدرسهای مورد استفاده در Regedit
4- شناخت اتصالات در شبکه
5- محل کامپایل شدن فایل (یعنی اگر بنده یک فایلی را کامپایل کنم کسی که آن را با Hex باز می کند می تواند Directory کامپیوتر بنده را داشته باشد)
6- شناخت نام فرمها، نام Object ها، Caption ها و Text ها و ...
تست های انجام شده:
1- تمامی متنهای موجود در برنامه به کدهای ASCII تبدیل شد.
2- تغییر متنهای موجود به UNICODE
3- استفاده از فایل کامپایل شده به عنوان یک فایل Resource
4- استفاده از یک Resource برای تبدیل متنها (مثل کاری که در VB 6.0 در قسمت Wizard انجام می شد)
5- استفاده ترکیبی از متغییرها برای شکل دادن متن و ...
ولی با این وجود هیچ تغییری در ساختار Hex به وجود نیامد.
تنها عملی که روی این ساختار تاثیر گذاشت فارسی کردن متنها بوده که به نظر من تأثیر اساسی در برنامه ایجاد نمی کند.
با تشکر