# Native Code > برنامه نویسی در 6 VB >  قفل نرم افزاری

## بابک زواری

سلام خدمت همه دوستان 
یک قفل نرم افزاری در دست تهیه دارم که با کمک بعضی مشخصه های
خاص مثل CPU ID و سریال هارد و ... یک رشته Unique به ما میده
که ما با کمک اون میتونیم جوابی رو به مشتری بدیم که نرم افزار
اون تا موقعی که هریک از این مشخصه های سخت افزار عوض نشده 
باشند میتونه کار کنه( حتی در صورت فرمت هارد).
البته لازم به ذکر هست که در صورت تکمیل این قفل به هرکدوم از
دوستان یک نسخه برای استفاده خودشون داده میشه.
البته تا پایان کار هنوز راه زیادی رو داریم اما اینکه میخواستم
دوستان یک لطفی بکنن و چند تا تست انجام بدن.
اول اینکه برنامه ایی رو اینجا گذاشتم که CPU ID وسایر مشخصه ها
رو میده اگر امکان داره این نرم افزار رو روی کامپیوتر خودتون
یا هر چند تا کامپیوتر دیگه دم دستتون هست اجرا کنید و اطلاعات 
اونو رو توی همین تاپیک برام بذارید .
هدف من مقایسه اطلاعات CPU بین هم هست.
این برنامه برای اجرا نیاز به WMI داره در صورتی که هنگام اجرا
با مشکل مواجه شدید این برنامه رو از سایت میکرسافت بگیرید و 
نصب کنید.
ممنون
بابک زواری

----------


## vbprogramer

آقا دست شما درد نکنه قدم خیر برداشتید
اگر باز هم خواستید و کافی نبود میتونم بفرستم


کامپیوتر اول :
Description&#58; x86 Family 15 Model 2 Stepping 9
Processor ID&#58; BFEBFBFF00000F29
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 4
Current Clock Speed&#58; 2680 MHz
Maximum Clock Speed&#58; 2680
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; 
Power Management Supported&#58; False



کامپیوتر دوم :
( آقا این پارامتر Load Percentage برای چیه ؟ چون بعد از یک بار اجرا عوض میشه ببین الان من برای این کامپیوتر دوبار اجرا کردم و مقدارش عوض شد )

Description&#58; x86 Family 15 Model 3 Stepping 3
Processor ID&#58; BFEBFBFF00000F33
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 4
Current Clock Speed&#58; 2813 MHz
Maximum Clock Speed&#58; 2813
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; 
Power Management Supported&#58; False

مرتبه دوم اجرا &#58;
Description&#58; x86 Family 15 Model 3 Stepping 3
Processor ID&#58; BFEBFBFF00000F33
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 10
Current Clock Speed&#58; 2813 MHz
Maximum Clock Speed&#58; 2813
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; 
Power Management Supported&#58; False





کامپیوتر سوم :
Description&#58; x86 Family 15 Model 2 Stepping 9
Processor ID&#58; BFEBFBFF00000F29
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 4
Current Clock Speed&#58; 2679 MHz
Maximum Clock Speed&#58; 2679
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; -1
Power Management Supported&#58; False

----------


## Payam Moradi

سلام
 خسته نباشید
  به خاطر الطاف شما، دلم نیومد این تاپیک رو بی خیال ول کنم برم.
Description&#58; x86 Family 15 Model 2 Stepping 9
Processor ID&#58; BFEBFBFF00000F29
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 11
Current Clock Speed&#58; 2018 MHz
Maximum Clock Speed&#58; 2018
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; 
Power Management Supported&#58; False
  چرا اینا با هم یکیند؟ یا طبیعیه؟
Processor ID&#58; BFEBFBFF00000F29 
 موفق باشید :flower:

----------


## بابک زواری

اینجا Processor ID: BFEBFBFF00000F29  آقای مرادی با ای دی دوستمون vbprogramer
برابره ؟ یا هر دوتون از یک کامپیوتر استفاده کردید ؟  :گیج:

----------


## Payam Moradi

> اینجا Processor ID: BFEBFBFF00000F29  آقای مرادی با ای دی دوستمون vbprogramer
> برابره ؟ یا هر دوتون از یک کامپیوتر استفاده کردید ؟


  سلام
 منم همینو گفتم.
  البته کاش این افتخار نصیب من میشد ولی خیر، ایشون کجا من کجا.
 امیدوارم مشکلی خاص نباشه.

----------


## vbprogramer

> یا هر دوتون از یک کامپیوتر استفاده کردید ؟


نه بابا فاصله ما با هم دیگه حدود 1000 کیلومتره :strange: 

در ضمن ما اینجا دو نوع سیستم داریم یکی مشخصات کامپتوتر اول که براتون فرستادم یکی هم مشخصات کامپیوتر دوم
جالب اینه که روی هر کامپیوتری از سری اول که اجرا میکنم همین مشخصات رو برای id میده
هر دو cpu هم intel  هست ولی یکی 2.6 و یکی 2.8 ( یعنی نوع اول و سوم )

----------


## Mehdi0016

آقا یه قفلی بدید که نشه از رو cd راحت رایت کرد .
اینجوری لا اقل کاربر های معمولی نمی تونن حق برنامه نویسا رو بخورن...

----------


## Payam Moradi

> آقا یه قفلی بدید که نشه از رو cd راحت رایت کرد .
> اینجوری لا اقل کاربر های معمولی نمی تونن حق برنامه نویسا رو بخورن...


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

----------


## بابک زواری

من یک قفلی خریدم که اصلا نمیشه از روش رایت کرد خیلی ازش راضیم تا بحال 2000 نسخه
از یک نرم افزار رو حدود 2 سال هست که میفروشم اما قفل شکسته اش رو تو بازار ندیدم هرچند
که میدونم میشه قفل اینم باز کرد اما خوب از بقیه بهتره.
اما اینو میخوام واسه دوستان ردیف کنم . خوب مثل اینکه باید روش رو عوض کنم .
آقای مرادی و آقای vbprogramer ممنون از کمکتون بهتون pm میدم اگر مایل باشید و وقت داشته
باشید این طرح رو با هم بریم جلو

----------


## vbprogramer

ما که پاییم عزیز  :wink: 
برو که بریم انشاالله که موفق باشی  :wise1:

----------


## Mehdi0016

آقا شرمنده من 2 زاریم کجه...
این قفلی که میگید دقیقا چطوری میتونه کپی رایت رو محدود کنه؟؟
شماره سریال سخت افزار ها برای هر سیستم متفاوته ... پس شما برای هر کاربر cd ی مخصوص رایت میکنید؟؟

----------


## بابک زواری

نه عزیز اون کد با یک فرمول خاص و یک رمز برای هر تولید محصول تبدیل به یک رشته 
میشه که بایست یک جواب رو شما برای اجرا به شخص عودت بدید به این ترتیب
اون کد تا زمانی که شخص کامپیوتر یا یکی از اجزا رو عوض نکرده بدون مشکل کار 
میکنه

----------


## MM_Mofidi

بابک جان دستت درد نکنه
1- بنده یک نمونه مشابه با استفاده از کد بایوس نوشتم
2- نمونه ها و کد هایی برای بدست آوردن سریال در دیگر قطعات کامپیوتری دارم
3- قابلیت ارسال و دریافت این مشخصات را از طریق تلفن،اینترنت و... فراهم کردم
اگر کمکی از دستم برآد در خدمتم.ضمنا اگر ما رو قابل بدونی از هم کاری با شما بسیار خوشحال خواهمشد.
اما نتایج

Description&#58; x86 Family 15 Model 2 Stepping 9
Processor ID&#58; BFEBFBFF31010F29
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 100
Current Clock Speed&#58; 2822 MHz
Maximum Clock Speed&#58; 2822
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; 
Power Management Supported&#58; False

ضمنا اطلاعات بازگردانده شده با wmi تا آنجایی که من تست کردم غیر قابل اعتماد است. لا اقل برای قفل

----------


## بابک زواری

ممنون آقای مفیدی
منم به این نتیجه رسیدم که باید از فکر wmi بیام بیرون چون اصلا قابل اعتماد نیست منم یکسری 
کد دارم که باید از اونا استفاده کنم حالا شما و خانم بهار و  دو تا دیگه از دوستان هستند که بکمک
هم این کار و انجام بدیم.
خیلی خیلی ممنون از کمکتون

----------


## coral

من از یک او سی ایکس استفاده می کردم که سریال یک قطعه خاص را نمایش می داد .اما روی لپ تاپ اصلا جواب نداد ومن ناچار شدم از wmi استفاده کنم اما حالا که می گین قابل اعتماد نیست من نگران شدم . اگه راه حلی می دانید به من هم بگین.
http://www.barnamenevis.org/viewtopic.php?t=15199

----------


## coral

<span dir=ltr>


> Description: x86 Family 15 Model 2 Stepping 9
> Processor ID: BFEBFBFF51010F29
> Status: OK
> Manufacturer: GenuineIntel
> Availability: Running/Full Power
> Load Percentage: 
> Current Clock Speed: 2673 MHz
> Maximum Clock Speed: 4000
> Level 2 Cache Size: 0
> ...


</span>

----------


## بابک زواری

حالا اینکه روی لپ تاپ جواب نمیده زیاد مسئله ایی نیست من وقتی توی دل این ocx 
با resourcer hacker میگشتم به یک صفحه برخوردم کن نوشته بود زمان استفاده از این 
Activex تمام شده و شما باید نسخه اصل اونو بگیرید .
منم با اینکه اطلاعات خوبی میداد و خودش هم نوشته بود که این برنامه رایگان هست
حقیقت با دیدن اون صفحه ترسیدم استفاده کنم که بعد از مدتی بازی در بیاره.
حالا شما کدوم رو باور دارید صفحه مخفی داخل برنامه رو یا اطلاعاتی رو که خودش
میگه رایگانه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟  ؟؟؟؟؟؟؟؟؟؟

----------


## بابک زواری

آدس یکی از سایتهایی که این ocx رو عرضه میکنه 

http://www.vb-fun.de/cgi-bin/loadfra...nente0042.shtml

اینکه میگم wmi قابل اعتماد نیست یعنی من میبینم که یکسری
سریالها رو مخصوصا روی cpu تکراری میده .
در ضمن آقای مفیدی اون dll ایی که یک مثال با فاکس پرو داشت
رو شما توی vb استفاده کردید ؟ جواب گرفتید ؟
من یک سورس ++VC دیدم که سریال cpu رو میداد اگر چاره ایی
نبود پیداش کنم و تبدیل به یک dll یا ocx بکنیم.
دوستان چه پیشنهاد دیگه دارند ؟
من فکر کنم این تاپیک رو ول نکنیم تا به یک جواب برسیم

----------


## coral

http://msdn.microsoft.com/downloads/...mi/default.asp

این لینک را هم که در برنامه گذاشتین من رفتم و صفحه  باز نمی شود.
در مورد اون ocx من خودم هم مشکوک هستم. اما به جز wmi راه دیگری پیدا نکردم که اون هم در win98 ,win me  جواب نمی دهد.
البته الان من win98se دارم واون برنامه اولیه شما کار کرد.

----------


## بابک زواری

شما توی wmi چی رو پیدا میکنید بعنوان یک اطلاعات واحد ؟
یعنی چه اطلاعاتی هست که شما روی اون تکیه کردید و در
ضمن از هر کامپیوتر به کامپیوتر دیگه فرق میکنه ؟

----------


## coral

> <span dir=ltr>
> 
> 
> 
> 			
> 				Description: x86 Family 15 Model 2 Stepping 9
> Processor ID: BFEBFBFF51010F29
> Status: OK
> Manufacturer: GenuineIntel
> ...


این ها مشخصات سیستم من بود که همان طور که دیدی processor ID اش با مال بقیه دوستان یکسان است.

----------


## بابک زواری

منم به همین خاطر میگم که شما چه اطلاعاتی دارید که با بقیه کامپیوترها
فرق میکنه ؟

----------


## coral

من از شماره سریال هارد استفاده کردم
از اون dll که آقای مفیدی زحمت کشیدند نیز استفاده نکردم اما یک  برنامه exe  دیگه هم بود که روی سی پی یو های AMD کار نمی کرد باید به این موضوع هم توجه کنیم.
برا همین من فکر کردم سریال هارد بهترین است

----------


## coral

در ضمن من در همین مباحث خواندم که کد سریال مادربورد ها هم ممکنه تکراری داشته باشه.
من هم این تاپیک را تا نتیجه قابل اطمینان رها نمی کنم.

راستی چطور از wmi  استفاده کردی که در ویندوز 98 هم کار کرد؟

----------


## بابک زواری

شماره سریال هارد رو با کدوم بخش wmi بدست میاری ؟
در مورد استفاده از wmi تو ویندوز 98 که مشکلی نیست
نسخه مربوطه به ویندوز 98 رو نصب کن

----------


## bahar60

من فکر می کنم که شماره سریال هارد بهتره چون ممکنه یه نفر cpu سیستمش بسوزه 
ماردبورد هم همین طور

البته من از یکی از دوستان شنیدم که برای این کار از شماره سریال پورت پرینتر استفاده کرده بود،برام جالب بود چون من فکر می کردم با شماره مادر بورد یکی باشه، :confy2:

----------


## coral

من نمونه کد را این جا می گذارم:





> سلام خدمت همگی
> بابا یه سریال هارد اینقدر دردسر نمی خواد که
> 
> اینم هدیه  ناقابل از بچه های آبادان به مناسبت نیمه شعبان
> 
>  'Please Add a Text1
> 
> Public Sub GetHardID&#40;&#41;
>  Dim HardDiskSerial As SWbemObjectSet
> ...


اما اینکه فرموده بودبن در win98 می شه wmi را اجرا کرد، من برا همین کدی که الان فرستادم  چند تا برنامه نصب کردم که فایده  ای نداشت .یعنی 
 Microsoft WMI Scripting Library V2.1 Library
را پیدا نمی کرد. حالا اگه به نتیجه مطلوب رسیدی منو بیخبر نذار

----------


## MM_Mofidi

در مورد سریال cpu قبلا هم عرض کردم در 3 به بعد جواب میده و در معادلش AMD K6 به بعد.
اما mac ادرس از همه بهتره قاعدتا باید یونیک باشه(هرچند من خودم شخصا تکراریش را هم دیدم) :strange: 
اما در مورد سریال بایوس
عرض کنم که(چون تفریبا حدود 7-8 ماه مداوم روش وقت گذاشتم)
چون تعداد شرکتهای عرضه کننده بایوس محدود است حداکثر با متفرقه 92-93 تا است(بقیه از license دیگران استفاده میکنند. و کدینگ سریال در بایوس هم یک کدینگ چند قسمتی است که هر کدام معرف یک چیزی بخوصوص است احتمال وجود تکراری در آن کوچکتر یا مساوی قسمت کوچکی از یک خط تولید یک کارخانه به سفارش یک شرکت در یک روز خاص است(لطفا با تامل بخوانید)
لذا با فرضیات فوق این احتمال ناچیز را میتوان ندیده گرفت.
اما پروسه خواندن این شماره نسبتا سخت است. اگر دوستان مایل باشند ادامه دهیم

----------


## coral

به نظر من باید به یک نتیجه اساسی برسیم و مساله را ول نکنیم.

----------


## بابک زواری

خوب اگر شماره سریال بایوس و شماره سریال هارد و mac ادرس رو با هم join کنیم
تقریبا unique میشه
من برای ویندوز 98 از wmi98.exe استفاده کردم بدون هیچ مشکل و دردسری
راحت نصب و استفاده شد از سایت میکروسافت گرفتمش

----------


## coral

این هم فکر خوبی است .آقا بابک اون کدی که بهتون گفتم را روی 98 تست زدین؟

----------


## bahar60

دقیقا ترکیب چند تا سریال عالیه  :تشویق:

----------


## coral

باید کدی که می نویسیم روی همه سیستم عامل ها جواب بدهد.

----------


## بابک زواری

بله روی کامپیوتر من مقدار F13RR7EE  رو برگردوند

----------


## coral

پس چرا برای من روی 98 جواب نمی دهد؟

----------


## بابک زواری

شما هم همین رو نصب کردید ؟

----------


## bahar60

اون کد را بزارید من هم روی چندتا سیستم اجرا کنم اینجا من از کامپیوتر ذغالی دارم تا مدرن با ویندوز 98 و2000وxp
 :mrgreen:

----------


## coral

> شما هم همین رو نصب کردید ؟


منظورتون از همین چی است؟

----------


## coral

این هم تصویر اشکالی که می گیرد

----------


## بابک زواری

نسخه شما 1.1 هست که این کد برای نسخه 1.2 نوشته شده آخرین نسخه 
از اینجا بگیرید

http://www.microsoft.com/downloads/d...displaylang=en

حال باتوجه به نتایج اگر ما کد سی پی یو بهمراه ماکزیمیم سرعت بهمراه سریال هارد 
ترکیب کنیم بعد بک کد بایوس آقای مفیدی رو هم بذاریم کنارش تقریبا مشکل حل میشه

BFEBFBFF00000F29  2680
BFEBFBFF00000F33  2813
BFEBFBFF00000F29  2679
BFEBFBFF00000F29  2018
BFEBFBFF31010F29  2822
BFEBFBFF51010F29  4000

منتظر نظر دوستان   :گیج:

----------


## coral

این فایل که دان لود کردم در 98 به درد نخورد و بازهم همان ورژن 1.1 است.

----------


## بابک زواری

نمیدونم 
کسی از دوستان نسخه جدید این wmi رو برای ویندوز 98 نداره ؟

----------


## coral

کسی آخرین ورژن wmi  را نداشت ؟
البته من dll های مربوطه را از ایکس پی  آوردم و جایگزین dll های 98 کردم ولی فایده نداشت
کسی مطلب تازه ای پیدا کرده؟

----------


## bahar60

من برای 2000 نیاز دارم ، من هم همین مشکل را دارم دیروز کلی دنبالش گشتم،اینجا من سیستم های مختلفی که دارم اکثرا 2000 و تعداد کمی 98 است می تونم اگر 2000 پیدا بشه روی حداقل سیستمهایی که مستقیم زیر نظر خودمه 40-50 شاید هم بیشتر امتحان کنم (البته اگر نیاز باشه)فقط برای  2000 پیدا بشه :cry:

----------


## بابک زواری

خانم babar60 لطفا روی سایت میکروسافت جستجو کنید من یکسری update پیدا کردم
در ضمن با کمک یک dll تونستم شماره cpuid رو بدون کمک به wmi بخونم حالا اگر تونستیم
ویندوز 2000 و 98 رو طوری update کنیم که سریال هارد رو بخونیم که در اینصورت این هم
به سریال cpu اضافه میشه در غیر این صورت باید راهی برای این مسئله پیدا کنیم .
در ضمن آقای مفیدی امکانش هست که یک نمونه برنامه بصورت اجرایی برامون بدید که اطلاعات
بایوس و شماره اون رو بخونیم تا ببینیم چه چیزایی داره که میشه استفاه کرد؟
ممنون از دوستان

----------


## coral

من فکر می کنم با سی پی یو آی دی مشکل پیدا کنیم.چون ممکنه اینتل ها را بشناسه و ای ام دی ها را نه.

----------


## بابک زواری

شما ماشینی داری که cpu AMD داشته باشه ؟ اگر بله که من یک کد بفرستم روش
یک تستی بکن جواب به ما بده

----------


## coral

باشه بفرستین. 
منتها باید ببرم خانه.سیستم خانه ای ام دی است.

----------


## بابک زواری

من تونستم سریال هارد رو بخونم  :sad2:  اما بعد از اون بلافاصله کامپیوتر هنگ میگنه  :mad: 
باید اینو حلش کنم در ضمن cpu id رو هم بدست اوردم حالا باید با کمک آقای مفیدی سریال
بایوس رو هم به همه اینا اضافه کنیم .
البته بعد از حل مشکل هنگ کردن

----------


## MM_Mofidi

پس از مراحل post و bios در سیستم تمام محتویات bios شما در حافظه load شده است. با توجه به این مطلب شما میتوانید. به آدرس مربوطه رجوع کرده. اطلاعات مربوطه را بخوانید.
کلا آدرس محتویات bios از 0000 تا FEEEE اگر اشتباه نکنم موجود است
در برنامه ای که فرستادم یک فابل exe Bios_WinIO.exeبنام است به کمک کلید Reload The Bios Area میتوانید هر محدودهای از حافظه را که بخواهید آدرس داده و بخوانید.
برای سریالbios هم میتوانید از Auto Detect استفاده کنید.

----------


## MM_Mofidi

نکته: بعد از مراحل post و bios اطلاعات و محتویات بایوس در ram قابل دسترسی است
آدرس بایوس از 000000H شرع میشود و اگر اشتباه نکنم تا FFFFH ادامه میابد. بسته به محتویات بایوس
در برنامه ای که گذاشتم.به کمک Bios_WinIO.exe شما میتوانید به هر آدرسی از حافظه دست پیدا کنید.
با کمک دکمه Reload The Bios Area  و وارد کردن رنج مورد نظر به hex محتویات حافظه را میخواند.
برای دیدن سریال و نوع بایوس هم از دکمه Autio Detect  استفاده کنید.

نکته: من روی 2k , xp تست کردم در صورت وجو مشکل روی 98 , me لطفا نوع خطا را اطلاع دهید.
نکته: من فقط به سه نوع بایوس Ami ,Award. phoenix دسترسی داشتم. البته الان toshiba را هم اضافه میکنم. اما اگر کسی از دوستان از bios به غیر از اینها استفاده میکند. میتوان آنها را هم اضافه کرد.

----------


## joker

به نظر من فقط سریال نامبر هارد دیسک که توی کارخونه اش ست میشه فقط مطمئن و  به نوعی یکتا هست !
من که قفلهای تمام برنامه هامو اینطوری میزارم .

----------


## بابک زواری

توی 98 مشکلی نداره و بایوس کاملا detect میشه اما فقط جایی که میخوام
از یک آدرس تا یک آدرس رو بخونم هیچ چیز نمایش نمیده آیا برنامه خطا میکنه
یا واقعا چیزی در حافظه نیست ؟

----------


## Hamedm

سلام

Description&#58; x86 Family 15 Model 2 Stepping 7
Processor ID&#58; 0000005521B40F27
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 41
Current Clock Speed&#58; 2019 MHz
Maximum Clock Speed&#58; 2019
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; 
Power Management Supported&#58; False

----------


## MM_Mofidi

آدرس باید مثلا به صورت زیر باشد
fe000      fe0c1
باشد.دومی بزرگتر از اولی.
آیادر titel Bar 100% lمیبینید؟

----------


## بابک زواری

آقای مفیدی سورس به دستتون رسید یا نه ؟
به آدرس email فرستادم

----------


## MM_Mofidi

بله اما
1- اصلا مقدار برنمیگرداند. هربار در تابع Readsec با خطا i1 Mod 255 مواجه میشود و خارج میشود.
2- اعدادی که استفاده کردید برای خواندن مقادیر (بعنوان آأرس) از چه مرجعی گرفتید؟
3- حکمت نوشتن در آدرسها 1F0 چیست؟
4-شما به هارد یک دستور EC(236) میفرستید و منتظر یک جواب بین 128 تا 144 هستید چرا؟

----------


## VouDou_ir

دوست عزیز زیاد روی این چیزا حساب باز نکنید 
چون اون چیزی که باید قوی باشد 

1- الگوریتم پیچیده در Detect Protect
2- یک Shell Protection قوی (هر چی گمنام تر باشه بهتر)

چون تمام این کارها رو کرکر در اندی شماره دور خواهد زد !!  :sunglass: 

با یکم خلاقیت میشه قفلی قشنگ بدون نیاز به این چیزا ساخت  :evil2:

----------


## بابک زواری

> 1- الگوریتم پیچیده در Detect Protect 
> 2- یک Shell Protection قوی (هر چی گمنام تر باشه بهتر)


اونا مراحل بعدی کار هستند .




> با یکم خلاقیت میشه قفلی قشنگ بدون نیاز به این چیزا ساخت


بله دوست عزیز با خلاقیت میشه خیلی کارها کرد اما بهتر نیست شما هم
کمی مارو کمک کنید ؟ اگر توی این زمینه کار کردید خوشحال میشیم که
شما هم در جمع ما باشید

----------


## MM_Mofidi

ایینو ببینید فکر میکنید چهجوری نوشته؟
http://www.passmark.com/products/diskcheckup.htm

----------


## coral

باید توجه داشته باشید که ما شماره سریال هارد را لازم داریم نه درایو ها را.در ضمن آقای کد نویس شما wmi
مربوط به ویندوز 98 را پیدا کردین؟

----------


## bahar60

بابا این wmi 2000 پیدا نمی شه :mad:

----------


## بابک زواری

خانم bahar60 من سعی میکنم بدون کمک wmi به نتیجه برسم

----------


## VouDou_ir

> ایینو ببینید فکر میکنید چهجوری نوشته؟
> http://www.passmark.com/products/diskcheckup.htm


توسط API های *DeviceIoControl*  و پارامتر *PhysicalDrive*
این دوتا برای Kernelه  WinNT هست و از smartvsd.vxd برای Win9x استفاده کرده !
Search کنید حتما به نتیجه میرسید

----------


## VouDou_ir

> بله دوست عزیز با خلاقیت میشه خیلی کارها کرد اما بهتر نیست شما هم
> کمی مارو کمک کنید ؟ اگر توی این زمینه کار کردید خوشحال میشیم که
> شما هم در جمع ما باشید


بزارید مثال بزنم 
شما مثلا یک برنامه حسابداری و صدور فاکتور دارید ! شما License تونو بهتر روی نام شرکت بزارید یعنی اسم شرکت رو روی یک File به صورت Encrypt شده قرار بدید و یک الگوریتم پیچیده برای آن بنویسید کار شما فقط اینکه بجای اینکه نام کارخانه یا شرکت را از User بگیرد از File که شما به عنوان  Lisence دادید میگیرد و از آن در همه جا برنامه استفاده میکند در نمایش  Report ها و ...

این یک راهش هست ، کلا راه های قفل گذاشتند به تعداد آدمهای خلاق هست  :mrgreen: البته باید ببینید کجای برنامه حساس هست و جلوی آن را بگیرد ! 

حالا شما بگو من چه کمکی میتونم بکنم ؟ :)

----------


## بابک زواری

مشکل ما بدست آوردن شماره سریال هارد بدون کمک wmi هست
یا اگر با wmi هم باشه در ویندوز 98 هم جواب بده

----------


## coral

اقای کد نویس نمی شه دی ال ال های مربوطه را از ایکس پی به 98 آورد؟(البته من یک بار این کار را کردم و موفق نشدم) می شه شما هم تست کنین؟

----------


## بابک زواری

من با کمک smartvsd.vxd تونستم سریال هارد رو به دست بیارم
البته ایجا تو شرکت ویندوز ما xp هست و باید برم خونه ببینم که
با 98 هم جواب میده یا نه اگر جواب گرفتم شب آخر وقت تو
همین تاپیک اعلام میکنم.

----------


## coral

امیدوارم موفق باشید

----------


## بابک زواری

:kaf:  من به در رابطه با سریال هارد بدون نیاز به wmi به جواب رسیدم 
( تقریبا با 12 ساعت کار )
انشاالله برنامه مراحل بعدی کار رو هم انجام میدم و در این مدت نیاز به
تست و کمک شما دوستان همچنان نیازمندم .
البته در مورد این پروژه مسائل امنیتی بسیار باید مورد توجه باشه و به 
تمامی دوستان عزیزی که قبل از این نوشته هرکدام مطلبی رو تایپ 
کردن چه کمک و چه سوال بعد از آماده شدن برنامه هرکدام یکی یک 
نسخه از این برنامه رو پیش کش میکنم.

----------


## MM_Mofidi

خوب حالا که این طوره من یک پیشنهاد دارم چند تا کد مختلف نسبتا یونیک را که قبلا مطرح شد . هرکدام را یک نفر روی روش بدست آوردنش کار کند بعد این تیم کدها را با کمک یک الگوریتم خاص به یک کد با احتمال بیش از 99.99 در صد یونیک تبدبل کند تا در مراحل بعدی ساخت قفل قابل استفاده باشد.

لطفا اگر موافقید ضمن اعلا م موافقت آمادگی خود را برای کار روی یک یا چند قسمت از این سریال ها اعلام کنید.
1-H.d.d
2-bios
3-mac
4-VGA
5- CPu
6-...
 :موفق:

----------


## بابک زواری

آقا جریان این Mac چیه ؟

----------


## bahar60

من اگر بتونم با macآدرس کار می کنم چون خیلی دوست دارم جریاناتش را دقیق بفهمم :wink: 
فقط اینکه آقای زواری شما می شه بفر مایید بدون wmi چه جوری و با چه dll ای تونستید که سریال هاد را پیدا کنید :confy2:

----------


## coral

واقعا تبریک می گویم جناب کد نویس. امیدوارم موفق باشید.ما را هم بی خبر نگذارید.

----------


## vbprogramer

جناب مفیدی منظورتون از mac همون آدرس mac مخصوص کارت شبکه هست ؟
 :گیج:

----------


## bahar60

این جور که معلومه جناب آقای زواری خودشون به یه جاهایی رسیدن و شاید کار تموم شده ،باشه :confy2: 
امیدوارم همیشه موفق و مؤید باشید :)

----------


## بابک زواری

خانم بهار اینجا خودمون نداریم همه با هم داریم کار میکنیم و بالطبع هر کس کمک کرده
حق داره که به اطلاعات یا محصولی هم برسه شما هم بسیار زحمت کشیدید و ممنون از شماو سایر دوستان هستیم

----------


## MM_Mofidi

بله منظورم mac Add. 
آدرس منحصر به فرد ادوات شبکه(کارت شبکه،کارت دیش،Printserver،FAxserver,....)

----------


## coral

ما باید دنبال یک چیزی باشیم که همه کامپیوتر ها داشته باشند. کارت شبکه خیلی همه گیر نیست .نکته دیگه با توجه به تجربیاتی که من داشتم باید حتما همه چیز را روی لپ تاپ هم چک کنیم چون در بعضی موارد دیده ام که جواب نداده.

----------


## بابک زواری

سریال هارد و شماره ID سی پی یو فکر کنم کافی باشن

----------


## coral

موافقم.

----------


## بابک زواری

من یکسری روتینهای ضد دیباگ و encryption و CRC گیر آوردم البته برای چک کردن CRC به نظر شما 
چه راهی خوبه ؟
من فکر کنم که خود CRC رو یعنی مقدار CRC یک فایل رو نمیشه توی خود همون فایل قرار داد چون در 
این صورت دوباره مقدار اون بهم میخوره و عملا درگیر یک کار نامحدود میشیم ( نمیدونم متوجه منظورم
شدید ) ولی میشه که درون همون فایل باشه و وقتی به یک فلگ خاصی رسیدیم تا طول خاصی
CRC رو چک نکنیم و بعد ادامه بدیم .
اما راه دوم نگهداری این مقدار در یک فایل Ecrypt شده هست .
حالا بهترین راه محاسبه CRC و راه خوبی برای encrypt شما سراغ دارید ؟

----------


## coral

ببخشید این CRC چی است؟

----------


## vbprogramer

من چند تا الگوریتم در رابطه با encrypt دارم همین الان می رم دنبالشون که پیداشون کنم
راستی میتونم بذارم اینجا یا نه ؟ :embr:

----------


## M-Gheibi

> راستی میتونم بذارم اینجا یا نه ؟


چرا نتونید؟! :wink:

----------


## coral

یک مورد جدید پیش اومده. من وقتی فایل ستاپی با wise می سازم و واونو نصب می کنم شماره سریال هارد را اشتباه می دهد.

----------


## بابک زواری

میشه یکم بیشتر توضیح بدید ؟ یعنی برنامه درست کار میکنه اما وقتی با
wise ستاپ میشه درست کار نمیکنه ؟

----------


## MM_Mofidi

حرف دوستان که میگن باید در همه کامپیوتر ها موجود باشد صحیح ولی نکته این است که هر کدام از این کد ها در شرایط خاصی قابل دسترسی نیست مثلا 
CPU--------lower than PIII
MAc-------NO lan Adapter
Bios-------Unknown Bios CO.
....
لذا با استفاده ترکیبی از همه میتوان امید داشت در هر شرایط لا اقل به 1 یا بیش از یک این شماره ها دسترسی داریم.
نکته دوم اینکه  پیشنهاد میکنم صحبت در باره روتینهای کشف خطا و نحوه انتقال و کد گزاری و .... را تا بعد از ایجاد نهایی رو تینهای بدست آوردن کد و ترکیب کدها به نحوی که سازنده یک کد واحد باشند به تعویق بیاندازید.
چون صحبتی است که مقدمه آن فراهم نشده است.

----------


## بابک زواری

حرف شما رو قبول دارم اما یک مسئله اینکه به نظر شما کامپیوترهای
زیر PIII رو هم در نظر بگیریم ؟
نظر شما  چیه  :wink:  حالشون و بگیریم و خلق الله رو مجبور به آپگرید 
کنیم ؟

----------


## MM_Mofidi

نسخه قفل هر چه کامل ، جامع و مانع باشد تجاری تر است. :sunglass:

----------


## orion188

سلام

امیدوارم وسط بحث ، خیلی سوال بی ربطی نباشه:
فرض کنیم من یک خاصیت واحد برای یک PC پیدا کردم. و نرم افزارم رو بردم خودم روی اون نصب کردم. و CD هم ندادم دست مشتری. اون خاصیت هر چی هم که میخواد باشه. بالاخره یه جایی توی یک IF چک شده دیگه. (سطح پایینش یک JZ یا چیزی شبیه اون میشه.) حالا اگر خیلی هم محکم کاری شده باشه ، اون JZ در RUNTIME ساخته میشه. اما بالاخره یه جا برنامه دوشاخه میشه!
حالا سوال من اینه که با این اوصاف، چجوری میشه دنبال طراحی چنین قفلی بود؟ 
میدونم که جواب اینه که "باید قفل رو *** HardTo کرد. ولی تا چه حد مگه میشه این کارو کرد؟
و این ابزارهای Encryption دقیقا" چه کاری انجام میدن؟

ممنون :)

----------


## coral

جناب کدنویس با سلام باید عرض کنم که بنده بعد از آنکه نسخه ستاپی از برنامه ای که کد هارد را برمی گرداند را بردم وتست کردم دیدم که اصلا کد هارد را درست برنمی گرداند.
البته من از wmi در ویندوز 98 استفاده کرده بودم.(وقتی فایل اجرایی که در ایکس پی ساخته بودم در 98 تست کردم ) اما مثل اینکه wmi وقتی به حالت ستاپی در می آید درست کار نمی کند. من در ایکس پی هم تست کردم. اگر این طور باشد کار من خیلی گره می خورد.
 اما از hwinfo هم که استفاده کردم ویندوز میلینیوم را دچار هنگ شدید نمود.
البته بازهم باید تست کنم.

----------


## coral

> نسخه قفل هر چه کامل ، جامع و مانع باشد تجاری تر است. :sunglass:


به نظر من هم باید همه را درنظر گرفت و بهتر است برنامه در همه جا قابلیت نصب را داشته باشد این طوری بازار هم وسیع تر می شود.

----------


## بابک زواری

> حالا سوال من اینه که با این اوصاف، چجوری میشه دنبال طراحی چنین قفلی بود؟ 
> میدونم که جواب اینه که "باید قفل رو *** HardTo کرد. ولی تا چه حد مگه میشه این کارو کرد؟ 
> و این ابزارهای Encryption دقیقا" چه کاری انجام میدن؟


دقیقا متوجه نشدم منظور شما اینه که چقدر میشه به این قفل تکیه کرد ؟
در این صورت باید بگم که هر قفل در هر جایی با یک IF چک میشه و من سعی 
میکنم تمام روتین های چک CRC و آنتی دیباگ و ... رو چک کنم همانطور که بقیه
این کارو میکنن

----------


## orion188

سلام :)
ممنون از پاسختون.





> من سعی میکنم تمام روتین های چک CRC و آنتی دیباگ و ... رو چک کنم همانطور که بقیه این کارو میکنن


دقیقا" همینو میخوام بیشتر متوجه بشم. این چک CRC و انتی دیباگ و... آیا واقعا" اون IF ها رو غیر قابل دسترسی میکنن؟ یا صرفا" به تعویق میندازن؟

(توضیح: هدف من از سوال صرفا" *یادگیریه*، و به هیچ عنوان قصد ندارم زحمات دوستان رو زیر سوال ببرم. چون خود من هم خیلی با این مساله درگیر بوده ام.)

ممنون

----------


## orion188

> یا صرفا" به تعویق میندازن؟


دسترسی بهشون رو ...  :mrgreen:

----------


## بابک زواری

رسیدن به اون if رو مشکل میکنه البته دقیقا یک if نیست چون این مسئله در
جاهای مختلف به نسبت بعضی مسائل پارامتریک چک میشه و ممکنه که فرضا
قفل این برنامه هم شکسته بشه ( جدای از گذشتن از روتین تشخیص دیباگ و
CRC و سایر مسائل ) وقتی پارامتری فرق کرد یک روتین تست دیگه فعال میشه.
و در ضمن با اون IF دقیقا برنامه تموم نمیشه چه بسا تایمری به کار میافته که
بعدا باعث پایان یافتن برنامه خواهد شد.
و نکته نهایی اینکه همین مسائل رو همه حتی قفلهای گرانقیمت سخت افزاری
هم دارن

----------


## MM_Mofidi

اینم mac Add من توی xp تست کردم دوستان زحمت تست کردن جاهای دیگر را بکشن

----------


## coral

سلام آقای مفیدی نتیجه تست من:
3Com EtherLink PCI
00-04-75-F2-D2-09

----------


## coral

اما به نظر من کارت شبکه اصلا قطعه مناسبی نیست.

----------


## حامد مصافی

سلام
اینم تست من 

WAN &#40;PPP/SLIP&#41; Interface
00-53-45-00-00-00

----------


## vbprogramer

سلام

xp sp2

Intel&#40;R&#41; PRO/100 VE Network Connection
00-20-ED-44-38-D5


server 2000

SiS 900-Based PCI Fast Ethernet Adapter
00-0B-6A-38-EA-3A

----------


## MM_Mofidi

کسی در 98 تست نکرد؟
سیستمی که بیش از یک کارت شبکه داشته باشد چی؟
لطفا اطلاعات را با نتایج حاصله از ipconfig /all مقایسه کنید.

----------


## بابک زواری

PPP Adapter.
44-45-53-54-00-00
آقای مفیدی اینم ویندوز 98 من

----------


## coral

> سلام آقای مفیدی نتیجه تست من:
> 3Com EtherLink PCI
> 00-04-75-F2-D2-09


آقای مفیدی این خصوصیت که بنده اعلام کردم مربوط به ویندوز 98 اس ای بود.

----------


## bahar60

با عرض سلام
ان هم روی ویندوز 2000 من
Intel&#40;R&#41; PRO/100 VE Network Connection
00-0D-61-18-74-41
صبر کنید من روی یکی از سیستمها دو تا کارت شبکه بزارم نتیجه را میگم

----------


## بابک زواری

کامپیوتر منم بدون کارت شبکه بود

----------


## bahar60

این هم با بیش از یک کارت شبکه
3Com EtherLink XL 10/100 PCI TX NIC &#40;3C905B-TX&#41;
00-10-5A-72-DB-68

و یک بار هم من کابل شبکه را به غیر آنبورد وصل کردم
3Com EtherLink XL 10/100 PCI TX NIC &#40;3C905B-TX&#41;
00-10-5A-72-DB-68

در هر صورت اونی که غیر آن بورده می شناسه ولی من با هر دو تاش تست کردم هم به شبکه وصل می شم هم به اینترنت
مشخصات شبکه من این جوری بود

1-3cometherlink xl 10/100 pci tx nic&#40;3c9058-tx&#41;
2-intel&#40;r&#41; pro/100 ve network connection

----------


## vbprogramer

Realtek RTL8139/810X Family PCI Fast Ethernet NIC
00-0D-61-31-8F-4C

این سیستم دو تا کارت داشت ولی فقط آدرس کارت unboard  رو برگردوند  :wise1:

در صورتی که از هر دو تا کارت داره استفاده میشه

----------


## bahar60

مال من آدرس غیر آنبورد را برگردوند

----------


## بابک زواری

من قبلا اعلام کردم اما گویا پیغام من نمایش داده نشده و اون اینکه 
نتیجه اعلامی من روی کامپیوتری هست که نه کارت شبکه داره نه
کارت اضافی دیگه ایی با ویندوز 98 ساده

----------


## bahar60

اقای زوتری شماحتی کارت شبکه آنبورد هم ندارید :strange: 
جالبه چه جوری می شه

----------


## MM_Mofidi

منون از دوستان امکان خواندن بیش از یک mac آدرس را هم میشود به این برنامه اضافه کرد من فقط میخواستم مطمئن بشم که لااقل یک جواب برمیگرداند.
اما در موردی که آقای زواری فرمودند  :strange: نمیدونم ممکنه نتایج حاصله را با مشخصاتی که خود ویندوز نشون میده چک کنید و ما رو از صحت این اطلاعات باخبر کنید؟
مثلا با ping /all
ممنون

----------


## بابک زواری

:cry: خوب ندارم چون توی خونه لازم ندارم اما با دستور ping /all پنجره 
prompt dos یک لحظه میاد و میره .
اگر لازمه بیشتر تست کنم بفرمائید چه کنم .

----------


## بابک زواری

خوب آقای مفیدی اگر برای کسی که هم کارت شبکه نداره یک عدد unique برگردونه
که عالیه .
اگر شما این آدرس رو از جایی از حافظه میخونید ممکنه آدرسش مشکل داشته باشه ؟
یعنی آدرس غلط باشه یا اینکه وقتی کارت شبکه نیست توی اون آدرس یک چیز دیگه باشه ؟

----------


## BOB

سلام دوستان
لطفا به این تاپیک هم یه سری بزنید. و نظرات خود را در مورد قفل نرم افزاری اراپه شده بیان کنید.

http://www.barnamenevis.org/viewtopic.php?t=19350


در سیستمی با ویندوز 98 و بدون کارت شبکه همیشه این مقدار برگردانده میشود .
44-45-53-54-00-00
1. فکر میکنم بهتره از Mac استفاده نکنید.(به دلیلی که بالا ذکر شد)

2. یک یا دو کد unique برای نوشتن قفل کافی است و به کدهای بیشتر از آن واقعا نیازی نیست.

3. من هم معتقدم مراحل بعدی نوشتن این برنامه شامل متدهای Anticrack واقعا مهم تر هستند.  مگر اینکه بخواهید در مراحل بعدی ، از برنامه های آماده و نرم‌افزار های معروفی که برای اینکار ارایه شده‌اند استفاده کنید.

4. کارکرد درست برنامه در تمام نسخه های ویندوز شامل 9x , nt بسیار مهم است.

5. فکر میکنم بهتره از wmi استفاده نکنید . چون روی بعضی سیستمها ( اغلب PII , PIII و حتی بعضی از سیستمهای جدیدتر)  جواب درستی نمیدهد.

موفق و پیروز باشید

----------


## coral

خوب اگر از wmi نمی توانیم استفاده کنیم پس باید چکار کنیم؟

----------


## MM_Mofidi

من این اطلاعات را از حافظه نخواندم نتایج گزارش از وضعیت شبکه است.
ضمنا اگر در سیستم بدون کارت همیشه یک مقدار را برمیگرداند میشود آن را فیلتر کرد.
آقا بابک در منوی Run تایپ کن command بعد دستور ipconfig /all را استفاده کن و نتایج را مقایسه کن قاعدتا باید یکی باشد چون مرجع دریافت اطلاعات یکی است. :)

----------


## بابک زواری

آقای مفیدی با دستور فوق دقیقا همان اطلاعات قبلی در physical address
بدست میاید .

----------


## MM_Mofidi

اینم بد نیست با scripting host یک سری اطلاعات را گرفته روی 98 نمیدونم درت جواب بده یا نه
http://www.barnamenevis.org/viewtopic.php?t=19349

----------


## coral

آقای مفیدی من روی 98 اون برنامه را تست کردم.جواب می دهد اما همان طور که احتمالا دیدین فقط مدل و نوع قطعات سخت افزاری را برمی گرداند.نه سریال نامبر را . 
در مورد wmi باید بگویم من روی کامپیوتر های pIII full Cash و pIV و لپ تاپ و یک پنییوم4 معمولی تست کردم و مشکلی نداشت.حالا اگه دوستان تجربه دیگری دارم خوشحال می شوم بشنوم. تنها مشکل این است فقط روی ویندوز ایکس پی جواب می دهد.
سعی می کنم امروز نمونه برنامه اش را اینجا بذارم تا شما هم اونو تست کنید.

----------


## coral

لطفا جواب هایی که به دست می آورید را در این جا بنویسید.
این کد سریال نامبر هارد را برمی گرداند.

----------


## MM_Mofidi

اون نمونه MAc آدرس را بر میگرداند

----------


## coral

> اینم بد نیست با scripting host یک سری اطلاعات را گرفته روی 98 نمیدونم درت جواب بده یا نه
> http://www.barnamenevis.org/viewtopic.php?t=19349



من اون مطلبی که نوشتم مربوط به این موضوع بود.فکر کنم شما آقای مفیدی فکر کردین در مورد کد شما بوده است.

----------


## vbprogramer

> طفا جواب هایی که به دست می آورید را در این جا بنویسید. 
> این کد سریال نامبر هارد را برمی گرداند.


البته نا گفته نماند که باید از Refrence گزینه Microsoft Wmi Scripting V1.2 Library  را انتخاب کنید  :wink: 


این هم جوابی که به من داد

Y2QBT5LE

----------


## تک تیرانداز

من فکر کنم استفاده از wmi مشکل دار بشه چون ویندوز 98 از اون درست ساپورت نمیکنه

----------


## بابک زواری

منم به همین خاطر از این راه استفاده نکردم و فکر کنم مشکل دار بشه

----------


## coral

خوب آخه آقای کد نویس راه حل دیگه سراغ دارید؟ من این مدت خیلی جستجو کردم وهنوز کدی که شماره سریال یک قطعه به درد بخور را به دست بیاورد پیدا نکرده ام.
شما راهی پیدا کردین؟

----------


## بابک زواری

میشه اطلاعات رو از حافظه خوند اگر بخوای dll های مربوطه به دسترسی مستقیم به 
حافظه رو بذارم اینجا

----------


## coral

ممنون اگر بذارین که خوبه.
اما یک سوال شخصی دارم اگر من کاربرانم را مجبور به استفاده از ویندوز ایکس پی کنم بازهم با wmi مشکل خواهم داشت؟

----------


## بابک زواری

اگر کاربران حتما از ویندوز xp استفاده کنند نه مشکلی پیش نمیاد

----------


## coral

کسی الگوریتم خاصی سراغ داره برای اینکه مثلا وقتی ما سریال هارد را خواندیم چه عملیاتی روی اون انجام بدیم که به username  و password مورد نیاز ما برای رجیستر کردن تبدیل بشه؟

----------


## vbprogramer

دوست عزیز چند پست قبل من برنامه هایی را برای encode و decode کردن گذاشتم میتونی از اونا استفاده کنی  :oops:

----------


## vbprogramer

> اگر کاربران حتما از ویندوز xp استفاده کنند نه مشکلی پیش نمیاد


خوب پس میتونیم از wmi استفاده کنیم و مثلا با wise  وقتی می خواد برنامه رو نصب کنه فقط محدود به xp  باشه
اما راه درستی نیست چون برنامه باید در تمام ویندوزها نصب بشه مگر اینکه در شرایطی خاص و سفارش برنامه از طرف شخص یا سازمان اما اگر قرار باشه برنامه در بازار به فروش بره .....  :گیج:

----------


## coral

با وجودیکه من قویا اعتقاد ارم یک قفل همه سیستم ها را باید ساپورت کنه اما چاره ای ندارم ومجبورم این کار را انجام بدهم و کاربر را محدود به ویندوز ایکس پی نمایم. راه  بهتری سراغ ندارم

----------


## بابک زواری

دوستان میتونن نسخه اولیه برنامه قفل گذار رو اینجا مشاهده کنن همانطور
که قبلا هم قول داده بودم به محض آماده شدن نسخه نهایی به تمام کسانی که
کمک و همیاری نمودند یک نسخه نامحدود و رایگان اهدا خواهد شد.
این برنامه با کمک شماره سریال CPU وشماره سریال هاردباکمک یک الگوریتم
پیچیده اقدام به تولید یک شماره منحصر بفرد برای هر ماشین میکند.
در این سیستم هر شخص تولید کننده نرم افزار یک Special ID خواهدداشت تا
هر کسی نتواندبه کمک Key Generator خود برای محصولات دیگران کدفعال سازی
را تولید کند.
همچنین این رمز و این Special ID هنگام تولید برنامه توسط تابعی که در
activeX مربوطه قرار دارد به برنامه پاس داده میشود.

در ضمن شما بایست برای هر محصول خود یک شماره رمز نسبت دهید تا کدهای 
تولید شده برای محصولات با قیمتهای مختلف یکسان نباشد حال نرم افزار
اطلاعات دریافتی ازسخت افزار رابا کمک رمز وارده و نیز Special ID ترکیب
نموده و یک عدد را به شما میدهد که شما میتوانید جواب وی را برای ادامه
برگردانید.
بدیهی است درهرقسمت ودرهر Event و دربعضی قسمتها در هرتابع و هر Event
چندین بار به تناوب CRC فایلها و روتین های Anti Debug چک میشوند و این
روتینها بسته به زمان وشماره سریال وتاریخ سیستم و... توسط توابع مختلف
ردیابی میشوند و در صورتی که حتی قفل هک شود .............. ( به لحاظ 
امنیتی سانسور شد ) و بدین سان شما به همان حالت قبل باز خواهد گشت.

احتمال تولیدشماره سریالهای یکسان در شکل نمایش داده شده است که تقریبا 
برابر صفراست .
در صورتی که شخص هارد خود را فرمت نماید این سریال به اعتبار خود باقی 
خواهد ماند و لیکن در صورت تعویض هارد یا CPU بایست برای دریافت سریال
جدید به شما مراجعه کند.
در نسخه های آتی امکان دریافت اتوماتیک سریال ازطریق اینترنت و نیز
سازگاری با Dot Net گنجانده خواهد شد .
البته هنوز تا پایان راه کارهای زیادی مانده وبایست به قسمتهای امنیتی
توجه بیشتری بشه.

----------


## حامد مصافی

سلام

   جناب کدنویس ، میشه همین نسخه آزمایشی رو پست کنید تا یه نگاه بهش بندازیم؟؟؟

----------


## MM_Mofidi

ممنون جناب کد نویس من سعی میکنم کد مربوط به سریال بایوس را برای شما ارسال کنم تا در صورت لزوم امکان انتخاب ایجاد کد را بر اساس یک یا بیشتر (cpu,M.B,Bios,...)را به کاربر دهید. :wink: 
باتشکر فراوان
در مورد روتینهای ارسال و دریافت من یک کارهایی کردم اگر بدردتان بخورد خوشحال خواهم شد برایتان بفرستم. :mrgreen:

----------


## بابک زواری

بذارید setup رو بسازم و چند تا مسئله دیگه رو هم حل کنم  چشم حتما این کار 
انجام میدم

----------


## تک تیرانداز

:thnx:  :موفق: 
حسابی حال کردم دمتون گرم ؛ کار خیلی خیلی توپی رو انجام دادید

----------


## vbprogramer

فقط میتونم بگم خسته نباشید  :sunglass: 
دست شما درد نکنه  :thnx:

----------


## بابک زواری

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

----------


## Alfa_Debager

سلام به همه دوستان 
من تازه وارد با این تاپیک آشنا شدم ولی خوشحالم که در این بین دوستانی را می بینم که با اتحاد هم قصد دارید یک قفل نرم افزاری بنویسید 
اگه اجازه بدین من هم از این به بعد وارد جمع شما بشم 
ورود خودم را با یک سئوال آغاز می کنم 
آیا می دونید این رمزی که ایجاد می شه تا چه اندازه مطمئن هست ؟
درسته شما می گید که با فرمت شدن هارد تغییر نمی کنه آیا با FDisk یا preFormat چی امتحان کردید 
می دونید که این رمز در کجای هارد ذخیره می شه که با این اعمال هم از بین نمی ره 
بهتره بگم شاید در پارتیشن تیبل اما آیا درسته یا نه و اصلا شیوه نگهداری رمز مورد نظر چطوریه چون در صورتی که هارد را پری فرمت کنیم خو هیچ اطلاعاتی ((به هیچ وجه )) داخل آن باقی نمی مونه و دوباره که برنامه را نصب کنیم از کجا می فهمه که این همان شماره سریال هارد قبلی است چو شماره سریال هارد قبلی را که نمی تونه داخل cd ذخیره کرده باشه 
ببخشید سرتون را درد آوردم 
اینا سئوالاتی بود که من تو ذهن خودم دارم 
البته یک سری کد برای گرفتن انواع مشخصات سخت افزاری نوشتم 
در صورت تمایل می تونم ارائه بدم 
با تشکر 
alfa_debager
 ::نوشتن::

----------


## coral

دست شما درد نکنه .اگر ارائه بدین که ممنون می شویم.
در مورد fdisk کردن هارد باید بگم من خودم شخصا این کار را انجام نداده ام اما با توجه به این که کدی را که روی  هارد کوبیده شده برمی گرداند من فکر نمی کنم عوض بشه.

----------


## بابک زواری

دوست عزیز
سریال هارد با سریال پارتیشن فرق میکنه سریال هارد شماره ایی هست که به هیچ وجه با فرمت و 
Low level format و از این قبیل از بین نمیره فقط تنها راهش از بین بردن خود هارد بصورت فیزیکی هست
در مورد اطمینان هم باید بگم هر قفل ضریب های اطمینان خاص خودش رو داره

----------


## Alfa_Debager

با سلام 
آقای کد نویس منظور من را متوجه نشدید 
ببینید این قفل شماره سریال هارد را می گیره و تحت عنوانی باید ذخیره کنه که این عنوان عوض شد برنامه کار نکنه 
خوب حالا این شماره سریال را که نمی تونه روی خود سی دی ذخیره کنه مجبوره بر روی قسمتی از هارد مثل پارتیشن تیبل ذخیره کنه که حزف شدن اطلاعات بر روی آن با fdisk امکان پذیر نیست اما با پری فرمت می شه اون را هم از بین برد 
خوب حالا اگه من این کار را بکنم سیستم از کجا می خواهد بفهمد که اصلا قبلا این برنامه نصب شده یا نه ؟
ببخشید که من زیاد سئوال می کنم 
شاید به خاطر بیسوادیمه
با تشکر

----------


## coral

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

----------


## (سیدشریفی)

آیا این شماره سریال هارد برای هاردهای ساتا نیز جواب میدهد ؟

لصفا اگر کسی هارد ساتا دارد آن را آزمایش کرده و نتیجه را بگوید .

 :گیج:

----------


## (سیدشریفی)

> آیا این شماره سریال هارد برای هاردهای ساتا نیز جواب میدهد ؟ 
> 
> لصفا اگر کسی هارد ساتا دارد آن را آزمایش کرده و نتیجه را بگوید .


  :گیج:

----------


## coral

هارد ساتا چی است؟

----------


## (سیدشریفی)

هارد ساتا هاردی است با کابل مخصوص و سرعت زیاد و ظرفیت بالا .
البته دوستان دیگر تخصصی تر بیان کنند .
 :)

----------


## مهدی کرامتی

> سریال هارد با سریال پارتیشن فرق میکنه سریال هارد شماره ایی هست که به هیچ وجه با فرمت و 
> Low level format و از این قبیل از بین نمیره فقط تنها راهش از بین بردن خود هارد بصورت فیزیکی هست
> در مورد اطمینان هم باید بگم هر قفل ضریب های اطمینان خاص خودش رو داره


در مورد وابسته کردن قفل به شماره سخت افزاری هارد دیسک چند مشکل وجود داره:

1- امکان گرفتن شماره سریال فیزیکی همه هارد دیسک ها وجود ندارد (بخصوص در هارد دیسک ها ساتا!).

2- امکان گرفتن این شماره سریال در همه نسخه های ویندوز وجود ندارد.

----------


## Lion King

Salam be hamegi
bade inke hameye matalebe marbot be gofl ro khondam fekri be saram zad
vagti 14 sal dashtam toye Qbasic ba estefade az farmane Vol MS-Dos ye gofl neveshtam ke Seriale Drive ro migereft va ...
ama moshkelesh in bood ke barname hayi ke mineveshtam ro bayad khodam miraftam ro Systeme taraf nasb mikardam va age Drivesh Format mishod ...
midonam goflam moshkele ziyadi dash ama vase ye bache 14 sale khob boood dige  :oops: 
modat ha boood ke dige geyde gofl ro zade boodam ama hala mikham Update besham 
agaye Code nevis age mishe rahnemayi konin ta yad begiram ke chetori bayad Seriale bazi sakht afzararo peyda konam . inam begam ke dar morede tavabe kheyli zayifam ama ta delet bekhad algoritme pichide minevisam ke fekr nakonam kesi be geyre khodam betone onaro tarjome kone 
lotfan rahnemayi konin 
har kasi mitone rahnemayi kone
gorbane shoma , Lion KING :reading:

----------


## mahdi_farhani

سلام دوستان 
عیدتان مبارک
دوستان حقیقت من وقت زیادی نداشتم که کل مطالب رو بخونم وفق وقت کردم صفحه اول بخونم به خاطر همین نمیدونم این مطلب رو کسی دیگه بیان کرده یا نه
شما برای این که با مشکل دوگانه بودن serial number  ها مواجه نشید میتونید چند روش رو به کار ببرید .
اولین روش که ردخور نداره این که از شماره سریال کارت شبکه استفاده کنید این شماره سریال از طرف IEEEتعریف می شود و در جهان تکراری وجود ندارد --- اما یه مشکل هست که اینکه طرف کارت شبکه داشته باشه  :mrgreen: 
روش دوم که به نظر من اونوم رد خور ندارد استفاده از سریال مودمه که به نظر من اونوم تقریباً میشه گفت که به همین صورته ( مودمو دقیق نمودم ولی باید همینطور باشه -- امتحان کنید به من هم بگید )
روش سوم استفاده از تاریخ ساخت Bios  است که این روش در مواقعای هم با مشکل برمی خوره ...
ولی شما می تونید از چند روش استفاده کنید(ترکیب روشها )
یعنی استفاده از سریال cpu ترکیب اون با  mainboard و ترکیب اون با تاریخ ساخت بایوس دقیقاٌ کد رو می سازید که تکراری در اون وجود نداره .....
قابل توجه دوستانی که برای جلوگیری از رایت میگفتند .........  :confy2: 
در ضمن اینم یادم رفت بگم از شماره سریال خود سی دی هم می تونید استفاده کنید ...... (جلوگیری از رایت اون ) وفق به کسانی شماره سریال نصب برنامه داده بشه که شماره سریال سی دی را درست بیان کنند و در لیست شماره سریال ها رایت شده شما باشد ..........
شاید هم بشه شماره سریال سی دی را موقع رایت جوری تنظیم کرد که در یک رنج خاص باشد .....
امیدوار این مطالب بدرد همه بخوره ............... 
موفق باشید

----------


## Microsoft.net

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

----------


## MM_Mofidi

> بابا این سورسشو بزاری لاقل ملت استفاده کنن . ثواب داره بخدا


سورس کدوم را میخواهی؟

----------


## تک تیرانداز

به نظر من سورسهای این تاپیک فوق العاده ارزش دارند حتی محصول تولیدشون هم
واقعا ارزش داره

----------


## Microsoft.net

همین برنامه ای که شماره سریال هارد رو بدون استفاده از WMI بدست می اره و تبدیل به license Key می کنه اگه می شه برای من یدونشو بفرستید دعاتون می کنم 
Arsanjani@gmail.com

----------


## (سیدشریفی)

شماره سریال هارد دیگه بدرد نمیخوره چون با این روش در هاردهای ساتا نمیشود شماره سریال را بدست آورد .
لطفا بفکر برنامه ای باشید که بتواند شماره سریال هاردهای ساتا را نیز پیدا کند .

 :گیج:  
 :sorry:

----------


## coral

سلام دوستان 
به نظر من ما در این تاپیک داشتیم خیلی خوب پیش می رفتیم .اما متاسفانه این تاپیک را نیمه کاره رها کردیم.
لطفا بیایید دوباره شروع کنیم...

----------


## بابک زواری

حتما من به خاطر یک مشکل و پروژه ایی فوری مجبور شدم وقتم رو روی اون بذارم 
اما حتما دوباره شروع میکنیم .
در ضمن کسی از دوستان هارد ساتا داره ؟

----------


## MM_Mofidi

من دارم

----------


## demon_da

Description&#58; x86 Family 15 Model 2 Stepping 7
Processor ID&#58; BFEBFBFF00000F27
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 5
Current Clock Speed&#58; 2423 MHz
Maximum Clock Speed&#58; 2423
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; 
Power Management Supported&#58; False

----------


## coral

> من دارم


اقای مفیدی میشه لطفا اون کد بازگشت شماره سریال هارد را که با wmi داشتیم با این هارد تون تست کنید؟

----------


## مجتب&#1740; سلطان

عزیزان اگه اجازه بدین و منو تو جمع خودتون در خصوص تکمیل پروژه راه بدین ممنون می شم.
موفق باشین. :موفق:

----------


## مجتب&#1740; سلطان

فکر می کنم باید الگوریتم کارو عوض کرد.
من روش فکر میکنم اگر الگوریتم بهتری پیدا کردم حتما اطلاع می دم

----------


## hadi2345

من یک ocx دارم که شماره سریال cpu و hard و m.board رو به صورت کاملا صحیح میده و یک قفل ساده هم با استفاده از اون نوشتم و این ocx  رو در کامپیوترهای مختلفی آزمایش کردم که همه جا جواب میده .
اگه لازم شد بهم بگین تا بفرستم .

----------


## مجتب&#1740; سلطان

ۀطف میکنین اگه بفرستین.
مرسی

----------


## rsl_rostami

با سلام


Description: x86 Family 15 Model 3 Stepping 4
Processor ID: BFEBFBFF00000F34
Status: OK
Manufacturer: GenuineIntel
Availability: Running/Full Power
Load Percentage: 14
Current Clock Speed: 2412 MHz
Maximum Clock Speed: 2412
Level 2 Cache Size: 0
Level 2 Cache Speed: 
Power Management Supported: False

----------


## R_BABAZADEH

> من یک ocx دارم که شماره سریال cpu و hard و m.board رو به صورت کاملا صحیح میده و یک قفل ساده هم با استفاده از اون نوشتم و این ocx  رو در کامپیوترهای مختلفی آزمایش کردم که همه جا جواب میده .
> اگه لازم شد بهم بگین تا بفرستم .


بابا نیکی و پرسش

----------


## Ariyan

Description&#58; x86 Family 15 Model 2 Stepping 7
Processor ID&#58; BFEBFBFF00000F27
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 32
Current Clock Speed&#58; 2019 MHz
Maximum Clock Speed&#58; 2019
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; 
Power Management Supported&#58; False

----------


## بابک زواری

دوستان من این تاپیک رو ادامه میدم با اینکه خیلی وقت بود تعطیل شده بود
من دارم به جواب میرسم فقط مشکل هاردهای جدید رو دارم که اونم حل شد
میتونیم به یک راه حل جامع برسیم.

----------


## (سیدشریفی)

من هم جدیدا هارد ساتا خریدم و یک سری آزمایش روی آن انجام داده ام و چیزهایی را میشود استفاده کرد و فکر کنم نتیجه بخش باشد .
 در ضمن آقا بابک اگر هارد ساتا در اختیار نداشتید میتوانید تستهایتان را من برایتان بر روی این هاردها انجام بدهم .
همچنین دوستی دارم که هم هارد ساتا دارد هم از پردازنده AMD استفاده میکند میتوانیم بر روی کامپیوتر او نیز آزمایشهای خود را انجام دهیم .

 :sunglass:

----------


## coral

خوشحال هستم که این تاپیک دوباره شروع به کار کرد. من وقتی از wmi استفاده می کنم برا سریال هارد و بعدش flash memory به کامپیوتر وصل می کنم invalid use of null می دهد.

----------


## niloufar

سلام
من هم خوشحالم که این تاپیک دوباره راه افتاد. امیدوارم نتیجه بخش باشد. (راه حل جامع واقعا سخت به نظر می رسد) اگر کمکی از ما هم برمی آ'مد خوشحال می شویم انجام دهیم.

----------


## R_BABAZADEH

خیلی خوبه که این موضوع دوباره  ادامه داده شد
من یه ocx و چند مثال دارم که یک سری اطلاعات از سخت افزار بر می گردونند ولی اطلاعات مادر بوردهای soltek رو نمی تونند در بیاورند    :گیج:

----------


## بابک زواری

خوب به نظر من استفاده از OCX های شرکتهای دیگه مخصوصا در این زمینه یک کم
مسئله ساز میشه.
چون مسئله امنیت هست و اینکه این OCX فول باشه و . . . نمیشه اعتماد کامل بهش
کرد

----------


## بابک زواری

اقای سیدشریفی اوائل هفته بعد من براتون یک فایل برای تست روی هارد ساتا میفرستم
تا آزمایشات روی این نوع هارد و هم روی پردازنده AMD صورت بگیره .

----------


## بابک زواری

در ضمن کسی از دوستان راجع به آنتی دیباگ کار کردن ؟
اطلاعاتی دارن (به شکل حرفه ایی)

----------


## (سیدشریفی)

آقا بابک در خدمتیم
 :موفق:

----------


## R_BABAZADEH

یک برنامه می خوام که مشخصات مادر بوردهای soltek رو هم بتونه در بیاره

----------


## R_BABAZADEH

با اینکه مادر بوردهای soltek از مادر بوردهای درجه یک دنیا است نمی دانم چرا از نظر اطلاعات خود نم پس نمیده به این دو عکس توجه کنید

----------


## R_BABAZADEH

به نظر من ارزش داره که یکمی هم وقت روی شماره سریال cd صرف کنیم

در عکس اول 
مستطیل ابی شماره سریال یک cd در cd drive است


در عکس دوم 
مستطیل ابی شماره سریال همان cd در dvd drive است
مستطیل قرمز شماره سریال کپی  cd قبلی در cd drive است
البته این cd ها به صورت image یا cd به cd کپی نشده شاید در این حالت این شماره هم کپی بشه

به هر صورت هر cd دارای یک شماره سریال کارخانه هست اگر بشود انرا پیدا کرد به نظر من بهترین قفل است

----------


## بابک زواری

این هارد شما ساتا هست ؟

----------


## Success

سلام به همه دوستان فعال در این تاپیک
مخصوصا آقای زواری

با اجازه من هم می خوام اگه کمکی از دستم بر میآید در جمع شما همکاری کنم.
لازم به ذکر است که من تعداد زیادی کامپیوتر دم دستم دارم و می تونم روی همه اونا تست را انجام بدم.

البته یک ActivX هم دارم ارسال می کنم شاید بدرد بخوره .
--------------------------
محسن

----------


## mahdi_sh

با سلام


Description&#58; x86 Family 15 Model 1 Stepping 3
Processor ID&#58; 3FEBFBFF00000F13
Status&#58; OK
Manufacturer&#58; GenuineIntel
Availability&#58; Running/Full Power
Load Percentage&#58; 60
Current Clock Speed&#58; 1716 MHz
Maximum Clock Speed&#58; 1716
Level 2 Cache Size&#58; 0
Level 2 Cache Speed&#58; 
Power Management Supported&#58; False


با تشکر

----------


## mahdi_sh

> من یک ocx دارم که شماره سریال cpu و hard و m.board رو به صورت کاملا صحیح میده و یک قفل ساده هم با استفاده از اون نوشتم و این ocx  رو در کامپیوترهای مختلفی آزمایش کردم که همه جا جواب میده .
> اگه لازم شد بهم بگین تا بفرستم .


با سلام ممنون می شم اگه اینو برام بفرسدی . مرسی  :thnx:

----------


## R_BABAZADEH

راجب شماره سریال ساخت cd کسی اطلاعاتی ندارد

----------


## بابک زواری

> hadi2345 نوشته است: 
> من یک ocx دارم که شماره سریال cpu و hard و m.board رو به صورت کاملا صحیح میده و یک قفل ساده هم با استفاده از اون نوشتم و این ocx رو در کامپیوترهای مختلفی آزمایش کردم که همه جا جواب میده . 
> اگه لازم شد بهم بگین تا بفرستم .


ممنون ولیکن ما این اطلاعات رو خودم در آوردیم تا وابسته به OCX خاصی نباشیم
و در ضمن این OCX که میگی وقتی درون فایل رو با نرم افزارهای Resource Hacker
نگاه کنی پیغام های نسخه آزمایشی هست به همین خاطر از این OCX استفاده
نکرده ایم (محض احتیاط)

----------


## بابک زواری

در ضمن دوستان فعلا هیچ اطلاعاتی از سیستم خودشون رو با نرم افزاری
که قبلا گفتیم نذارن 
ممنون میشم

----------


## niloufar

سلام



> من یک ocx دارم که شماره سریال cpu و hard و m.board رو به صورت کاملا صحیح میده و یک قفل ساده هم با استفاده از اون نوشتم و این ocx رو در کامپیوترهای مختلفی آزمایش کردم که همه جا جواب میده .
> اگه لازم شد بهم بگین تا بفرستم


در ادامه فرمایش آقا بابک، این کامپوننت پس از کامپایل کردن درست کار نمی کند و ضمنا با Notebook هم مشکل دارد.

----------


## بابک زواری

> در ادامه فرمایش آقا بابک، این کامپوننت پس از کامپایل کردن درست کار نمی کند و ضمنا با Notebook هم مشکل دارد


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

----------


## Hossein Moradi

می بخشید که پابرهنه پریدم تو این موضوع  :oops: 
این کدیه که خودم نوشتم  ::نوشتن:: 
می تونید تستش کنید که روی هارد ساتا کار می کنه یا نه   :گیج:  
این فایل کدی که از سریال هاردهای سیستم یه کد مخصوص می سازه رو بر می گردونه
من خودم روی چند تا هارد معمولی تست کردم مشکلی نداشت  :wink: 
اگه می شه با هارد ساتا هم تست کنید  :mrgreen:

----------


## Hossein Moradi

اینم کدش
  Option Explicit
  Private Type DRIVERSTATUS
    bDriveError As Byte
    bIDEStatus As Byte
    bReserved&#40;1 To 2&#41; As Byte
    dwReserved&#40;1 To 2&#41; As Long
  End Type
  Private Type IDEREGS
    bFeaturesReg As Byte
    bSectorCountReg As Byte
    bSectorNumberReg As Byte
    bCylLowReg As Byte
    bCylHighReg As Byte
    bDriveHeadReg As Byte
    bCommandReg As Byte
    bReserved As Byte
  End Type
  Private Type SENDCMDINPARAMS
    cBufferSize As Long
    irDriveRegs As IDEREGS
    bDriveNumber As Byte
    bReserved&#40;1 To 3&#41; As Byte
    dwReserved&#40;1 To 4&#41; As Long
  End Type
  Private Type SENDCMDOUTPARAMS
    cBufferSize As Long
    DStatus As DRIVERSTATUS
    bBuffer As String * 512
  End Type
  Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" &#40;ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long&#41; As Long
  Private Declare Sub DeviceIoControl Lib "kernel32" &#40;ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, ByVal lpOverlapped As Long&#41;
  Private Declare Sub CloseHandle Lib "kernel32" &#40;ByVal hObject As Long&#41;
Private Sub Form_Load&#40;&#41;
  MsgBox GetHardsSerial
End Sub
Private Function GetHardsSerial&#40;&#41; As String
  Dim Count As Byte, Serial&#40;0 To 3&#41; As String, hDrive As Long, SCOP&#40;0 To 3&#41; As SENDCMDINPARAMS, SCIP&#40;0 To 3&#41; As SENDCMDOUTPARAMS
  For Count = 0 To 3
    hDrive = CreateFile&#40;"\\.\PhysicalDrive" &amp; Count, -1073741824, 3, 0, 3, 0, 0&#41;
    SCOP&#40;Count&#41;.bDriveNumber = Count
    SCOP&#40;Count&#41;.irDriveRegs.bCommandReg = 236
    DeviceIoControl hDrive, 508040, SCOP&#40;Count&#41;, 32, SCIP&#40;Count&#41;, 528, 0, 0
    CloseHandle hDrive
    Serial&#40;Count&#41; = Replace&#40;Replace&#40;SCIP&#40;Count&#41;.bBuffe  r, Chr$&#40;0&#41;, ""&#41;, " ", ""&#41;
  Next
  If Serial&#40;0&#41; = Empty Then
    If Serial&#40;1&#41; &lt;> Empty Then
      Serial&#40;0&#41; = Serial&#40;1&#41;
    ElseIf Serial&#40;2&#41; &lt;> Empty Then
      Serial&#40;0&#41; = Serial&#40;2&#41;
    ElseIf Serial&#40;3&#41; &lt;> Empty Then
      Serial&#40;0&#41; = &#40;Serial&#40;3&#41;&#41;
    End If
  End If
  If Serial&#40;1&#41; = Empty Then
    If Serial&#40;0&#41; &lt;> Empty Then
      Serial&#40;1&#41; = &#40;Serial&#40;0&#41;&#41;
    ElseIf Serial&#40;2&#41; &lt;> Empty Then
      Serial&#40;1&#41; = &#40;Serial&#40;2&#41;&#41;
    ElseIf Serial&#40;3&#41; &lt;> Empty Then
      Serial&#40;1&#41; = &#40;Serial&#40;3&#41;&#41;
    End If
  End If
  If Serial&#40;2&#41; = Empty Then
    If Serial&#40;0&#41; &lt;> Empty Then
      Serial&#40;2&#41; = &#40;Serial&#40;0&#41;&#41;
    ElseIf Serial&#40;1&#41; &lt;> Empty Then
      Serial&#40;2&#41; = &#40;Serial&#40;1&#41;&#41;
    ElseIf Serial&#40;3&#41; &lt;> Empty Then
      Serial&#40;2&#41; = &#40;Serial&#40;3&#41;&#41;
    End If
  End If
  If Serial&#40;3&#41; = Empty Then
    If Serial&#40;0&#41; &lt;> Empty Then
      Serial&#40;3&#41; = &#40;Serial&#40;0&#41;&#41;
    ElseIf Serial&#40;1&#41; &lt;> Empty Then
      Serial&#40;3&#41; = &#40;Serial&#40;1&#41;&#41;
    ElseIf Serial&#40;2&#41; &lt;> Empty Then
      Serial&#40;3&#41; = &#40;Serial&#40;2&#41;&#41;
    End If
  End If
  GetHardsSerial = &#40;Serial&#40;0&#41; &amp; Serial&#40;1&#41; &amp; Serial&#40;2&#41; &amp; Serial&#40;3&#41;&#41;
End Function

----------


## soltanvb

سلام من این کد بالا رو امتحان کردم ولی جواب نداد

----------


## hadi2345

با سلام خدمت همه دوستان .
من اون ocx رو تو سایت گذاشتم ولی خودم هم در notebook ها با مشکل مواجه شدم ولی شماره سریال هارد رو درست میداد .
البته مشکل ما فقط این نیست در اصل مشکل ما  crack نشدن قفل میباشد و باید چاره ای اندیشید.

----------


## sinpin

جناب R_BABAZADEH
با سلام
سریال cd  قابل اطمینان نیست چون duplicate میشه
میتونید تست کنید.

----------


## Spate

Description&#58; x86 Family 6 Model 10 Stepping 0
Processor ID&#58; 0383FBFF000006A0
Status&#58; OK
Manufacturer&#58; AuthenticAMD
Availability&#58; Running/Full Power
Load Percentage&#58; 7
Current Clock Speed&#58; 1829 MHz
Maximum Clock Speed&#58; 1829
Level 2 Cache Size&#58; 512
Level 2 Cache Speed&#58; 609
Power Management Supported&#58; False

----------


## Spate

اگه میشه OCX رو واسه دانلود بزاریدش اینجا




> من یک ocx دارم که شماره سریال cpu و hard و m.board رو به صورت کاملا صحیح میده و یک قفل ساده هم با استفاده از اون نوشتم و این ocx رو در کامپیوترهای مختلفی آزمایش کردم که همه جا جواب میده . 
> اگه لازم شد بهم بگین تا بفرستم

----------


## Spate

با عرض پوزش من صفحه قبلی رو نخوندم و این کد رو گذاشتم
 :sorry:

----------


## hadi2345

من این ocx  رو براتون میذارم .
امبدوترم که به دردتون بخوره

----------


## hadi2345

اگر ممکنه این ocx رو کاملا تست کنید و نتیجه رو به من بگید. ممنون از همه

----------


## بابک زواری

فکر کنم این همون OCX هست که روی نوت بوکها مشکل داره 
قبلا راجع به اون صحبت شده ببیند این همون ابزار هست یا خیر
در صفحات قبل راجع به این بحث شده

----------


## hadi2345

بله آقای کد نویس این همون ocx میباشد و بر روی نوت بوکها مشکل دارد . ولی شماره سریال هارد رو میدهد.

----------


## niloufar

> بله آقای کد نویس این همون ocx میباشد و بر روی نوت بوکها مشکل دارد . ولی شماره سریال هارد رو میدهد.


این Ocx واقعا به درد نمیخوره. در مورد همون سریال هارد هم که فرمودید که میده، باید عرض کنم که اونم در کامپیوتر های زیر پنتیوم 4 مشکل داره و گاهی سرعت کم میاره (مثلا اگه برنامه تان را که داره از این OCX استفاده می کنه، در عرض چند ثانیه و پشت هم، سه-چهار بار اجرا کنید (نگید یعنی چی، یه هو دیدی کاربرتان مبتدی بود و بجای دابل کلیک، شونصد کلیک کرد)، در اینصورت همون نتایج را بر نمی گردونه.
خلاصه خیلی مشکلات زیادی داره. بهتره دوستان به فکر یه راه بهتر باشند.

----------


## Morteza Manafpour

ضمنا این ocx بعد از کامپایل کار نمی کنه ::نوشتن::

----------


## Hossein Moradi

من یه کد گذاشتم که سریال هارد را برمی گرداند ولی کسی تستش نکرد
این فایل سریال هارد و مدلش و نسخه بایوسش را بر می گرداند

این مطلب را بخونید و اصلا از فایل های dll و ocx استفاده نکنید . البته یادم نیست از کجا گرفتمش



Anti Debug , Anti Trace 


1- هیچ وقت به کاربر پیغامی برای عدم وجود قفل ندهید. 
2- از Exception برای ایجاد خطا و گول زدن کاربر استفاده نکنید. سعی کنید از Jumpهای Far بی معنا استفاده کنید البته نه کاری که آقای فراهانی در کاموننتشون انجام دادن ا 
3- از یک متغییر برای چک کردن قفل استفاده نکنید 
4- برنامه را از نظر امنیت به چند دسته تقسیم کنید و سعی کنید اگر کرکر به لایه های نفوذ کرد بهش پیغام ندهید و کار خاصی نکنید و به ظاهر نشان دهید موفق شده و در عوض در نتایج برنامه اخلال ایجاد کنید. ( کاری که من در اغلب برنامه هام انجام میدم) 
5- هیچ وقت چک کردن قفل را در Event ها و Procedure های Public یک Class قرار ندهید و حتی المقدور سعی کنید که Procedure معمولی باشه نه در یک Class . 
6- هیچ وقت قفل را در یک DLL یا OCX قرار ندهید و سعی کنید قفل در خود EXE چک شود . چون کرک کردن قفلی که در یک DLL چک میشود و یک نتیجه را به عنوان خروجی پس میدهد بسیار راحت تر از خود EXE است. 
7- سعی کنید از یک Function و یک الگوریتم برای چک کردن قفل استفاده نکنید و مثلا چک کردم قفل را بین روزهای هفته تقسیم کنید و در هر روز یک Function را صدا بزنید .

----------


## R_BABAZADEH

منم موافقم  :موفق:

----------


## hadi2345

با سلام .
من مشکلات اون ocx رو میدونم و فقط به خاطر اینکه بعضی از دوستان خواسته بودن گذاشتم.
برنام ای به نام visual protect وجود دارد که من version‌ 2.0 شو دارم و البته زیاد باهاش کار نکردم ولی امکانات جالبی داشت از قبیل hardware binding(copy protection) و .... میخواستم ببینم کسی باهاش کارکرده یا نه و اصلا قابل اعتماد هست یا نه ؟
بیایید این تاپیک رو تا وقتی که یک نتیجه کامل و درستی رو  نگرفتیم  ادامه بدیم .
با تشکر

----------


## بابک زواری

دوست عزیز آقای مرادی کد قبلیتون رو من تست کردم ولی روی سیستم من جواب نداد

----------


## raspotineiran

ویرایش شد
دوست عزیز یک پست رو در یک جا فقط ارسال کنید

----------


## rezaTavak

سلام

من سورس یک برنامه با سی دارم که شماره سریال هاردها را بر میگرداند و اصلا از توابع ویندوز استفاده نمیکند. و سپس به Dll تبدیلش کردم

اول توی بخش فاکس پرو ارائه کردم. هنگامی که دیدم دوستان روی این مطلب کار میکنند گفتم من هم شاید بتونم کمک نا چیزی ارائه کنم. این شد که اون را توی بیسیک هم تست کردم اما جواب نداد. 


حالا هم سعی میکنم اون را جوری درست کنم که توی بیسیک هم جواب بده.


البته خوبیش اینه که سورس سی اون هم هست و دوستان همه می توانند روی ان کار کنند.


حتی تحت داس هم جواب میده.

منم سعی می کنم کار کنم و نتیجه را هم بگویم.



اما نطری که دوستان در بخش فاکس پرو داشتند این بود که این قفلها روی شبکه درست از آب در نمیاد. مثلا شما برنامه خودتون را روی سرور میگذارید و شماره سریال کلاینت برگردانیده میشه. 


در ضمن من خودم از هیچ قفلی استفاده نمیکنم.

----------


## R_BABAZADEH

منتظریم  :wink:

----------


## Hossein Moradi

آقای کد نویس لطفا اون فایل Exe رو هم تست بکنید حتما کار می کنه چون روی خیلی از کامپیوتر ها تستش کردم و سریال هارد رو بر گردونده احتمالا اون کده هم درست نبوده یادم نیست از کجا آورده بودمش

این فایل حتی سریال هارد ساتا رو هم برگردونده البته من اینو فقط روی یه سیستم تست کردم و کار کرد

در ضمن آقای rezaTavak من قبلا هم گفتم که استفاده از فایلهای dll و ocx اصلا درست نیست و راحت کرک میشه ما به کدهای visual basic و یا اسمبلی برای اجرا در حافظه احتیاج داریم نه چز دیگه ای

----------


## بابک زواری

آقای مرادی فایل EXE شما جواب میده اما سورستون خیر

----------


## بابک زواری

آقای مرادی اگر شما روی روتین های آنتی دیباگ و آنتی سورس و  . . . اینا کار کردید لطفا در این بخش به ما کمک کنید .
من بخش دریافت کدهای سیستم رو میبرم جلو شما این بخش رو به ما کمک کنید تا بتونیم یک قفل خوب در اختیار دوستان بذاریم .

----------


## Hossein Moradi

آقای کد نویس من فقط دو سری کد مربوط به آنتی دیباگ دارم که دیباگرها رو میتونند شناسایی بکنند و اگر امکان داشته باشه او رو ببنده در غیر اینصورت خودش بسته میشه و اون یکی هم اجازه نمی ده که دیباگر بتونه نرم افزارمون رو دیباگ کنه ولی من اصلا نمی دونم که امنیتش در چه حده  :cry: 

در واقع بدون همکاری یک یا چند قفل شکن این بخش به نتیجه خوب و قابل قبولی نخواهد رسید

در ضمن من در تاپیکهای قبلی گفتم که استفاده از dll و ocx از لحاظ امنیتی درست نیست  :mad:  و استفاده از این نوع قفلهای dll و ocx فقط جلوی قفل شکنهای مبتدی رو میگیره نه یک قفل شکن حرفه ای

به نظر من نتیجه این تاپیک باید یک سری کامل از کدهایی که مشخصات سیستم رو بر می گردونه بعلاوه کدهای آنتی دیباگ و آنتی کرک و یک سری نکته باید باشه تا در نهایت برنامه نویسا با ترکیب اونها بتونند سیستم قفل نرم افزار خودش رو طراحی کنه و بدلیل استفاده از روشهای مختلف شکستن قفل اونها تقریبا خیلی خیلی سخت میشه

البته باز هم تاکید می کنم سیستم قفل بدون dll و ocx و فقط درون خود Exe نرم افزار  :mad:  :mad:

----------


## scientist

من این قفل رو به سفارش یه شرکت قبلا نوشتم ، البته اون زمان چون برای اونها مهم نبود من از WMI استفاده کردم شما هم می تونی از اون به صورت moniker توی Vb استفاده کنی!

----------


## بابک زواری

آقای مرادی اولا این همه نیاز به عصبانی شدن اینجا هیچ معنی نداره و برای من جای سواله ؟؟؟؟
دوم شما میگید ما از DLL و OCX استفاده نکنیم باشه قبول ، محصولمون رو به شکل به دست مشتری بدیم ؟؟؟
شما یک راه حل بگید .
سورس بدیم خوبه ؟؟؟؟؟؟

----------


## Hossein Moradi

اول از همه اینکه من اصلا عصبانی نشدم و فقط برای اینکه اهمیت این موضوع رو بفهمید اون smile رو گذاشتم

دوم اینکه من اصلا نفهمیدم شما قفل را برای فروش می خواهید یا برای ارائه رایگان به اعضای این انجمن

اگر برای فروش میخواهید من نظری ندارم اما اگر برای اعضای این انجمن می خواهید بله سورس روتینهایی برای گرفتن مشخصات سیستم و روتینهای آنتی دیباگ و آنتی کرک

----------


## hadi2345

متاسفانه این موضوع خیلی به کندی داره پیش میره و باید یک فکری کرد .

----------


## Morteza Manafpour

اینم امتحانش کنید

----------


## بابک زواری

آقا مرتضی میشه در مورد این فایل یکم توضیح بدید

----------


## hadi2345

من این برنامه رو امتحان کردم . امکانات جالبی داشت ولی باید دید که امنیتش چقدره .

----------


## بابک زواری

منم برنامه رو امتحانش کردم متاسفانه از لحاظ امنیتی پائینه

----------


## hadi2345

میشه بیشتر توضیح بدید آقای زواری . در ضمن شما با visual protect کار کردید؟

----------


## Hossein Moradi

آقای کد نویس جواب ما رو ندادید  :embr:

----------


## بابک زواری

دوست عزیز آقای مرادی این نرم افزار برای دوستان سایت رایگان عرضه میشه ( برای کسانی که در این تاپیک کمک کردن ) اما بقیه باید هزینه استفاده از اون رو بدن.




> میشه بیشتر توضیح بدید آقای زواری . در ضمن شما با visual protect کار کردید؟


یعنی با بعضی ابزارها میشه اطلاعات نرم افزار مربوطه رو بدست آورد و قفل اونو به راحتی تغییر داد
با نرم افزاری هم که شما فرمودید کار کردم متاسفانه امنیت پائینی داره.
از اون قوی تر SOftLocx هست که کرکش تو اینترنت فراوان برای دریافت گذاشتن

----------


## Morteza Manafpour

این برنامه از لحاظ امنیتی حرف نداره فقط ایرادش اینه که در هر بار نصب ویندوز کد اولیه رو تغییر می ده

----------


## hadi2345

جناب زواری ما در دوران دانشجویی درسی به نام حفاظت داده ها داشتیم که من برنامه کد کردن با روش فایستل رو نوشتم که 64 بیت رو می گرفت و کد می کرد . الگوریتم جالب و پیچیده ای داشت نمیدونم به درد 
این قسمت می خوره یا نه . 
یا اینکه روش های مدرن و جالب دیگه ای وجود داره که اینجور برنامه ها به درد نمیخوره .

----------


## Hossein Moradi

برای اینکه این تاپیک سریعتر به نتیجه برسه اولاْ از قفلها و فایلها و نرم افزار های خارجی و شاید داخلی  :strange: برای ساخت قفل نمی شه استفاده کرد چون قوی هاش پولی هستند و رایگان ها با امنیت پایین پس فقط به فکر نوشششششششتن اون باشید

خوب در مرحله اول ما احتیاج به یکسری کد ویژوال بیسیک و یا اسمبلی کامپایل شده داریم ( البته من نمی دونم امنیت کدهای اسمبلی در چه حدی است ) که بتونیم توسط اونها مشخصات یونیک و غیر قابل تغییر قطعات سیستم رو بگیریم

در مرحله دوم باید این مشخصات رو با هم ترکیب و توسط رمز نگاری این کد یه کد یونیک سریال سخت افزاری بدست بیاریم

در مرحله سوم باید مجددا توسط رمز نگاری کد فعال سازی معادل کد سخت افزاری رو بسازیم

در مرحله چهارم باید این دو کد را توسط روشهای با امنیت بالا با هم مقایسه کنیم

در اینجا ما موفق شدیم که قفل رو بسازیم

در مرحله پنجم ما باید از کرک و یا هک شدن قفل و نرم افزار با روشهای مختلف توسط کدهای آنتی کرک و آنتی دیباگ و ... جلوگیری کنیم

در نهایت با استفاده از یک ابزار Packer سطح امنیت نرم افزار را به حداکثر ممکن می رسونیم


البته باید بدونید اگر فایل قفل بصورت dll و یا ocx ساخته شده باید به مشتری و برنامه نویس یک سری کد برای چک کردن خود فایل قفل ارا‌ئه بشه

خوب حالا هرکی هر کد و یا اطلاعاتی در این رابطه داره اینجا عنوان کنه  :wink:

من خودم کد برای گرفتن سریال هارد و یک سری کد برای آنتی کرک و آنتی دیباگ دارم اما کامل نیست   :گیج:

----------


## بابک زواری

آقا هادی میشه در مورد اون الگوریتم یک کم برامون توضیح بیشتری بدید

----------


## hadi2345

جناب زواری عزیز . جزئیات کاملی از برنامه تو ذهنم نیست ولی تا اونجا که یادمه 64 بیت رو به دو دسته 32 بیتی تقسیم میکرد سپس اون دو تا 32 بیت رو به 8 تا 4 بیتی تقسیم میکرد و بعدش با استفاده از اطلاعات یک جدول خاص مربوط به خودش برای هر 4 بیت یک عدد hex در نظر می گرفت و اونو کد می کرد و بعدش دوباره 
4 بیتها رو به دو دسته 32 بیتی و سپس یک 64 بیتی تبدیل میکرد .

----------


## hadi2345

و در ضمن یکی از خاصیت های رمزگذار فایستل استفاده زیاد از xor میباشد که 4 بیتی ها رو کاملا به اصطلاح خودمونی قر و قاطی میکنه و بعضی جاها مثلا بیت سوم یکی از 4بیتی ها به جای بیت اول یک 4بیتی دیگه قرار
میگیره . این نوع رمزگذاری به گفته استاد یکی از رمزگذاریهای مدرن بود .....

----------


## niloufar

سلام
یه نگاهی بندازید و نظر بدید:
http://<a href="http://www.cyberrabb...;Itemid=54</a>

----------


## massoudghb

من میتونم یه پیشنهاد بدم که به جز از آی دی cpu بتونیم از مشخصات دیگه هم استفاده کنیم ؟

----------


## Nabi

سلام 
منم مدت زیادی که در گیر این قضیه هستم .
در مورد wmi یه برنامه نوشتم و به دوستان دادم و روی تعداد زیادی سیستم(حدود 15تا) تست شد. (فایلهای اون ضمیمه این پست میکنم) نتیجه این شد که تمامی پارامترهای wmi (سی پی یو ، مادر برد، هارد و...) ممکنه تکراری از آب در بیاد. تنها Signature Hard بود که در در مورد همه یک کد منحصر به فرد تحویل داد! که البته تضمینی نیست که با فرمت کردن سیستم تغییر کنه چون دیگه سیستم ها رو فرمت نکردیم ! از ظرفی هم که wmi رو 98 ظاهرا نیاز به پلاگ این داره و این بود که بیخیالش شدم . البته تاپیکی که این مبحث رو اونجا دنبال کردم در این آدرس موجوده:
http://www.iranvig.com/modules.php?n...opic&amp;t=980

تا اینکه دیگه داشتیم نا امیدی طی میکردیم که تو یکی از تاپیک های اینجا توسط sina piano با فایل DiskID32 آشنا شدیم که درست سریال نامبر حک شده روی بدنه هارد رو بر میگردوند که طبیعتاْ باید 100در صد منحصر به فرد باشه و با فرمت تغییر نکنه. من که فعلا به این فایل امید دارم و امیدوارم مشکلی در استفاده ازش بوجود نیاد. البته خروجی این فایل باید به یک فایل هدایت بشه و از اونجا رشته مورد نظر خونده بشه که کمی درد سر داره ولی عملیه.


حاشیه: Hossein Moradi یه الگوریتم برای قفل گزاری بالا ارائه دادند، میخواستم در مورد "_مرحله چهارم باید این دو کد را توسط روشهای با امنیت بالا با هم مقایسه کنیم_" و مقایسه امن (با گرایش به ویژوال بیسیک) بیشتر توضیح بدن.

تشکر 
نبی

----------


## hadi2345

با سلام خدمت nabi خوشحالم که دوباره این تاپیک رو فعال کردید . امیدوارم به کمک هم دیگه بتونیم به نتیجه برسیم.
موفق باشید.

----------


## hadi2345

با سلام مجدد .
آقای nabi , متاسفانه در برنامه شما از hwinfo.ocx استفاده شده و این ocx در نوت بوکها مشکل داره ......

----------


## بابک زواری

> آقای nabi , متاسفانه در برنامه شما از hwinfo.ocx استفاده شده و این ocx در نوت بوکها مشکل داره


متاسفانه این مطلب n بار تکرار و تاکید شده که توسط دوستان نادیده گرفته میشه 
این ocx نه تنها با بعضی سیستم ها مشکل داره بلکه نسخه آزمایشی هست و بعد از طی
یک پروسه خاص سرعت اجرای او بطور وحشتناکی افت میکنه بطوری که اگر در اول برنامه 
استفاده شده باشه لود شدن برنامه ممکنه تا چند دقیقه طول بکشه

----------


## massoudghb

بازمسلام من به یهنکته طلایی دیگه رسیدم... مندارمرویه برنامه سکرت کارمیکنم که فکرمیکنمبتونم اونو به صورت گسترده به فروش برسونم .... 
خوبمهمترین پارمتری کهسودمنو از این برنامه تامین می کنه قاعدتا قفل اونه ... من دارم توی برنامم از یه سری کدهایی که از چند تا قطعات سخت افزاری ( مثل آی دی cpu  و هارد و رم و ...) و نرم افزاری مانند شماره ی یه شماره سریال که شما برای برنامه گذاشتین و ... رو طی یک الگوریتم بدست می یاد استفاده می کنم ...
تقریبا برای  شهر من هنوز هیچ keygen خاصی برای برنامه نیومده .....

تست کنید و لذت ببرید ... :wise1:

----------


## بابک زواری

> تست کنید و لذت ببرید


چی رو ؟؟؟؟؟  :گیج:

----------


## massoudghb

> تست کنید و لذت ببرید
> 			
> 		
> 
> چی رو ؟؟؟؟؟


آهان.. مدیر جان شرمنده  :cry:  :sorry:  :embr:  من یادم رفته بود که اینجا ایرانه و ما از مدارسمون یاد گرفتیم که هرچی هست باید اول به نمونه نیگاه کنیم و بعد بنویسیم ... 
چشم سعی میکنم تو اینو یکی دو روزه یه نمونه ی ساده از طرحمو براتون بزارم رو همین تاپیک یا سایتم 


                       >>>>>>>>>>>>http://www.kermanshahcss.tk&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;...t;&lt;&lt;&lt;

----------


## بابک زواری

> آهان.. مدیر جان شرمنده    من یادم رفته بود که اینجا ایرانه و ما از مدارسمون یاد گرفتیم که هرچی هست باید اول به نمونه نیگاه کنیم و بعد بنویسیم ... 
> چشم سعی میکنم تو اینو یکی دو روزه یه نمونه ی ساده از طرحمو براتون بزارم رو همین تاپیک یا سایتم


مسعود جان من اصلا متوجه منظورت نمیشم یک کم کلاس پائین تر بنویس منم حالیم بشه

----------


## sadegi

با عزض سلام خدمت دوستان عزیز
به نظر من نمیشه اصلا روی شماره id و یا شماره سریال قطعات کامپیوتر حساب کرد
آخه من تازگی ها یکسری تحقیقات انجام دادم که به این نتیجه رسیدم که  اینجور برنامه ها توسط یه 
کرکر متوسط هم کرک میشه
و روش کار هم از این قراره که اول توسط یکسری برنامه های مخصوص , برنامه شما رو تبدیل به کد اسمبلی میکنن
 مکانیسم برنامه شما اینجوری که یک کد رو بر اساس مکانیسمی که شما تو برنامه تعریف کردین به کاربر میده و از اون یه کد دیگه میخواد تا برنامه کار کنه .حالا کابر اون کد رو از شما میگیره و اونو تو برنامه وارد میکنه و ...
خوب بقیش رو با مثال میگم
cpu id=111
&#40;سریالی که برنامه به کابر میده&#41;first serial =cpu id * 2
if second serial =2 * first serial then frmmain.show 
 خوب حالا کرکر اون قسمت از کد رو که کارش مقایسه دو تا کد هست رو پیدا میکنه و این تغییر رو توش انجام میده و اونو ذخیره میکنه
if second serial &lt;> 2 * first serial then frmmain.show
 خوب دیگه از اینجا به بعدش هم معلومه دیگه
با هر سریالی کار میکنه به جز سریال اصلی
 :mrgreen:  :mrgreen:  :mrgreen: 
 :flower:  :flower:  :flower:

----------


## sadegi

البته به این سادگی ها هم که من گفتم نیست 
ولی به هر حال میشه این کار رو کرد

----------


## hadi2345

با سلام .
ولی من فکر میکنم بشه .   :گیج:   دلیلش هم اینه که همونطور که میدونیم قفل های نرم افزاری سطح بالایی  نوشته شده که کرک نمیشن ....

----------


## بابک زواری

> البته به این سادگی ها هم که من گفتم نیست


آقای سادگی واقعا به این سادگی ها نیست وقتی که الگوریتم جایگزینی و تعویض و ارتقا و . . .
اینا رو به کار ببریم خیلی خیلی مشکل میشه پیدا کردن اون 




> ولی به هر حال میشه این کار رو کرد


بله قفلهای RainBow رو هم بالاخره میشه کرک کرد

----------


## sadegi

> آقای سادگی واقعا به این سادگی ها نیست


فکر کنم درستش صادقی هست  :) 



> وقتی که الگوریتم جایگزینی و تعویض و ارتقا و . . .
> اینا رو به کار ببریم خیلی خیلی مشکل میشه پیدا کردن اون


دقیقا همینطوره

----------


## بابک زواری

شرمنده آقای صادقی  :embr:

----------


## R_BABAZADEH

من خودم از جایگزینی استفاده می کنم و لی برای مقدار اطلاعات زیاد  فرمول md7   رو پیشنهاد می کنم

----------


## مهدی کرامتی

> تا اینکه دیگه داشتیم نا امیدی طی میکردیم که تو یکی از تاپیک های اینجا توسط sina piano با فایل DiskID32 آشنا شدیم که درست سریال نامبر حک شده روی بدنه هارد رو بر میگردوند که طبیعتاْ باید 100در صد منحصر به فرد باشه و با فرمت تغییر نکنه.


مواردی هست که تا حدود زیادی آدم رو ناامید میکنه، مثلا اینکه شماره سریال سخت افزاری هارد دیسک در همه انواع آن (مثلا انواع Serial ATA یا SATA، و نیز هارد دیسک های ساخت 2001 و قبل) پشتیبانی نمیشه و برنامه شما بجای شماره سریال یک عدد ثابت رو دریافت میکنه.

بعد از تغییر ساختار فوروم (بخشی از انقلاب برنامه نویس) در این مورد بیشتر بحث خواهم کرد.

----------


## sadegi

> من خودم از جایگزینی استفاده می کنم و لی برای مقدار اطلاعات زیاد فرمول md7 رو پیشنهاد می کن


دوست عزیز میشه یکم بیشتر در مورد md7 توضیح بدین؟
 :flower:  :flower:  :flower:

----------


## مهدی کرامتی

فکر کنم ایشان منظورشان همان MD5 Hash بوده و اشتباه تایپی دارند.

----------


## بابک زواری

در مورد hash کردن یک مقاله کامل در سایت (فکر کنم بخش مهندسی نرم افزار )‌و یک سورس کامل در بخش VB وجود داره

----------


## SH_Zahra

> من یک قفلی خریدم که اصلا نمیشه از روش رایت کرد خیلی ازش راضیم تا بحال 2000 نسخه
> از یک نرم افزار رو حدود 2 سال هست که میفروشم اما قفل شکسته اش رو تو بازار ندیدم هرچند
> که میدونم میشه قفل اینم باز کرد اما خوب از بقیه بهتره.
> اما اینو میخوام واسه دوستان ردیف کنم . خوب مثل اینکه باید روش رو عوض کنم .
> آقای مرادی و آقای vbprogramer ممنون از کمکتون بهتون pm میدم اگر مایل باشید و وقت داشته
> باشید این طرح رو با هم بریم جلو


شما میتونید اسم این برنامه را بگید منم استفاده کنم .......... :flower:

----------


## R_BABAZADEH

> فکر کنم ایشان منظورشان همان MD5 Hash بوده و اشتباه تایپی دارند.


تا انجایی که من می دانم md7 نسخه تکامل یافته md5 است

----------


## md_bluelily

من نظرم اینه که چند تا فاکتور رو در نظر بگیریم بعد با توجه به وجود و عدم وجود آنها بحث کنیم.
به علاوه اینکه WMI در مورد ProcessorID غیرقابل اعتماد نیست چون :

Processor information that describes the processor features. For an x86 class CPU, the field format depends on the processor support of the CPUID instruction. If the instruction is supported, the property contains 2 (two) DWORD formatted values. The first is an offset of 08h-0Bh, which is the EAX value that a CPUID instruction returns with input EAX set to 1. The second is an offset of 0Ch-0Fh, which is the EDX value that the instruction returns. Only the first two bytes of the property are significant and contain the contents of the DX register at CPU reset—all others are set to 0 (zero), and the contents are in DWORD format.

----------


## پرهام دادگر

منم می خواستم برنامه رو بردارم و اجرا کنم!
ولی نتونستم لینکشو پیدا کنم.

----------


## md_bluelily

آقا برای SATA کسی فکری نکرد ؟؟؟؟

----------


## md_bluelily

بچه ها خبر خوب اینکه DiskID32 میتونه SATA رو Detect کنه.!!!!!!!

----------


## سنبله کار

این فایل DiskID32  رو از کجا باید گرفت ؟

----------


## بابک زواری

از اینجا
http://www.winsim.com/diskid32/diskid32.html

----------


## R_BABAZADEH

برای vb  چی دارید
اینکه برای C یه

----------


## بابک زواری

این یک DLL  داره که متاسفانه من گیرش نیاوردم
باید با کمک کامپایلر VC تبدیل به DLL بشه

----------


## vahidm

منم یک قفل بلدم رو برنامه بگذارم که جن هم عقلش نمی رسه هرکه می خواد بدونه ایمیل بزنه تا براش توضیح بدم 
ایمیل من اینه 
onlyvahid_m2006@yahoo.com 
اسمم وحیداست

----------


## حامد مصافی

اما جالبه یک نسخه VC++‎.NET هم داره. میشه برای دات نت آمادش کرد!!!
بابک خان شما پروژه رو متوقف کردی یا همچنان ادامه میدی؟؟؟

----------


## بابک زواری

من پروژه دیگه ادامه ندادم چون مشکل هارد ساتا رو دارم

----------


## sinpin

> منم یک قفل بلدم رو برنامه بگذارم که جن هم عقلش نمی رسه هرکه می خواد بدونه ایمیل بزنه تا براش توضیح بدم 
> ایمیل من اینه 
> onlyvahid_m2006@yahoo.com 
> اسمم وحیداست


وحیدخان اگه ممکنه توضیح بدید (بصورت Public)

----------


## sinpin

> این یک DLL داره که متاسفانه من گیرش نیاوردم
> باید با کمک کامپایلر VC تبدیل به DLL بشه


دوستان Vb کار هم میتونند با استفاده از vb و resource editor اونرو به dll تبدیل کنند (من قبلا این کار رو کرده بودم)

----------


## hgkhatir

سلام. من در حال نوشتن یک کتابخانه استاتیک (lib) برای سی هستم که در آن فعلاً CPU ID و شماره هارد را بر می‌گرداند. البته بدون استفاده از WMI. بر روی PIII و AMD barton 2600 تست کردم جواب داد. برروی هارد ساتا تست نکردم. در چند روز آینده یک نسخه از برنامه را در این سایت قرار می دهم تا همگان تست کنند.
برای encrypt کردن هم من سورس برنامه md5 دارم. همچنین در حال تهیه یک سورس برای encrypt نامتقارن با بیش از 4000 بیت هستم. 
تمام این برنامه‌ها بدون استفاده از dll - ocx و exe و wmi است.
برای حالتی که قرار است شرطهای برنامه (که قفل را چک می کند) را تغییر دهند هم ایده‌های خوبی دارم.

----------


## وحید دات نت

*بابا تو رو خدا یکی مفاهیم اولیه - شروع کار و نحوه ساخت یک قفل نرم افزاری رو برای من تازه کار توضیح بده .*

----------


## nasser_attarzadeh

با عرض پوزش
اما من قفل های سخت افزاری رو ترجیح میدم
و خودم هم دو مدل ساختم
با اطمینان 100% که مشکل نداره
یکی با USB کار میکنه و قیمت هر کدوم 8500
و اونیکی با پورت سریال  و قیمت هر دونه 4000
و تضمینی که قفل شکسته نمیشه
در صورت شکسته شدن تمامی ضرر های وارده به عهده خودم (و البته شرکت Atmel ;) که میکرو هاش رو تضمین کرده)

----------


## mohsengrisly

ماشاالله همه جا هم در حال تبلیغات هستین
اینجا بحث قفل نرم افزاریه

----------


## m_nejad

معمولا موسسات یا شرکت هایی هستند که قفل (یا هر برنامه ای) را تست می کنند و نتیجه را اعلام می کنند. منطقی نیست بدون اینگونه تست ذینفع درصد اطمینان مشخص بکند!

----------


## siavash-123

با سلام خدمت دوست خوبم آقا ناصر :
آقا ناصر آنقدر هم که فکر می کنی قفل های سخت افزاری اطمینان ندارند................................
 چون اگه یکم سخت افزار بلد باشید می توانید با ساختن دستگاه پروگرامر اطلاعات داخل آیسی قفل را به یک یا چند آیسی خام دیگر منطلق کنید و سپس چند قفل شبیح هم داشته باشید ....
پس دیدی زیاد نمیشه اطمینان کرد.

----------


## mpmsoft

آقا چه جوری می شه قفلی طراحی کردن که مثلا 4 بار از روی سی دی برنامه نصب بشه در غیر این صورت سی دی قابل استفاده نباشد

----------


## mpmsoft

قفل سخت افزاری چیه و چه جوری کار می کنه

----------


## Armin62

به نظر من اگه به جای کار کردن روی سریال هارد و قطعات کامپیوتر روی سریال سی دی یا یک فلاپی دیسک کار کنید بهتره 
اما این کار یک مشکل کوچیک داره اونم اینه که باید برای هر سی دی یا دیسکت(نمی دونم آیا دیسکت سریال داره یا نه) برنامه رو تغییر بدین . ولی به نظر من  که جالبتره و قویتر
اگه راهی دارین که میتونه سریال سی دی رو برگردونه لطف کنید بگین.

راستی آقای sinpin عزیز گفته بودن که 
سریال cd قابل اطمینان نیست چون duplicate میشه
میشه توضیح بدین
منظورتون کپیه که شک دارم.


تشکر...
آرمین

----------


## touraj

من خیلی از قفل نرم افزاری سر در نمیارم. برای همین هم تمام پستها رو از اول خوندم. فکر کنم یه مشکل اساسی هست و اونم اینه که با اومدن تکنولوژی جدید تر ممکنه دیگه قفل کار نکنه. پس خوندن سریال هار خیلی هم کار درستی به نظر نمیرسه. تمام اون کدهایی که گذاشته بود رو روی چند تا سیستم چک کردم. نتایج خیلی جالبی بدست نیاوردم. فکر کنم باید از روش دیگه ای استفاده کرد.
اون قفل سخت افزاری هم که چند تا پست بالاتر گفته شد اصلاً مطمئن نیست. چون خودم به راحتی میتونم با پروگرمر ازش هر چند تا که بخوام کپی کنم.

----------


## یوسف امیری

قفل نرم افزاری پروژه کارشناسی من و یکی از دوستان است. کارهایی را در این مورد انجام داده ایم. و روی چندین کامپیوتر تست کرده ایم اما لا اقل تا بحال روش 100% مطمئنی پیدا نکرده ایم، ولی من امیدوارم. ما از VB و کمی هم از API استفاده می کنیم شاید مجبور به استفاده از اسمبلی و C هم باشیم. نظر من اینست که باید بی خیال هارد و CD شد چون اگر از سی دی کپی برداریم ID اون هم کپی میشه و برای هارد هم مشکلاتی وجود داره. ایده آل اینه که از سی دی بطور نامحدود بتوان کپی برداشت ولی اون برنامه فقط روی یک کامپیوتر نصب بشه. ضمناً با هر بار اجرای برنامه، خود به خود دوباره کامپیوتر را باید چک کند که بیبیند معتبر باشد در غیر این صورت روشهایی برای دور زدن این نوع قفل وجود دارد. مثلاً کاربر می تواند هارد یک کامپیوتر دیگه رو روی کامپیوتری که نرم افزار برای آن به فروش رسیده، قرار دهد و پس از نصب برنامه آنرا به کامپیوتر اول برگرداند...

ما روی این روش و تست آن حدود 6 ماه است که کار می کنیم. با به اشتراک گذاری اطلاعات موافقید؟ این ایمیل منه: xeronia@gmail.com

به امید یافتن روشهایی ایمن برای محفوظ نگه داشتن حق برنامه نویسان.

----------


## komail_sh

سلام به همه دوستان
من به این موضوع علاقمند شدم و میخوام هر کاری که از دستم بر میاد انجام بدم 
من این WMI را پیدا نکردم و یا مطالبی که مربوط به اون باشه از شما خواهش میکنم بیشتر راهنمایی کنید

----------


## amirrr

سلام 
 ممکنه قیمت این قفل نرم افزاری رو به ما بگین
یا یه قفل نرم افزاری عالی با قیمت مناسب به من معرفی کنین

----------


## forexwork

یه برنامه ابتدایی برای استفاده از سریال هارد

----------


## riyahiyan

برنامه خوبی بود.روی چندتا کامپیوتر امتحان شده؟

----------


## perfeshnal

سلام
برای چی مثل قفل کولاک هم از روی هارد و هم از روی مادربورد سریال برنداره بعد طبق فرمولهایی این دوتا رو با هم مخلوط کرده به کاربر نشون بده

----------


## mkbo_webmaster

من توی نرم افزارم، از سریال هارد استفاده کردم. منظورم اونیه که با FDisk نابود میشه.

با format نابود نمیشه
با Fdisk نابود میشه

ولی مگه آدم در سال چند بار کامپیوترش رو fdisk یا format میکنه ؟!!

بخاطر همین برای نرم افزارم limit گذاشتم. یعنی کاربرای نرم افزار میتونن تا پنج بار از سایت کلمه رمز بگیرن. که اگه اون کلمه رمز درست باشه. برنامه بصورت خودکار براشون فایلی جدید با توجه به سریال هارد میسازه که به کاربرا هشدار داده شده که فایل قفل رو پیش خودشون نگه دارن و فایل قفل تا زمانی کار میکنه که فرد کامپیوترش رو fdisk کنه و اگه هم fdisk کنه دوباره میتونه تا سقف پنج بار از سایت فایل قفل دریافت کنه.

بعد از 2 سال سیستم بصورت خودکار بوسیله asp ، ریستارت میشه و مجددا به پنج بار بر میگرده. به این صورت هم حقوق استفاده کننده تا ابد حفظ میشه و هم امکان سوء استفاده از نرم افزار هم به صفر میرسه.

چون دیگه کاربر میدونه که اگه هر دو سال یکبار تنها پنج بار میتونه از سایت فایل قفل دریافت کنه.

راسی من با winsock هم امکان نصب اتوماتیک قفل رو از طریق اینترنت فراهم کردم که اگه سوالی در این ضمینه داشتید. در خدمتیم. البته اطلاعاتم به اندازه شما بزرگواران نیست ولی تجربم یه کم زیاده.





/

----------


## joker

> من توی نرم افزارم، از سریال هارد استفاده کردم. منظورم اونیه که با format نابود نمیشه
> با Fdisk نابود میشه
> بعد از 2 سال سیستم بصورت خودکار بوسیله asp ، ریستارت میشه و مجددا به پنج بار بر میگرده. به این صورت هم حقوق استفاده کننده تا ابد حفظ میشه و هم امکان سوء استفاده از نرم افزار هم به صفر میرسه.
> /


پیشنهاد میکنم این مدل قفل را روی برنامه هات استفاده نکنی :)
چون سریال هارد قابل تغییر به صورت دستی هم هست . ( غیر از سریال اصلی کارخانه )
سورس برای این کار هم در کتاب  program in Delphi6 .،296 صفحه 126 موجود هست .

----------


## mkbo_webmaster

منظورم سریال درایو C در هارد اکتیو سیستم هستش که با FSO گرفتم. من با اون کار میکنم.




/

----------


## mkbo_webmaster

لطفا اگر امکان داره بیشتر توضیح بدید ....





/

----------


## joker

سریالی که روی پارتیشن ها هست به به قول خودت با fdisk هم میپرن به صورت دستی ( بابرنامه نویسی یا برنامه های آماده ( فکر کنم باشه من دنبالش نبودم ) قابل تغییره
یعنی شما یک نسخه مثلا برای سریال هارد دیسک  12345 میسازی ....
کافیه طرف برنامه بنویسه که سریال هارددیسک هر کامپیوتر را بزاره 12345  اونوقت قفل شما روی هر کامپیوتر دیگه ای که سریالش همین باشه برای ابد کار میکنه ( حتی نیازی هم به 5بار دیگه نداره .
پس بهتره از سریال کارخانه هارد دیسک ها استفاده کنی ( یکسری سورس توی اینترنت و توی همین سایت میتونی پیدا کنی که Model_Number و Firmware version و Serial number ثابت اون هارد دیسک که با FDISK هم عوض نمیشن را بهت میده ...
بعضی از اینا که به صورت OpenSource هست با هاردهای ساتا مشکل دارن ولی یه کم بیشتر بگردی نمونه های سازگار با هاردهای ساتا را هم پیدا مکنی 

پس از این مدل قفل استفاده کنی ( که خودمم استفاده میکنم فکر کنم بهتر باشه )
( البته هنوز روی VMare تسط نکردم ببینم میشه تغییرات داد یا نه ( شاید این یه سوراخ امنیتی برای این مدل قفلها باشه ( همانطور که میدونی VMare هارد مجازی بهت میده )

و در نهایت اگه نتونی نرم افزارت را خوب پروتکت کنی این مراحل برای یک کرکر یعنی کشک .
3 سوت برنامه ات کرک میشه و حالشو میبرن  :لبخند گشاده!: 


پیوست  &#187; چطوره یه بخش CrackMe توی سایت راه بندازیم :kaf:

----------


## ali_kolahdoozan

نرم افزار diskedit که توی نورتون قدیمی هست مثل آب خوردن سریال رو عوض می کنه .

----------


## mkbo_webmaster

البته سریال مثلا درایو C توی نرم افزار من ecyrept شده ، یعنی بصورت رمزی شده و بصورت یک فایل قفل به کاربر داده شده.
و حساب اونجاش رو هم کرده بودم. یعنی اون موقعی که از این قضیه ای که شما گفتید مطلع نبودم هم احتمالش رو میدادم. بخاطر همین رمزیش کردم.
یعنی در کل کرکر تنها یک راه داره و اینکه یک نسخه از نرم افزار رو بخره و سریال درایو c استفاده کننده از نرم افزار رو یادداشت کنه و بعد فایل قفل رو هم برداره. تا این نرم افزار من توی تمام سیستمها با کپی این دوتا کار کنه.

ولی با گفته های آقای زواری یک مقدار اطلاعاتم در این مورد بالا رفت. و با WMI آشنا شدم.
مثل اینکه آقایان کدهاشون رو در این مورد توی فروم نمیزاشتن. 
رفتم از یکی از دوستان آلمانیم پرسیدم. بهم یه آدرس داد که تمامی کدهای WMI توش بود.
برای بالا بردن اطمینان قفلم ، همونطور که آقای زواری گفته بودند. سریال هارد ، مادربرد ، CPU ، و BIOS و چند تا چیز ثابت دیگه رو از طریق WMI با کدهام گرفتم و همینطور از طریق یک کد API با استفاده از kernel32.dll دوباره سریال هارد رو گرفتم و تمام اینا رو بصورت یک رشته پشت سرهم با حذف جاهای خالی و تبدیل تمامی حروف به حروف بزرگ قرار دادم.
با اینکار اگه طرف هاردش نمیدونم ساتا باشه یا از این جور چیزا ممکنه تنها سریال هارد بر نگرده ولی ما بقی با هم جمع میشه.
فقط موندم که اگه WMI توی سیستمی نباشه اونوقت چی ؟
خوب میشه در این صورت یک خطا در برنامه ایجاد کنیم تا قفل بصورت رشته خالی رجیستر نشه.
اگه پیشنهادی دارید که غیر از WMI هستش لطفا بگید.
متشکر





/

----------


## joker

هرچه چقدر بیشتر به سخت افزار ها متکی باشه  مشتری بیشتر اذیت میشه 
فکر کن بخواد کامپیوترش را ارتقاع بده ؟

برای رفع مشکل هاردهای ساتا :
کامپوننت هاش هست 
http://www.cnware.com



> ardinfo component let you collect mechine information such as CPU type,CPUID,           CPU Vendor,BIOS SerialNumber,Hard Disk SerialNumber and ModalNumber,MAC address            easily.Such infomation is direct from hard interface,not from registry,So it can           not be changed by user.It works on Win98/NT/Win2000/XP/Win2003 and in any accounts            rights.            Using hardinfo component is quite easy ,just drop the component into delphi form,            all infomation is on the component's property.no additional DLL or VXD need.If             you use VB,VC or other language ,you can also use hardinfo.We provide hardinfo DLL            for VB and VC developer.

----------


## mkbo_webmaster

متشکر.
فایلش open source هستش ؟




/

----------


## joker

> متشکر.
> فایلش open source هستش ؟
> /


 فروش اون همراه با سورس هست ( یعنی قبلا که اینطوری نوشته بود جدیدا به سایتش سر نزدم  )

این سورس مال هاردهای معمولی هست :
[]

----------


## mkbo_webmaster

این که delphi هستش. 
به زبان های مایکروسافتی ندارید ؟




/

----------


## joker

> این که delphi هستش. 
> به زبان های مایکروسافتی ندارید ؟
> /


 اصلا و ابدا"  :لبخند گشاده!: 

فایل IOCTL که ضمیمه کردم را بخونی توابع مربوطه را فکر کنم راحت تر بتونی خودت یکی بنویسی .... به زبون میکروسافتی :)
البته اگه بگردی حتما نسخه های آماده اون را به صورت dll و ocx پیدا میکنی ...

----------


## farhadniyari

سلام دوستان
من دنبال یه قفل نرم افزاری vb6 هستم برای برنامه ای که نوشتم من کد دلفی برای قفل رجیستری رو دارم ولی ویژوال رو میخواستم در صورت امکان کمکم کنید منمنون میشم

فرهاد

----------


## joker

قفلهایی که با رجیستری کار میکنن در 3سوت شکسته میشن ( یه registry Monitor خرجشه )
_ این یعنی زحمت کرک کردن هم به کرکر ندادن  :چشمک:  _

بهتره اگه نرم افزارت گرونقیمت هست کار را بسپاری به اهلش از پرولاک که تبلیغ بالای همین سایت هست تا شرکتهای خارجی و........


البته همشون بدون تضمین هستند .
جایی که با تضمین بهت قفل بده فکر نکنم باشه ( اگر هم باشه مطمئن باش آخر ببسوادی هستن که روی قفلی تضمین میدن)

----------


## mkbo_webmaster

منم با آقای joker موافقم.






/

----------


## شهره . ی

می شه مختصرا توضیح بدین قفلهایی که با رجیستری کار میکنن چه طور کار می کنند؟

----------


## kaveh2006

سلام آقا بابک 

میشه کد استخراج شماره سریال هارد و سی پی یو رو به من بدی من دارم روی یک قفل کار میکنم 
ممنون میشم
 :قلب:

----------


## tejarat-ir

سلام 
می خواستم بدونم کسی هست که یه قفل نرم افزاری توپ داشته باشه 
برای یه برنامه می خوام یا بتونه یاد بده

ممنون

----------


## alireza_vb

خوب کی قراره این کلید قفل را به مشتری بده؟
اگه میشه به من جواب بدید چون منم می خوام

----------


## Mojtaba Rezayat

سلام بهار - من مدت زیادیه که از یه OCX استفاده می کنم که سریال هارد رو بهم می ده اما به تازگی با مشکل جدیدی مواجه شدم و اون اینکه سریال هاردهای ساتا رو نشون نمی ده.

----------


## joker

> سلام بهار - من مدت زیادیه که از یه OCX استفاده می کنم که سریال هارد رو بهم می ده اما به تازگی با مشکل جدیدی مواجه شدم و اون اینکه سریال هاردهای ساتا رو نشون نمی ده.


 یه صفحه بر میگشتی عقب یه نمونه بود :https://barnamenevis.org/showpo...&postcount=294
البته ظاهرا لینک دانلود کامپوننتهاشو از روی سایتش برداشته من همنیجا اتچ میکنم

----------


## reza2006

با عرض سلام 
بنده یک نرم افزار خریده ام وبرای اولین با روکامپیوتر نصب میشود یک شماره سریال به من میدهد و بعداز آن باید به مرکز زنگ بزنیم و پسورد یا سریال آن را بگیریم آیا میشود قفل آن را شکست

----------


## hmdevelop

TankYou...

----------


## ab_ba

[Quate]
مثلاً کاربر می تواند هارد یک کامپیوتر دیگه رو روی کامپیوتری که نرم افزار برای آن به فروش رسیده، قرار دهد و پس از نصب برنامه آنرا به کامپیوتر اول برگرداند...
[Quate]

این منطقی نیست بالاخره روی یک کامپیوتر بیشتر نصب نمیشه منظورت از کامپیوتر اول چیه

----------


## googoole

ببخشید سر زده مزاحم شدم . 

من فکر میکنم بدست آوردن سریال هر چیزی اصلا مهم نیست بلکه این مهمه که کاربر محدود بشه نه اینکه نرم افزار ، شما اگر سریال چیزی رو بدست بیارید و اونو توسط هر یک از الگوریتمهای کد گذاری کد کنید و بعد از کاربر یک شماره رو بخواهید که وارد کنه خوب این که راه حل قفل نرم افزاری نشد ، در اینصورت کافیه کاربر اون کد رو بدون نیاز به شما بدست بیاره که این کار کار خیلی ساده ایه و کرک کردن اینگونه قفلها راحت ترین نمونه های موجوده . چون در واقع کد گرفته شده از کاربر با کد تولید شده مقایسه می شه و جوابی برگشت داده میشه که صحت یا عدم صحت را بر می گردونه و این فقط یک IF  ساده هست ، حالا شما به سختی یک کد را بوجود بیارید و مقایسه کنید خوب کافیه فقط کد اجرایی رو باز کنیم و یک کد رو تغییر بدیم تا این IF    به Not اش تغییر هویت بده . 

بهتره بجای استفاده از کد و مسائلی از این قبیل راه حلی برای پیچیده شدن این فرآیند شرطی پیدا کنید . 

من فکر میکنم راه حل ایجاد قفل بر روی نرم افزارها چیزی غیر این این راه حلهاست .  :متعجب:

----------


## malakootian

سلام خسته نباشید
من خیلی مشتاقم در این پروژه کمکتون کنم اگه کاری از دستم بر می یاد خبرم کنید
با تشکر محمد

----------


## CodeMasterX

طی صحبت و مشاوره ای که امروز با آقای مصافی (BlackDal) داشتم به این نتیجه رسیدیم که یکی از روش های خوب برای امنیت نرم افزار این هست که شما سریال دیسک اصلی یا همون Primary Drive رو بگیرید و اون رو با MD5 هش کنید.این داده بدست اومده رو یه جا ذخیره کنید و با هر بار اجرای برنامه اول چک کنید ببینید که مقدار هش شده سریال دیسک اصلی با مقدار قبلی برابر هست یا نه ؟
این روش فقط برای این هست که شما از اجرا شدن برنامتون روی سیستم های مختلف جلوگیری کنید.فرض کنید برنامه این رو رو یه سیستم نصب کنید،بعد کاربر بیاد فایل های اصلی برنامه رو کپی کنه رو یه سیستم دیگه،با این روش میشه جلوش رو گرفت.
دیگه بقیه کد نویسی ها و اعمال امنیت های نرم افزار مثلا برای ورود به برنامه،بازه زمانی قابل قبول اجرای برنامه یا چیزای دیگه خدا قوت خودتون بنویسید  :لبخند گشاده!: .
ولی من توی اینترنت هی چی گشتم تو سایت های مختلف خارجی این بعترین کدی بود که برای تولید MD5 دیدم.یه کلاس هست،استفاده اش هم خیلی راحته:


Dim cMD5 As New clsMD5
Dim strHash As String

strHash = cMD5.CalculateMD5("CodeMasterX")
MsgBox strHash,vbInformation,"MD5 hashing"



انشاالله که به کار برو بچس برنامه نویس بیاد!  :گیج:  :شیطان:  :لبخند گشاده!:

----------


## art2000ir

مطالب مفیدی بود
تشکر

----------


## HAMRAHSOFT.IR

دوستان این کدهارا میشه داخل اکسس هم استفاده کرد؟

----------


## CodeMasterX

کدوم کد رو ؟ همون الگوریتم هش MD5 ؟
بله چرا نشه ؟ مقدار بازگشتی این الگوریتم یه رشته هست که میتونی تو اکسس هم ذخیرش کنی.

----------


## j.farazani

> کدوم کد رو ؟ همون الگوریتم هش MD5 ؟
> بله چرا نشه ؟ مقدار بازگشتی این الگوریتم یه رشته هست که میتونی تو اکسس هم ذخیرش کنی.


سلام عرض میکنم
آقای codemasterx میشه یه زحمتی بکشین و کد نحوه استفاده اون رو در اکسس برای ما بنویسند
یک دنیاااااااااااااااااااااا  ااااااااااااااااااااااااا منون میشم!!!!!! :خجالت:

----------


## CodeMasterX

> سلام عرض میکنم
> آقای codemasterx میشه یه زحمتی بکشین و کد نحوه استفاده اون رو در اکسس برای ما بنویسند
> یک دنیاااااااااااااااااااااا  ااااااااااااااااااااااااا منون میشم!!!!!!



این کلاس یه متد داره بنام CalculateMD5.شما اینجوری ازش استفاده میکنی:


Dim strData As String
strData = CalculateMD5 txtPassword.Text


حالا 
که مقدار هش شده پسورد رو گرفتی میتونی توی یه فیلد از نوع رشته توی اکسس ذخیرش کنی و هر بار که کاربر ویخواد وارد برنامه بشه پسوردش رو هش کنی و با مقدار هش شده اولیه مقایسه کنی.همین!

الگوریتم های رمزنگاری و هش کردن داده ها توی نشوتن قفل های نرم افزاری کاربرد زیادی دارن و MD5 هم با اینکه بارها اعلام شده که منسوخ شده ولی هنوز از محبوبیت و قدرت بالایی برخوردار هست.اشاره کنم که الگوریتم های هش ربطی به رمزنگاری داده ها ندارن و مقدار برگشتی ندارن!

و در جواب چند پست اخیر این تاپیک در مورد قفل هایی که با رجیستری ویندوز کار میکنن:
اینجور برنامه ها اصلا از امنیت و کیفیت خوبی برخوردار نیستن دوستان.رجیستری ویندوز که شبکه عصبی این سیستم عامل محسوب میشه،خیلی راحت قابل دسترسی هست و هر چیزی که بخواد با رجیستری چک بشه امنیت پائینی داره.برای مثال برنامه هایی که با استفاده از رجیستری مدت زمان استفاده از برنامه رو 30 روز تعیین میکنن.این جور تکنیک ها به سادگی قابل تخریب هست.بهترین راه ها استفاده از سریال هارد دیسک،سریال CPU و اینجور تکنیک ها هست.ولی یادمون باشه که بالاخره همیشه راهی برای کرک برنامه شما خواهد بود!

----------


## HAMRAHSOFT.IR

دوستان میشه یک نمونه اکسس هم بزارید  خیلی ممنون میشوم

----------


## majidghost

این نمونه ی اکسس نیست ولی اینو من همین الان نوشتم و کارش تبدیل MD5 ه.
MD5 Translator

----------


## HAMRAHSOFT.IR

دوستان نمونه اکسس نبود

----------


## EleRam

سلام
من یه عضو تازه وارد به این سایت هستم ولی قراره حالا حالا بمونم چون علاقه شدیدی به برنامه نویسی وی بی دارم... البته رشته م الکترونیکه!

می خواستم بگم که منم هستم توی این طرح آقا بابک. من هم روی یه قفل کار کردم که نسبتا ً خوب در اومده ولی نمی دونم از لحاظ امنیتی در چه سطحیه.
خلاصه این که ما هم هستیم توی جمع شما (این طرح) اگه قابل بدونین...

فعلا ً...

----------


## MAiLDEREMi

با سلام

در حدود دو روز پیش من و برادرم قفلی رو طراحی کردیم که شامل یک Hardware و یک Serialبود. Serial برای هر برنامه ای که کامپایل می شود ثابت است برای مثال 0000000001 و 0000000002  و ...
این اطلاعات پس از اتصال به اینترنت به یک فایل PHP فرستاده می شود.

تا این جا کاری است که در فایل EXE انجام شده

من در سایت خودم یک فایل PHP قرار دادم که با دریافت این دو کد، کد سومی را تولید و echo می کند.

این فایل PHP کد سریال برنامه ای را که دریافت کرده بررسی می کند که در بانک خود نداشته باشد. در صورت وجود Hardware کد را مقایسه می کند. (معنی فارسیش میشه فقط یک کامپیوتر حق استفاده از برنامه با سریال فرضا 0000000001 یا ... رو داره)

برنامه این کد را دریافت و درون یک متغییر یا TextBox یا هر چیز دیگر می ریزد و در رجیستری فقط Hardwarecode و Serial به نحوی ذخیره می شود که از قابل رمز گشایی مجدد نباشد.

ضمنا در برنامه نویسی VB و به خصوص VB.Net ضعف هایی مشاهده کردم که در صورت علاقه ببینید: https://barnamenevis.org/showth...355#post351355

----------


## sinpin

> با سلام
> 
> در حدود دو روز پیش من و برادرم قفلی رو طراحی کردیم که شامل یک Hardware و یک Serialبود. Serial برای هر برنامه ای که کامپایل می شود ثابت است برای مثال 0000000001 و 0000000002  و ...
> این اطلاعات پس از اتصال به اینترنت به یک فایل PHP فرستاده می شود.
> 
> تا این جا کاری است که در فایل EXE انجام شده
> 
> من در سایت خودم یک فایل PHP قرار دادم که با دریافت این دو کد، کد سومی را تولید و echo می کند.
> 
> ...


***  ببخشید اما اظهار فضل بیموردی بود !
*** اون چیزهایی که بعنوان ضعف مطرح شده هیچکدام ضعف نبودند.

----------


## MAiLDEREMi

> *** ببخشید اما اظهار فضل بیموردی بود !
> *** اون چیزهایی که بعنوان ضعف مطرح شده هیچکدام ضعف نبودند.


نمی دونم میشه از این مودبانه تر هم اظهار نظر کرد یا نه ...
من این روش رو رفتم کار هم می کنه حالا هر کسی دوست داشت میتونه این راه رو نره ولی بدونید که این راه تأیید شده توسط حدود 50 دانشجو و 12 استاد هست.

----------


## Evil 69

این قفل نرم افزاری رو که شما از اون دم میزنید رو که من دیروز 29/03/86 نوشتمش که 

کامل کامل .

تازه برای ساپورت بهتر در صورتی که کاربر بخواد یک فلاپی هم بهش میده که تنها روی اون کامپیوتر کار میکنه تا اگر یکی از سخت افزار ها شو عوض کرد بتونه از اون فلاپی کمک بگیره تا بتونه ار برنامش استفاده کنه

----------


## iman_Delphi7

با سلام
من بیشتر با دلفی کار می کنم و مثل دوستان زیاد تو VB متخصص نیستم.
این یه کد VB هست که اسم هارد، شماره سریال هارد و ... رو میده
شماره سریال هم همون شماره ایه که روی هارد نوشته شده مثل : SN : Y2D594AE
فکر می کنم منحصر به فرد هم باشه.
این کد با فایل exe و ... هست.
امیدوارم به کارتون بیاد.
خوش باشید.
تا بعد.

----------


## iman_Delphi7

سلام
اینم کد کامل ترش
یه مشخصات کامل تر از هارد رو می ده
خوش باشید
تا بعد

----------


## teraman

دوستان من اطلاعاتی در مورد کرک نرم افزار دارم اگه دوستان خواستن راهنمایی کنم.
مثلا هیچ وقت اگه رمز اشتباه وارد شد نباید پیام و ... بدیم. و ...

----------


## Mr.AmiR

سلام به همه 
من تازه تو این سایت عضو شدم
الان دارم دوره کارآموزیمو میگزرونم و کارم بد جوری گیره گزارش کاره
کی می تونه زحمت بکشه و یه گزارش کار به من بده اگه در ضمینه vb باشه خیلی بهتره
قول میدم جبران کنم
مرسی

----------


## MFiRE

آیا کسی می دونه کرک چیه !؟

با کرک می شه دستوراتی رو که رو قفلاتون انجام دادین از بین برد !

مثلا یه شرط نوشتین !
خیلی که پیچیده باشه توی 1 ساعت دستور شرطی رو از بین می بره.

به ادرس زیر برین .
برنامه هست که من در زمینه ی امنیت نرم افزاری ساختم.



> http://forum.persiantools.com/t87978.html


این برنامه برای اولین بار ساخته شده .

----------


## javad ra

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

----------


## HAMRAHSOFT.IR

سریال هارد

----------


## bah_jaf

سلام  بابک جان
از این پروژه ات خیلی خوشم آمد. من تو یک شرکت مسئول شبکه هستم اینجا همه رقم کامپیوتر دم دستم هست اگر نیاز به آزمایش داری میتونی رو من حساب کنی.

----------


## jarehan

دوستان لطفا توجه كنيد كه با بدست آوردن مشخصات سخت افزار و كد كردن آنها با هر الگوريتم پيچيده اي ، در نهايت كد دريافتي از كاربر با كد توليدي يك جايي در سورس شما مقايسه خواهد شد و در اينجا كافيست در سورس برنامه آن شرط را Not كرد .به همين راحتي قفل شكسته ميشود.قفل هاي مبتني به ريجيستري هم كه ديگه از رده خارج شده .لذا بايد فكر ديگري كرد.حتي فكر استفاده از توليد فايلهاي dll و نوشين كد در داخل آنها و يا توليد فايل اجرايي ديگر را هم نكنيد كه علاجش يك Decompiler .بايد وسيع تر از اين حرفا فكر كرد.

----------


## VB.SOS

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

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

----------


## MAiLDEREMi

دوستانی که از محیط های قدیمی استفاده می کنند، مثل VS 6.0، برای بدست آوردن کد سخت افزاری از WMI ویندوز استفاده کنند. به نظر من برای کسانی که می خوان کارشون راحتتر پیش بره، بهتره که از کد سریال فلش مموری استفاده کنند. شما می تونید برنامتون رو روی همون فلش بذارید و با اون بفروشید... این روش فقط یک مشکل داره و اون هم اینه که برنامه هایی برای شبیه سازی مجازی فلش ساخته شده... این برنامه ها قابلیت شبیه سازی کامل با کد سریال را دارا هستن...
چندتا از دوستان در بعضی سایت ها روی کد سریال سی دی بحث کرده بودند ولی این شیوه کاملا غلط هست چون کد سریال سی دی در هنگام کپی تولید و رایت میشود، پس با کپی آن، آن سریال هم کپی می شود...

البته در همه موارد، شیوه آنلاین می تونه تولید کننده نرم افزار رو راحت، و امنیت برنامه رو بالا ببره...
من توی یکی از برنامه هام کد سخت افزاری رو با SHA-1024 کد و با تعدادی کد دیگه ترکیب می کنم به طوری که در نهایت کدی با 3584 کاراکتر البته با سختی 5 تولید می کنه و به سایت ارسال می کنه. حالا هکر مورد نظر این مقدرا رو هرجوری که بگیره، چطوری می خواد به نتیجه برسه؟  :لبخند گشاده!: 
البته کرک کردن فقط کار رو Hash و کدهای تولید نیست ولی این هم یکی از موضوعات مهمه...
----------------------------------------------------------------------------------------------
در مورد کرک کردن هم توی خیلی از سایت ها توضیحاتی داده شده ولی همه جا به صورت خلاصه بیان شده... این نه از روی ندانستن، بلکه از جهت این زیاد دنبال نمیشه چون دامنه ی خیلی گسترده ای داره و خیلی از کرکرها شیوه های خودشون رو دارن...

برای مثال چند وقت پیش یکی از برنامه های کرک شده یکی از سایت ها که در زمینه دانلود آفلاین کار میکرد پابلیک شد و اون سایت مجبور شده فعالیتش رو به شیوه دیگه ای پیش ببره...
چون این برنامه آنلاین بود، با بدست آوردن پروتکل های اون، برنامه کرک شده در اختیار کاربران قرار گرفت...
یا برای برنامه های Trial که مجبور به تغییر و ثبت در حافظه هستند، کفیه که بیایم تغییرات حافظه رو ببینیم...
برای شروع توصیه من به دوستان Process Monitor هست چون با این برنامه نیازی به کندوکاو زیاد نیست و شما می تونید در عرض چند دقیقه کل برنامه رو مورد ارزیابی قرار بدید.

----------


## ehsanocx

دوست عزیز شناسه Cpu  به درد نمی خوره . چون روی بیشتر کامپیوتر ها یکیه. من روی یک قفل این چنینی کار کردم. اما من توی اون از شناسه هارد استفاده کردم

----------


## ƒxmahdi

حالا که این موضوع مجددا باز شد اجازه می خوام چند مورد مهم که حاصل تجربه خودم هست را به دوستان عرض کنم.برای نوشتن قفل نرم افزاری چند کار باید انجام بشه !
1- بدست آوردن مشخصات یکسری از قطعات سخت افزاری که کمتر تعویض میشود ( جهت ثابت بودن کد قفل )
2- تولید یک کد قفل بر اساس مشخصات استخراج شده ( بهتره شامل حروف و اعداد باشه )
3- در نظر گرفتن یک الگوریتم خاص و غیر قابل هک برای فعال سازی نرم افزار
توجه داشته باشید که اگر الگوریتم شما پیچیده باشد هکر ها برای هک نرم افزار شما دیگه از این روش استفاده نمی کنند . 
همانطور که می دانید یک نرم افزار از چندین فرم تشکیل شده که در ابتدا همه مخفی و غیر فعالند و فرم قفل نرم افزاری در ابتدای برنامه قرار می گیره و بعد از ورود کد فعال سازی مورد نظر آن فرم مخفی شده و مثلا فرم اصلی برنامه  نمایش میابد . آیا اگر ما از یک فرم قفل نرم افراری در ابتدای برنامه با بهترین روش غیر قابل هک استفاده کنیم کافیست ! نه اینطور نیست هکر میاد و فقط نام فرم اصلی را توسط نرم افزار های editor پیدا می کنه و فقط کافیه کد لود شدن اون فرم را به برنامه ما اضافه کنه ! به همین راحتی !
اما بعضی ها میان و در یک تایمر مرتبا چک می کنند که قفل نرم افزاری فعال شده باشد اما این کار هم ناموفقه چون فقط کافیه کد غیر فعال شدن تایمر را هکر به لود فرم قفل اضافه کنه به همین راحتی !
اما بسته به کارایی نرم افزار برنامه نویس بر اساس نوع کار کرد بیاد و عمل چک کردن قفل را در رویدادی از برنامه قرار بدهد که غیر قابل هک شود مثلا در یک نرم افزار حسابداری هنگام گزارش گیری !
نمونه ای از این قفل را من در یک برنامه کوچک جهت تست کردنش قرار دادم www.fxmahdi.blogfa.com
اگر کسی الگوریتمشو خواست فقط برام ایمیل بزنه . fxmahdi@gmail.com

----------


## MAiLDEREMi

> دوست عزیز شناسه Cpu  به درد نمی خوره . چون روی بیشتر کامپیوتر ها یکیه. من روی یک قفل این چنینی کار کردم. اما من توی اون از شناسه هارد استفاده کردم


درسته! البته اینم درسته که خیلی از Bios ها مشابه همین عمل می کنه و نمیشه از اون برای تولید کد استفاده کرد؛ اما با ترکیب همه سخت افزار ها آخرش میشه یه چیزی از آب درآورد...
البته همه قطعاتی که احتمال تعویض اونا کمتر هست...  :لبخند: 

البته... اینم هست که همیشه برنامه ها کرک میشن... ولی حداقل زمان کرک شدن رو میشه طولانی تر کرد...  :چشمک:

----------


## TakinDL

آقا از بحث قفل نرم افزاری بیاین بیرون ما ایرانی ها سی.دی ها مایکروسافت خصیص رو دو در می کنیم وای بحال برنامه نویس های تنهایی مثل ما

دیگه جدیدا قفل های سخت افزاری رو هم می شکنن وای بحال نرم افزاری

----------


## mmssoft

> آقا از بحث قفل نرم افزاری بیاین بیرون ما ایرانی ها سی.دی ها مایکروسافت خصیص رو دو در می کنیم وای بحال برنامه نویس های تنهایی مثل ما
> 
> دیگه جدیدا قفل های سخت افزاری رو هم می شکنن وای بحال نرم افزاری


اصلا این حرفت رو قبول ندارم. اگه 20 تا هکر حرفه ای بیان کنار هم بشینن و برای ساخت یه قفل نرم افزاری یا سخت افزاری فکر کنن، میتونن با بستن راه های نفوذی که برای هک کردن قفل هست یه قفل بسیار حرفه و غیرقابل نفوذ بسازن که اگه پدر پدر بزرگترین هکر هم بیاد نتونه بازش کنه.

----------


## alimanam

دوستان عزیز من یه ActiveX نوشتم که سریال هارد دیسک که به نظرم از سریال CPU خیلی قابل اطمینان تره رو در اختیار برنامه نویس می زاره . البته من خیلی وقته رفتم سمت VB.Net ولی برای نوشتن قفل نرم افزاری خودم از این اکتیوایکس استفاده کردم . اگه دوست داشته باشین من این اکتیو ایکس رو در همین تاپیک می زارم که هرکی که به دردش بخوره ازش استفاده کنه . 

دیدن قفل نرم افزاری PS-27

----------


## MM_Mofidi

هر چند به نظر میرسد که این تاپیک کلا به بیراهه رفته اما نسخه برنامه ای که قبلا اینجا گذاشته بودم را دوباره آپلود میکنم.

پ.ن: چند روز پیش برای یک پروژه احتاج به این کد داشتم که اینجا پیدا نکردم لذا دوباره فرستادم

----------

