PDA

نسخه کامل مشاهده نسخه کامل : قفل هاي سخت افزاري و نرم افزاري



mahdilover77
13-07-2005, 20:01
قفل هاي سخت افزاري و نرم افزاري

قفل در اصطلاح عاميانه كلامي آشناست و از آن براي حفاظت از اشيا مختلف استفاده مي شود. اما مفهوم قفل در دنياي كامپيوتر و عالم نرم افزار، چيست ؟ امروزه براي جلوگيري از استفاده غيرمجازا ز برنامه ها ويا تكثيرغيرقانوني آنها، اصطلا حا به آنها قفل مي زنند. اما اين قفل گذاري چگونه صورت مي گيرد ؟ قفل گذاري كلا به دو روش نرم افزاري و سخت افزاري انجام مي شود كه ذيلا به تشريح آن مي پردازيم. قفل سخت افزاري ( Hardware lock ) چنانچه ازسخت افزارخاصي براي قفل گذاري استفاده شود، به آن قفل سخت افزاري مي گوييم. اين قفلها بعضي به صورت يك رابط، بر روي پورت پارالل سيستم نصب مي شوند كه البته هر دو نوع آن عملكرد مشابه دارند. بخش اصلي قفل، از يك حافظه قابل پاك شدن تشكيل شده كه با توجه به نوع و حجم آن، داراي عملكردي متفاوت مي باشد و عمدتا به يكي از دو روش زير عمل مي كند: الف) روش اول قفل گذاري به اين صورت است كه توليد كننده نرم افزار يك يا چند بايت از اطلاعات را در قفل نوشته و برنامه در هنگام اجرا آن را چك مي كند. در صورتيكه قفل وجود داشته باشد، برنامه به كار خود ادامه مي دهد و اگر قفل وجود نداشته باشد و يا اطلاعات خوانده شده از روي قفل صحيح نباشد، برنامه متوقف شده و با اعلام خطا، از اجراي صحيح، سرباز مي زند. اين نوع قفل ها داراي ساختاري ساده، حافظه اي در حد چند بايت، و قيمتي ارزان هستند. استفاده از اين قفل ها بسيار ساده بوده و نياز به تخصص خاصي ندارد،تنها كافيست كه نرم افزار ويژه قفل را ( كه توسط شركت توليد كننده قفل ارائه شده ) اجرا نمود. در ابتدا كه قفل فاقد اطلاعات است، اول يك كلمه دلخواه، به عنوان كلمه عبور درخواست كرده و سپس با توجه به نوع قفل، يك يا چند كلمه اطلاعات را دريافت و در حافظه قفل ثبت كنيد. در دفعات بعد مي بايست كلمه عبوري كه اولين بار ثبت شده، وارد شود تا بتوان به اطلاعات دروني قفل دسترسي داشت. البته بعد از ورود به برنامه اين كلمه قابل تغيير است. در هر صورت، پس از ثبت اطلاعات در قفل، توليد كننده نرم افزار، اطلاعات ثبت شده در يك برنلمه چك مي كند كه نحوه چك كردن اطلاعات، با توجه به نوع قفل متفاوت است. در بعضي فقط اطلاعات درون قفل چك مي شود و در بعضي ديگر، در مرحله اول وجود قفل چك شده و در مرحله بعدي، اطلاعات درون آن چك مي شود. ب) روش ديگر قفل گذاري به اين صورت است كه توليد كننده نرم افزار، بخش كوچكي از برنامه را در حافظه قفل قرار مي دهد كه در اين حالت، چنانچه قفل وجود نداشته باشد برنامه به هيچ وجه، قادر به اجرا و ادامه كار نخواهد بود. اين نوع قفل ها، داراي ساختاري كمي پيچيده، حافظه اي بعضا تا چند كيلو بايت، و قيمتي نسبتَََا گران هستند. استفاده از اين قفل ها، به سادگي نوع قبلي نيست. البته نحوه كلي كار مشابه روش قبلي است. با اجراي نرم افزار ويژه قفل و وارد نمودن كلمه عبور، بايد نام فايلي را كه مي خواهيم بر روي آن قفل بزنيم، مشخص كنيم، تا بخشي از آن در قفل ثبت گردد. البته در بعضي ديگر از اين نوع قفل ها، كه حفاظت بيشتري را انجام مي دهند، مي بايست توسط توليد كننده نرم افزار دقيقا كنترل شود كه چه بخش هايي از فايل بايد در قفل ثبت گردد كه ابته انجام اين كار نياز به تخصص و تجربه كافي دارد، چرا كه بعضا ممكن است كه خطا در انجام كار، باعث بروز اشكال در برنامه توليدي بشود. چون با اين كار در واقع بخشي از برنامه در قفل ثبت مي گردد، واضح است كه هر قفل فقط براي يك نسخه از برنامه مي تواند مورد استفاده قرار بگيرد و به همين علت كاربرد اين قفل، كمتر است. ضمنا نوع ديگري از قفل ها هستند كه هر دو روش فوق استفاده مي كنند، اما طرفدار چنداني ندارند. قفل نرم افزاري (Software Lock) چنانچه از روش ها و ترفند هاي نرم افزاري، براي قفل گذاري استفاده شود، به آن قفل نرم افزاري مي گوييم. قفل هاي نرم افزاري داراي تنوع بيشتري بوده و بعضا از لحاظ طراحي و اجرا سليقه اي و ابتكاري مي با شند. اما مي توان نحوه عملكرد اكثر آنها را، توسط يكي از 3 روش ذيل، تشريح نمود: الف) محدوديت در تعداد كپي(Copy Limited) در اين حالت برنامه نصب كننده نرم افزار، فضاي مشخصي در ديسك را با روش خاصي مرمت كرده، و تعداد مجاز نسخه برداري را در آن درج مي كند. بدين طريق با هر بار كپي كردن برنامه، يك واحد از اين عدد كم مي شود و هنگامي كه تعداد مجاز آن به صفر رسيد، ديگر نمي توان برنامه را بر روي سيستم نصب نمود. حال ممكن است اين سوال مطرح شود كه مگر نمي توان پس از نصب برنامه، از آن پشتيباني(Back Up) گرفته و سپس از نسخه پشتيبان نيز، بر روي سيستم ديگري استفاده نمود؟ پاسخ منفي است. زيرا هنگام نصب، اطلاعاتي راجع به سخت افزار سيستم كه مي تواند مثلا شامل نوع قطعات و يا شماره سريال قطعات باشد، در جايي، در محدوده قفل ذخيره مي شود و از اين پس هر بار در هنگام اجراي برنامه، اين اطلاعات به دقت چك مي شود و در صورت هرگونه تغيير، برنامه اجرا نمي شود. ب) استفاده از ديسكت، در هنگام اجراي برنامه (Disk Required) در اين حالت، ديسكت مورد نظر، يا به روش خاصي فرمت مي شود و سپس در هنگام اجرا، اطلاعات روي آن بررسي مي شود، و يا اينكه قسمتي از ديسكت را بصورت فيزيكي و عمدي خراب مي كنند و در اينجا، در واقع همان صدمه اي كه به عمد، بر سطح ديسكت وارد شده است، به عنوان قفل و محافظ نرم افزار عمل مي كند. از اين پس براي انتقال برنامه از يك سيستم به سيستم ديگر، اين فلاپي مانند قفل سخت افزاري عمل مي كند و مي بايست مختصات آن توسط برنامه تاييد شود و چنانچه اين فلاپي در درايو نباشد، برنامه اجرا نخواهد شد. قفل سي دي (اجرا از روي سي دي) با متداول شدن سي دي ويا لوح فشرده، روش جديدي در قفل گذاري ابداع شد و آن اجراي برنامه از روي سي دي است. در اين حالت برنامه هنگام اجرا، به سي دي رجوع كرده و نقاط خاصي از آن را چك مي كند. اين نقاط بخش هايي هستند كه به صورت فيزيكي علامت گذاري شده اند ودر واقع به نوعي صدمه ديده اند و معمولا اين خرابي با تابش اشعه ليزر انجام مي شود. به اين ترتيب به اصطلاح نقاط معيني از سي دي ليزرسوز مي شود. اين نقطه يا نقاط، به عنوان قفل سي دي عمل مي كند و از عمل تكثير يا كپي برداري و همچنين استفاده غير مجاز از آن جلوگيري به عمل مي آورد. در خاتمه سوالي كه در مورد سه روش فوق الذكر مطرح است، اين است كه آيا مي توان قبل از نصب، از ديسكت ها و سيدي هاي قفل گذاري شده كپي تهيه كرد و سپس آنها را نصب كرد؟ پاسخ منفي است، زيرا همانگونه كه اشاره شد، يا بخشي از ديسكت و يا تمامي ان، به روش خاصي فرمت مي شود كه قابل كپي برداري نيست و يا اينكه محل ونقاطي كه بر روي ديسكت و يا سي دي، به صورت فيزيكي و عمدي صدمه ديده اند، اجازه كپي برداري را نمي دهند و مانع از انجام اين كار مي شوند.

Unix
13-07-2005, 20:15
دمت گرم امروز كولاك كردي خدا كنه هميشه اينطور باشي

hoseinquest
15-07-2005, 00:06
دمت گرم امروز كولاك كردي خدا كنه هميشه اينطور باشي


سلام درته که کولاک کردی
اما این آقا/خانم یونیکس هم یه بار میخواست کولاک کنه همه زدن تو ذوقش مثل نستا

Unix
15-07-2005, 02:08
شما لطف دارين آقا يا خانم حسين

Beelzebub
15-07-2005, 02:48
mahdilover77, جان یه سر اینجا بزن
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
موفق باشی

atolympic
15-07-2005, 05:18
hoseinquestجان این جوری صحبت کردن درست نیست! :wink:

mehdi_7070
10-10-2005, 14:55
اخه چرا مقاله من را به نام خودت تمام کردی

mpsjavad
10-10-2005, 16:02
اخه چرا مقاله من را به نام خودت تمام کردی


با سلام ..

دوست عزيز اقا مهدي اگر فكر ميكنيد كه اين مقاله كه توسط كاربر mahdilover77 مطرح شده متعلق به شماست ادرس اصلي مقاله رو بديد تا در صورت تاييد منبع رو در پايين پست اول ذكر كنم ...

با تشكر ..

Master
30-10-2005, 22:03
كسي سريال pc on pointرو داره؟

mpsjavad
30-10-2005, 23:48
كسي سريال pc on pointرو داره؟


با سلام ..

دوست عزيز شما در انجمن كرك و سريال يك جستجو انجام بديد اگر به نتيجه نرسيديد تاپيك بزنيد و درخواست خودتون رو اعلام كنيد تا دوستان به شما كمك كنند ..

موفق باشيد .

Master
01-11-2005, 06:03
زدم . اتفاقا بود .ممنونم .ولي كار نمي كنه.در ضمن نم چجوري بايدsenior شم؟

mpsjavad
01-11-2005, 15:08
زدم . اتفاقا بود .ممنونم .ولي كار نمي كنه.در ضمن نم چجوري بايدsenior شم؟


با سلام ..


چجوري بايدsenior شم؟

دوست عزيز القاب شما در انجمن ها نشان دهنده سطح اگاهي و ارزش شما نيست ! پس فكر خود تون رو مشغول تعداد پست و القاب همديگه نكنيد ..

با تشكر .

Master
01-11-2005, 23:10
ممنون از توجهتون.

rezaninja
08-11-2005, 02:37
سریال pc point
Name: Sherry Quinney
S/N: 62422-85622-33227

mehdi_7070
18-11-2005, 09:50
ببخشيد حالا يادم افتاد :
اينم آدرس مقاله من :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

jafar_hoggt
07-04-2006, 00:53
ايجاد يك قفل نرم افزاري


با سلام
.


در تمامي مقاله ها روش كار بدين صورت خواهد بود كه برنامه يك كد را از كاربر خواهد خواست. در مقاله اول ابتدا روش بدست آوردن شماره سريال بك درايو را ياد خواهيم گرفت.


Private Declare Function GetVolumeSerialNumber Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

با معرفي اين تابع در ويژوال بيسيك شما قادر خواهيد بود كه شماره سريال درايوي را كه در lpRootPathName وارد كرده ايد بدست آوريد

Public Function DiscSerialNumber(ByVal RootPath As String) As String
Dim VolLabel As String
Dim VolSize As Long
Dim Serial As Long
Dim MaxLen As Long
Dim Flags As Long
Dim Name As String
Dim NameSize As Long
Dim S As String
Dim ret As Boolean
ret = GetVolumeSerialNumber(RootPath, VolLabel, VolSize, Serial, MaxLen, Flags, Name, NameSize)
If ret Then
S = Format(Hex(Serial), "00000000")
DiscSerialNumber = Left(S, 4) + "-" + Right(S, 4)
Else
DiscSerialNumber = "0000-0000"
End If
End Function


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

و در آخر يك تابع مفيد ديگر براي بدست آوردن درايو سي دي و سريال آن:


Const DRIVE_CDROM = 5

Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Private Declare Function GetVolumeSerialNumber Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Public Function GetCdRomDrive() As String
Dim tmp As Integer
Dim tmpStr As String
Dim Drives As String
Dim CDsCount As Integer
Dim CDsLetters As String
Dim ret As Long

Drives = Space(255)
ret = GetLogicalDriveStrings(Len(Drives), Drives)
For tmp = 1 To ret Step 4
tmpStr = Mid(Drives, tmp, 3)
If GetDriveType(tmpStr) = DRIVE_CDROM Then
CDsLetters = Left(tmpStr, 3)
Exit For
End If
Next tmp
GetCdRomDrive = CDsLetters
End Function


لازم ميدانم كه بگويم در مقالات آينده در بادره روشهاي زيپ كردن و كد كردن صحبت خواهم كرد.




برگرفته از سایت برنامه نویس

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

jafar_hoggt
07-04-2006, 01:12
8 توصيه براي ايمني بيشتر رمز عبور (Password)

برگرفته از سايت جالب ايران هو

آيا رمز عبور شما از حفاظت لازم برخوردار است؟ وارد كردن هميشگي اسم كاربر و رمز عبور، روندي ناخوشايند و كسل كننده است. چه بخواهيد ايميل خود را چك كنيد، چه بخواهيد از وضعيت حساب بانكي خود مطلع شويد.
اغلب كاربران كامپيوتر، به طور معمول از رمزهاي عبور ساده و آسان استفاده مي كنند. اما دقت داشته باشيد كه اين سهل انگاري در انتخاب رمز عبور، عواقب خطرناكي به دنبال خواهد داشت. رمزهاي عبور آسان و معمولي در ظرف چند ثانيه لو خواهند رفت و اطلاعات شخصي مانند شماره حساب بانكي و شماره كارت اعتباري شما به راحتي در معرض ديد هكرها قرار خواهند گرفت.



پيامد:
هر هكري مي تواند حساب بانكي شما را تخليه يا با شماره كارت اعتباري شما اقدام به خريد كند.


در اينجا 8 نكته براي حفاظت از اطلاعات توصيه مي شود.

1 .به هيچ وجه از اسامي استفاده نكنيد فرقي نمي كند كه اسم فاميلتان باشد، يا باشگاه فوتبال مورد علاقه تان. بسياري از برنامه هاي هكر، رمزهاي عبور را با كمك فرهنگ لغت هك مي كنند. فقط چند ساعت طول خواهد كشيد كه با كمك لغات يك فرهنگ لغت، دستيابي به رمز عبور امكان پذير شود.


2.براي رمز عبور خود حداقل از 8 حرف استفاده كنيد:
براي رمز عبوري كه از 4 حرف تشكيل شده است، حدود 45000 حالت وجود دارد. اما براي رمز عبوري كه از 8 حرف و علامتهاي ويژه تشكيل شده است، يك ميليارد حالت مختلف وجود دارد!

3.براي رمز عبور، از حروفي كه در كنار هم قرار گرفته اند استفاده نكنيد!
رمزهاي عبوري مانند “qwert” يا “asdf” ، كار هكرها را براي دستيابي به رمز عبور بسيار آسان مي كند، اين مطلب در تركيب اعداد نيز به همين صورت است؛ مثل " 12345678 ". در كنار هم قرار گرفتن حروف و يا اعداد، دستيابي به هكرها به رمز عبور شما را بسيار راحت مي كند!

4.براي رمز عبور خود، تركيبي از حروف بزرگ و كوچك يا اعداد و علامتهاي ويژه را انتخاب كنيد.
استفاده از علامتهاي ويژه به تنهايي كافي نيست. 5 درصد همه كاربرها بر اين امر اتفاق نظر دارند كه رمز عبوري مثل Martin! را به كار برند!

5.رمز عبور خود را تا حد امكان جايي ننويسيد
حتي اگر كاغذي كه رمز عبور خود را بر روي آن نوشته ايد، در جاي امني مانند كيف تان باشد، از اين كار اجتناب كنيد. عنوان كاغذي كه رمز عبور خود را بر روي آن نوشته ايد، به هيچ عنوان زير صفحه كليد يا به مانيتور خود نچسبانيد!

6.رمز عبور خود را همواره تغيير دهيد.
هر قدر، مدت زمان استفاده از رمز عبورتان بيشتر باشد، خطر هك شدن شما بيشتر خواهد بود. اداره فناوري اطلاعات آلمان فدرال، توصيه مي كند كه هر 90 روز يكبار رمز عبور خود را تغيير دهيد.

7.رمز عبور خود را در كامپيوتر ذخيره نكنيد!
كامپيوتر قادر است رمز عبور شما را ذخيره كند تا شما مجبور نباشيد هر بار آن را وارد كنيد. با اين حال، كسي كه براي هر بار ورود، احتياج به وارد كردن رمز عبور نداشته باشد، خيلي سريع آن را فراموش مي كند: دقت داشته باشيد كه براي تغيير رمز عبور ، بايد حتماً رمز عبور قبلي را وارد كنيد!

8.رمز عبور خود را به شخص ديگري ندهيد!
اگر از شما تلفني يا با ايميل، رمز عبورتان را خواستند، آن را بازگو نكنيد! هكرها معمولاً خود را به عنوان همكاران شركتهاي بزرگ معرفي مي كنند. اين اشخاص كه خود را سرويس كار كامپيوتر معرفي مي كنند، معمولاً توسط تماس تلفني يا ايميل رمز عبور شما را براي حل مشكل كامپيوترتان طلب مي كنند. ولي هيچ شركت معتبر و صاحب نامي از شما رمز عبورتان را نمي خواهد.



هفت روش حرفه اي براي ايجاد رمز عبور


1.براي ايجاد كلمه عبور، از حروف بزرگ و كوچك و به صورت يك در ميان استفاده كنيد. مثال: cOmPuTeR

2.حروف اول كلمات يك جمله را به عنوان رمز عبور خود انتخاب كنيد.
مثلاًدر جمله:"If sentence is longer password would be safer " كه رمز عبور آن به اين صورت تبديل مي شود: " Isilpwbs "

3.عدد يا تاريخي را براي خود در نظر بگيريد و آن را با دكمه Shift تايپ كنيد.
مثلاً : تاريخ: 13.06.2002 با دكمه Shift به اين كلمه تبديل
مي شود: !#>)^>@))@

4.لغتي را در نظر بگيريد و سپس حروف سمت راست آن را که بر روي صفحه كليد قرار دارد، بنويسيد:
مثال: Hardware تبديل مي شود به: Jstfestr

5.لغت يا تركيبي را براي خود در نظر بگيريد مانند “24Oktober” و بعد آن را بهم بريزيد به اين صورت كه حروف اول آن را با حرف آخر، حرف دوم را با حرف ماقبل آخر و به همين ترتيب بقيه را بنويسيد: 24r4eObkot

6.لغات يك جمله را به اختصار بنويسيد اين اختصارات را خود شما تعيين مي كنيد و از قاعده خاصي پيروي نمي كنند. مثلاً عبارت White meat with cabbage تبديل مي شود به: “whtmtwtcabge”

7.در رمز عبور از علائم ويژه استفاده كنيد. مثال: “c/Om%u\t§E~r



برگرفته از سایت برنامه نویس
:cool: :laughing: