ورود

View Full Version : راههای محافظت از نرم افزر نوشته شده با vb6



araelectronic@ymail.com
یک شنبه 28 آذر 1389, 17:09 عصر
باسلام
اساتید محترم من چند تا سوال داشتم لطفا راهنمایی فرمایید .
البته میدونم که موارد زیادی در سایت مطرح شده ولی کامل و یکجا اطلاعاتی ارائه نشده.
من برنامه ای دارم که با vb6 نوشتم تو این سایت می خواستم بدونم چه راههایی برای محافظت از آن وجود داره ؟
آیا در کد نویسی باید مواردی را رعایت کنم یا از نرم افزارها و قفلهای سخت افزاری استفاده کنم ؟
از چه قفلها و protector هایی استفاده بشه بهتره ؟
تفاوت قفل نرم افزاری و پکر و پروتکتور چی هست ؟
در کل به ترتیب چه مواردی را میشه برای امنیت بهتر رعایت کرد؟


با تشکر

vahid1
جمعه 03 دی 1389, 20:29 عصر
حتماً در كد نويسي هم مي‌توان نكاتي را رعايت كرد كه برنامه ايمني داشت. البته انتظار نداشته باشيد در يك تاپيك همه چيز را ياد بگيريد فقط سرنخ‌ها ذكر شده و بقيه كار به عهده‌ي شما است.
برخي نكات قابل رعايت در كد نويسي:
1- رمز كردن رشته‌هاي حرفي. بجاي اينكه مستقيماً در برنامه‌تان پيام‌ها را بنويسيد بهتر است آنها را رمزگذاري كنيد و يا حداقل در يك Resource فايل قرار دهيد. البته در VB اين كار مرسوم نيست ولي اين كار خيلي كمك مي‌كند
2- استفاده از الگوريتم‌هاي پيچيده در كنترل قفل مانند نمونه زير :
كد عادي كه خيلي سريع شكسته مي‌شود:
if Not ProgramRegistered() then
MsgBox( “Not registered”)
END
Endif
كد كمي بهتر، كه البته لازم است تا در نقاط مختلف برنامه صدا زده شود و صحت قفل كنترل شود:
Dim IsRegistered as boolean
Dim IsNotRegistered as boolean
isRegistered = ProgramRegistered()

.. some dummy code

IsNotRegistered= not ProgramRegistered()

.. some dummy code

If not IsRegistered then
Dim oFrmRegister as frmregister
oFrmRegister.show VbModal
Endif
If IsNotRegistered then
Dim oFrmRegister as frmregister
oFrmRegister.show VbModal
Endif
If IsRegistered=IsNotRegisteed then
Dim oFrmRegister as frmregister
oFrmRegister.show VbModal
endif
3- تكرار بخش‌هاي امنيتي مانند كنترل قفل در بخش‌هاي مختلف برنامه
4- رمزگذاري اطلاعات شماره سريال و كدهاي پاسخ در داخل برنامه
5- كنترل صحت فايل‌هاي اجرايي برنامه با روش‌هايي مانند CRC
6- خيلي موارد ديگر كه بسته به نوع نرم‌افزاري كه خواهيد نوشت مشخص مي‌شود

استفاده از ابزارهاي حفاظتي و قفل گذاري هميشه توصيه مي‌شود ولي با توجه به نرم‌افزارتون و بودجه تصميم گيري كنيد.
در رابطه با VB بايد مراقب Decompilerها هم باشيد پس حتما از ابزارهاي حفاظتي مطمئن استفاده كنيد.
در رابطه با انتخاب نرم‌افزارهاي حفاظتي بايد خودتون جستجو كنيد و مورد مناسب را انتخاب كنيد. فقط توجه داشته باشيد نرم‌افزارهاي حفاظتي بسياري (مجاني و تجاري) وجود دارد و قالب اونها شكسته شده و بصورت عمومي عرضه مي‌شوند ولي شكسته شدن آنها توسط گروه‌هاي بسيار حرفه‌اي انجام مي‌شود و هدف بيشتر تاثير در بازار رقابت و تجارت اين گونه نرم‌افزارها است. پس اگر مي‌تونيد گران‌ترها را جستجو كنيد.

قفل نرم‌افزاري با هدف جلوگيري از كپي برداري غير مجاز از نرم‌افزار تهيه مي‌شود و بسياري از آنها براي حفاظت از خودشان، بخش‌هاي حفاظتي و فشرده سازي هم دارند. ولي نرم‌افزارهاي فشرده سازي Packer و حفاظتي Encryptorها فقط براي كم حجم كردن برنامه‌ها و جلوگيري از اعمال تغييرات تهيه مي‌شوند. بهتر است از هر دو مورد در كنار هم استفاده كنيد. البته اگر مقدور است چرا كه اين نرم‌افزارها چندان با هم سازگار نيستند.

در رابطه با VB ابزارهائي خاصي هستند كه علاوه بر حفاظت فايل‌ها امكان لينك كردن و يكپارچه سازي برنامه با DLLها و ActiveXها و... را هم مي‌دهند مانند VB-PowerWrap و...