منم با آقای joker موافقم.
/
Printable View
منم با آقای joker موافقم.
/
می شه مختصرا توضیح بدین قفلهایی که با رجیستری کار میکنن چه طور کار می کنند؟
سلام آقا بابک
میشه کد استخراج شماره سریال هارد و سی پی یو رو به من بدی من دارم روی یک قفل کار میکنم
ممنون میشم
:قلب:
سلام
می خواستم بدونم کسی هست که یه قفل نرم افزاری توپ داشته باشه
برای یه برنامه می خوام یا بتونه یاد بده
ممنون
خوب کی قراره این کلید قفل را به مشتری بده؟
اگه میشه به من جواب بدید چون منم می خوام
سلام بهار - من مدت زیادیه که از یه OCX استفاده می کنم که سریال هارد رو بهم می ده اما به تازگی با مشکل جدیدی مواجه شدم و اون اینکه سریال هاردهای ساتا رو نشون نمی ده.
یه صفحه بر میگشتی عقب یه نمونه بود :https://barnamenevis.org/showpo...&postcount=294نقل قول:
نوشته شده توسط Mojtaba Rezayat
البته ظاهرا لینک دانلود کامپوننتهاشو از روی سایتش برداشته من همنیجا اتچ میکنم
با عرض سلام
بنده یک نرم افزار خریده ام وبرای اولین با روکامپیوتر نصب میشود یک شماره سریال به من میدهد و بعداز آن باید به مرکز زنگ بزنیم و پسورد یا سریال آن را بگیریم آیا میشود قفل آن را شکست
TankYou...
[Quate]
مثلاً کاربر می تواند هارد یک کامپیوتر دیگه رو روی کامپیوتری که نرم افزار برای آن به فروش رسیده، قرار دهد و پس از نصب برنامه آنرا به کامپیوتر اول برگرداند...
[Quate]
این منطقی نیست بالاخره روی یک کامپیوتر بیشتر نصب نمیشه منظورت از کامپیوتر اول چیه
ببخشید سر زده مزاحم شدم .
من فکر میکنم بدست آوردن سریال هر چیزی اصلا مهم نیست بلکه این مهمه که کاربر محدود بشه نه اینکه نرم افزار ، شما اگر سریال چیزی رو بدست بیارید و اونو توسط هر یک از الگوریتمهای کد گذاری کد کنید و بعد از کاربر یک شماره رو بخواهید که وارد کنه خوب این که راه حل قفل نرم افزاری نشد ، در اینصورت کافیه کاربر اون کد رو بدون نیاز به شما بدست بیاره که این کار کار خیلی ساده ایه و کرک کردن اینگونه قفلها راحت ترین نمونه های موجوده . چون در واقع کد گرفته شده از کاربر با کد تولید شده مقایسه می شه و جوابی برگشت داده میشه که صحت یا عدم صحت را بر می گردونه و این فقط یک IF ساده هست ، حالا شما به سختی یک کد را بوجود بیارید و مقایسه کنید خوب کافیه فقط کد اجرایی رو باز کنیم و یک کد رو تغییر بدیم تا این IF به Not اش تغییر هویت بده .
بهتره بجای استفاده از کد و مسائلی از این قبیل راه حلی برای پیچیده شدن این فرآیند شرطی پیدا کنید .
من فکر میکنم راه حل ایجاد قفل بر روی نرم افزارها چیزی غیر این این راه حلهاست . :متعجب:
سلام خسته نباشید
من خیلی مشتاقم در این پروژه کمکتون کنم اگه کاری از دستم بر می یاد خبرم کنید
با تشکر محمد
طی صحبت و مشاوره ای که امروز با آقای مصافی (BlackDal) داشتم به این نتیجه رسیدیم که یکی از روش های خوب برای امنیت نرم افزار این هست که شما سریال دیسک اصلی یا همون Primary Drive رو بگیرید و اون رو با MD5 هش کنید.این داده بدست اومده رو یه جا ذخیره کنید و با هر بار اجرای برنامه اول چک کنید ببینید که مقدار هش شده سریال دیسک اصلی با مقدار قبلی برابر هست یا نه ؟
این روش فقط برای این هست که شما از اجرا شدن برنامتون روی سیستم های مختلف جلوگیری کنید.فرض کنید برنامه این رو رو یه سیستم نصب کنید،بعد کاربر بیاد فایل های اصلی برنامه رو کپی کنه رو یه سیستم دیگه،با این روش میشه جلوش رو گرفت.
دیگه بقیه کد نویسی ها و اعمال امنیت های نرم افزار مثلا برای ورود به برنامه،بازه زمانی قابل قبول اجرای برنامه یا چیزای دیگه خدا قوت خودتون بنویسید :لبخند:.
ولی من توی اینترنت هی چی گشتم تو سایت های مختلف خارجی این بعترین کدی بود که برای تولید MD5 دیدم.یه کلاس هست،استفاده اش هم خیلی راحته:
Dim cMD5 As New clsMD5
Dim strHash As String
strHash = cMD5.CalculateMD5("CodeMasterX")
MsgBox strHash,vbInformation,"MD5 hashing"
انشاالله که به کار برو بچس برنامه نویس بیاد! :گیج::شیطان::لبخند:
مطالب مفیدی بود
تشکر
دوستان این کدهارا میشه داخل اکسس هم استفاده کرد؟
کدوم کد رو ؟ همون الگوریتم هش MD5 ؟
بله چرا نشه ؟ مقدار بازگشتی این الگوریتم یه رشته هست که میتونی تو اکسس هم ذخیرش کنی.
این کلاس یه متد داره بنام CalculateMD5.شما اینجوری ازش استفاده میکنی:
Dim strData As String
strData = CalculateMD5 txtPassword.Text
حالا
که مقدار هش شده پسورد رو گرفتی میتونی توی یه فیلد از نوع رشته توی اکسس ذخیرش کنی و هر بار که کاربر ویخواد وارد برنامه بشه پسوردش رو هش کنی و با مقدار هش شده اولیه مقایسه کنی.همین!
الگوریتم های رمزنگاری و هش کردن داده ها توی نشوتن قفل های نرم افزاری کاربرد زیادی دارن و MD5 هم با اینکه بارها اعلام شده که منسوخ شده ولی هنوز از محبوبیت و قدرت بالایی برخوردار هست.اشاره کنم که الگوریتم های هش ربطی به رمزنگاری داده ها ندارن و مقدار برگشتی ندارن!
و در جواب چند پست اخیر این تاپیک در مورد قفل هایی که با رجیستری ویندوز کار میکنن:
اینجور برنامه ها اصلا از امنیت و کیفیت خوبی برخوردار نیستن دوستان.رجیستری ویندوز که شبکه عصبی این سیستم عامل محسوب میشه،خیلی راحت قابل دسترسی هست و هر چیزی که بخواد با رجیستری چک بشه امنیت پائینی داره.برای مثال برنامه هایی که با استفاده از رجیستری مدت زمان استفاده از برنامه رو 30 روز تعیین میکنن.این جور تکنیک ها به سادگی قابل تخریب هست.بهترین راه ها استفاده از سریال هارد دیسک،سریال CPU و اینجور تکنیک ها هست.ولی یادمون باشه که بالاخره همیشه راهی برای کرک برنامه شما خواهد بود!
دوستان میشه یک نمونه اکسس هم بزارید خیلی ممنون میشوم
این نمونه ی اکسس نیست ولی اینو من همین الان نوشتم و کارش تبدیل MD5 ه.
MD5 Translator
دوستان نمونه اکسس نبود
سلام
من یه عضو تازه وارد به این سایت هستم ولی قراره حالا حالا بمونم چون علاقه شدیدی به برنامه نویسی وی بی دارم... البته رشته م الکترونیکه!
می خواستم بگم که منم هستم توی این طرح آقا بابک. من هم روی یه قفل کار کردم که نسبتا ً خوب در اومده ولی نمی دونم از لحاظ امنیتی در چه سطحیه.
خلاصه این که ما هم هستیم توی جمع شما (این طرح) اگه قابل بدونین...
فعلا ً...
با سلام
در حدود دو روز پیش من و برادرم قفلی رو طراحی کردیم که شامل یک Hardware و یک Serialبود. Serial برای هر برنامه ای که کامپایل می شود ثابت است برای مثال 0000000001 و 0000000002 و ...
این اطلاعات پس از اتصال به اینترنت به یک فایل PHP فرستاده می شود.
تا این جا کاری است که در فایل EXE انجام شده
من در سایت خودم یک فایل PHP قرار دادم که با دریافت این دو کد، کد سومی را تولید و echo می کند.
این فایل PHP کد سریال برنامه ای را که دریافت کرده بررسی می کند که در بانک خود نداشته باشد. در صورت وجود Hardware کد را مقایسه می کند. (معنی فارسیش میشه فقط یک کامپیوتر حق استفاده از برنامه با سریال فرضا 0000000001 یا ... رو داره)
برنامه این کد را دریافت و درون یک متغییر یا TextBox یا هر چیز دیگر می ریزد و در رجیستری فقط Hardwarecode و Serial به نحوی ذخیره می شود که از قابل رمز گشایی مجدد نباشد.
ضمنا در برنامه نویسی VB و به خصوص VB.Net ضعف هایی مشاهده کردم که در صورت علاقه ببینید: https://barnamenevis.org/showth...355#post351355
این قفل نرم افزاری رو که شما از اون دم میزنید رو که من دیروز 29/03/86 نوشتمش که
کامل کامل .
تازه برای ساپورت بهتر در صورتی که کاربر بخواد یک فلاپی هم بهش میده که تنها روی اون کامپیوتر کار میکنه تا اگر یکی از سخت افزار ها شو عوض کرد بتونه از اون فلاپی کمک بگیره تا بتونه ار برنامش استفاده کنه
با سلام
من بیشتر با دلفی کار می کنم و مثل دوستان زیاد تو VB متخصص نیستم.
این یه کد VB هست که اسم هارد، شماره سریال هارد و ... رو میده
شماره سریال هم همون شماره ایه که روی هارد نوشته شده مثل : SN : Y2D594AE
فکر می کنم منحصر به فرد هم باشه.
این کد با فایل exe و ... هست.
امیدوارم به کارتون بیاد.
خوش باشید.
تا بعد.
سلام
اینم کد کامل ترش
یه مشخصات کامل تر از هارد رو می ده
خوش باشید
تا بعد
دوستان من اطلاعاتی در مورد کرک نرم افزار دارم اگه دوستان خواستن راهنمایی کنم.
مثلا هیچ وقت اگه رمز اشتباه وارد شد نباید پیام و ... بدیم. و ...
سلام به همه
من تازه تو این سایت عضو شدم
الان دارم دوره کارآموزیمو میگزرونم و کارم بد جوری گیره گزارش کاره
کی می تونه زحمت بکشه و یه گزارش کار به من بده اگه در ضمینه vb باشه خیلی بهتره
قول میدم جبران کنم
مرسی
آیا کسی می دونه کرک چیه !؟
با کرک می شه دستوراتی رو که رو قفلاتون انجام دادین از بین برد !
مثلا یه شرط نوشتین !
خیلی که پیچیده باشه توی 1 ساعت دستور شرطی رو از بین می بره.
به ادرس زیر برین .
برنامه هست که من در زمینه ی امنیت نرم افزاری ساختم.
این برنامه برای اولین بار ساخته شده .
سلام قربون دستت به این کد خیلی نیاز داشتم
سریال هارد
سلام بابک جان
از این پروژه ات خیلی خوشم آمد. من تو یک شرکت مسئول شبکه هستم اینجا همه رقم کامپیوتر دم دستم هست اگر نیاز به آزمایش داری میتونی رو من حساب کنی.
دوستان لطفا توجه كنيد كه با بدست آوردن مشخصات سخت افزار و كد كردن آنها با هر الگوريتم پيچيده اي ، در نهايت كد دريافتي از كاربر با كد توليدي يك جايي در سورس شما مقايسه خواهد شد و در اينجا كافيست در سورس برنامه آن شرط را Not كرد .به همين راحتي قفل شكسته ميشود.قفل هاي مبتني به ريجيستري هم كه ديگه از رده خارج شده .لذا بايد فكر ديگري كرد.حتي فكر استفاده از توليد فايلهاي dll و نوشين كد در داخل آنها و يا توليد فايل اجرايي ديگر را هم نكنيد كه علاجش يك Decompiler .بايد وسيع تر از اين حرفا فكر كرد.
دوستان سلام
اين جور بحث ها هميشه به همين جا كه آقا اين روش شكست مي خوره اون روش ضعيف اين روش با فلان كار سر سه سوت شكسته ميشه. پس بايد نتيجه گرفت قفل چيز به درد نخوريه ديگه!
بهتره هدف طراحي قفلي باشه كه هر كي از جاش پاميشه نياد از برنامه استفاده كنه. اتفاقا هر كه بتونه قفل رو بشكونه به خاطر تلاشش بايد بهش جايزه داد. جايزش هم استفاده از برنامه است!
دوستانی که از محیط های قدیمی استفاده می کنند، مثل VS 6.0، برای بدست آوردن کد سخت افزاری از WMI ویندوز استفاده کنند. به نظر من برای کسانی که می خوان کارشون راحتتر پیش بره، بهتره که از کد سریال فلش مموری استفاده کنند. شما می تونید برنامتون رو روی همون فلش بذارید و با اون بفروشید... این روش فقط یک مشکل داره و اون هم اینه که برنامه هایی برای شبیه سازی مجازی فلش ساخته شده... این برنامه ها قابلیت شبیه سازی کامل با کد سریال را دارا هستن...
چندتا از دوستان در بعضی سایت ها روی کد سریال سی دی بحث کرده بودند ولی این شیوه کاملا غلط هست چون کد سریال سی دی در هنگام کپی تولید و رایت میشود، پس با کپی آن، آن سریال هم کپی می شود...
البته در همه موارد، شیوه آنلاین می تونه تولید کننده نرم افزار رو راحت، و امنیت برنامه رو بالا ببره...
من توی یکی از برنامه هام کد سخت افزاری رو با SHA-1024 کد و با تعدادی کد دیگه ترکیب می کنم به طوری که در نهایت کدی با 3584 کاراکتر البته با سختی 5 تولید می کنه و به سایت ارسال می کنه. حالا هکر مورد نظر این مقدرا رو هرجوری که بگیره، چطوری می خواد به نتیجه برسه؟ :لبخند:
البته کرک کردن فقط کار رو Hash و کدهای تولید نیست ولی این هم یکی از موضوعات مهمه...
----------------------------------------------------------------------------------------------
در مورد کرک کردن هم توی خیلی از سایت ها توضیحاتی داده شده ولی همه جا به صورت خلاصه بیان شده... این نه از روی ندانستن، بلکه از جهت این زیاد دنبال نمیشه چون دامنه ی خیلی گسترده ای داره و خیلی از کرکرها شیوه های خودشون رو دارن...
برای مثال چند وقت پیش یکی از برنامه های کرک شده یکی از سایت ها که در زمینه دانلود آفلاین کار میکرد پابلیک شد و اون سایت مجبور شده فعالیتش رو به شیوه دیگه ای پیش ببره...
چون این برنامه آنلاین بود، با بدست آوردن پروتکل های اون، برنامه کرک شده در اختیار کاربران قرار گرفت...
یا برای برنامه های Trial که مجبور به تغییر و ثبت در حافظه هستند، کفیه که بیایم تغییرات حافظه رو ببینیم...
برای شروع توصیه من به دوستان Process Monitor هست چون با این برنامه نیازی به کندوکاو زیاد نیست و شما می تونید در عرض چند دقیقه کل برنامه رو مورد ارزیابی قرار بدید.
دوست عزیز شناسه Cpu به درد نمی خوره . چون روی بیشتر کامپیوتر ها یکیه. من روی یک قفل این چنینی کار کردم. اما من توی اون از شناسه هارد استفاده کردم
حالا که این موضوع مجددا باز شد اجازه می خوام چند مورد مهم که حاصل تجربه خودم هست را به دوستان عرض کنم.برای نوشتن قفل نرم افزاری چند کار باید انجام بشه !
1- بدست آوردن مشخصات یکسری از قطعات سخت افزاری که کمتر تعویض میشود ( جهت ثابت بودن کد قفل )
2- تولید یک کد قفل بر اساس مشخصات استخراج شده ( بهتره شامل حروف و اعداد باشه )
3- در نظر گرفتن یک الگوریتم خاص و غیر قابل هک برای فعال سازی نرم افزار
توجه داشته باشید که اگر الگوریتم شما پیچیده باشد هکر ها برای هک نرم افزار شما دیگه از این روش استفاده نمی کنند .
همانطور که می دانید یک نرم افزار از چندین فرم تشکیل شده که در ابتدا همه مخفی و غیر فعالند و فرم قفل نرم افزاری در ابتدای برنامه قرار می گیره و بعد از ورود کد فعال سازی مورد نظر آن فرم مخفی شده و مثلا فرم اصلی برنامه نمایش میابد . آیا اگر ما از یک فرم قفل نرم افراری در ابتدای برنامه با بهترین روش غیر قابل هک استفاده کنیم کافیست ! نه اینطور نیست هکر میاد و فقط نام فرم اصلی را توسط نرم افزار های editor پیدا می کنه و فقط کافیه کد لود شدن اون فرم را به برنامه ما اضافه کنه ! به همین راحتی !
اما بعضی ها میان و در یک تایمر مرتبا چک می کنند که قفل نرم افزاری فعال شده باشد اما این کار هم ناموفقه چون فقط کافیه کد غیر فعال شدن تایمر را هکر به لود فرم قفل اضافه کنه به همین راحتی !
اما بسته به کارایی نرم افزار برنامه نویس بر اساس نوع کار کرد بیاد و عمل چک کردن قفل را در رویدادی از برنامه قرار بدهد که غیر قابل هک شود مثلا در یک نرم افزار حسابداری هنگام گزارش گیری !
نمونه ای از این قفل را من در یک برنامه کوچک جهت تست کردنش قرار دادم www.fxmahdi.blogfa.com
اگر کسی الگوریتمشو خواست فقط برام ایمیل بزنه . fxmahdi@gmail.com
درسته! البته اینم درسته که خیلی از Bios ها مشابه همین عمل می کنه و نمیشه از اون برای تولید کد استفاده کرد؛ اما با ترکیب همه سخت افزار ها آخرش میشه یه چیزی از آب درآورد...
البته همه قطعاتی که احتمال تعویض اونا کمتر هست... :لبخندساده:
البته... اینم هست که همیشه برنامه ها کرک میشن... ولی حداقل زمان کرک شدن رو میشه طولانی تر کرد... :چشمک:
آقا از بحث قفل نرم افزاری بیاین بیرون ما ایرانی ها سی.دی ها مایکروسافت خصیص رو دو در می کنیم وای بحال برنامه نویس های تنهایی مثل ما
دیگه جدیدا قفل های سخت افزاری رو هم می شکنن وای بحال نرم افزاری
اصلا این حرفت رو قبول ندارم. اگه 20 تا هکر حرفه ای بیان کنار هم بشینن و برای ساخت یه قفل نرم افزاری یا سخت افزاری فکر کنن، میتونن با بستن راه های نفوذی که برای هک کردن قفل هست یه قفل بسیار حرفه و غیرقابل نفوذ بسازن که اگه پدر پدر بزرگترین هکر هم بیاد نتونه بازش کنه.نقل قول:
آقا از بحث قفل نرم افزاری بیاین بیرون ما ایرانی ها سی.دی ها مایکروسافت خصیص رو دو در می کنیم وای بحال برنامه نویس های تنهایی مثل ما
دیگه جدیدا قفل های سخت افزاری رو هم می شکنن وای بحال نرم افزاری
دوستان عزیز من یه ActiveX نوشتم که سریال هارد دیسک که به نظرم از سریال CPU خیلی قابل اطمینان تره رو در اختیار برنامه نویس می زاره . البته من خیلی وقته رفتم سمت VB.Net ولی برای نوشتن قفل نرم افزاری خودم از این اکتیوایکس استفاده کردم . اگه دوست داشته باشین من این اکتیو ایکس رو در همین تاپیک می زارم که هرکی که به دردش بخوره ازش استفاده کنه .
دیدن قفل نرم افزاری PS-27
هر چند به نظر میرسد که این تاپیک کلا به بیراهه رفته اما نسخه برنامه ای که قبلا اینجا گذاشته بودم را دوباره آپلود میکنم.
پ.ن: چند روز پیش برای یک پروژه احتاج به این کد داشتم که اینجا پیدا نکردم لذا دوباره فرستادم