نقل قول نوشته شده توسط greenway مشاهده تاپیک
بارها و بارها چه در این انجمن و چه در جاهای دیگر دیدم که دوستان به دلیل سخت افزاری بودن قفل امنیت اون رو بالاتر میدونند. همه قفل های سخت افزاری برای اجرا در سیستم عامل ویندوز نیاز به Device Driver دارند و همه اونها توسط DeviceIoControl کنترل می شوند. یعنی اینکه با شبیه سازی IOCTL ها در یک Driver غیر واقعی همه این قفل های سخت افزاری قابل دور زدن هستند. نهایتا بحث مطرح شده این دوستمون ممکنه که کاملا درست نباشه اما یک نکته امنیتی برای پیاده سازی در داخلش هست و اون اینکه در این روش کار فقط برای زمانی که قفل اصلی در اختیار Cracker نباشه سخت میشه و در صورتی که قفل رو به همراه برنامه به Cracker بدهند تفاوتی نخواهد داشت. Cracker ها معمولا علاقه شدیدی به SDK قفل های سخت افزاری دارند ،‌ چون با این روش به راحتی میشه کار جایگزینی Replacement قفل رو با نرم افزار انجام داد. بهترین قفل دنیا هم اگر در عمل فقط با یک دستور شرطی بررسی شود ، با بدترین قفل دنیا از نظر کارآیی برابری می کند.
بحث جالب شد.
یعنی اینکه با شبیه سازی IOCTL ها در یک Driver غیر واقعی همه این قفل های سخت افزاری قابل دور زدن هستند
.
این فکر قبلا کار می کرد ولی امروزه از سیستم های رمزنگاری پیچیده ایی استفاده می کنند که شما حتی با دستکاری در ISR ها و Interrupt Dispatching با دیوار مانند RSA با کلید 1024bit می خورید.
اینکه در این روش کار فقط برای زمانی که قفل اصلی در اختیار Cracker نباشه سخت میشه
این برای cracker های ناشی و تازه کار هست. امروزه دیگر کسی چندان با خود قفل و شبیه سازی اون کاری ندارند به چند دلیل که برخی را در انتها می گویم. بیشتر با خود برنامه کار می کنند چرا که هم ساده تر است و هم این که مطمئن تر.

1: قفل های سخت افزاری در مقیاس نرم افزار های بزرگ کاربرد خود را از دست داده اند و امروزه بسیاری نرم افزار ها از یک سیستم به عنوان تایید کننده لیسانس در شبکه استفاده می کنند و تمام قفل ها با اون سرور در ارتباط قرار می گیرند
2: به علت برخی محدودیت ها که برای قفل سخت افزاری است مانند :
  • طراحی
  • ساخت
  • نیروی کار ماهر

برای تولید یک قفل می باشد بیشتر به سمت گزینه 1 رفتند.