PDA

View Full Version : حرفه ای: آموزش ایجاد دوره زمانی trial و کد فعال سازی برای برنامه با سطح امنیت بالا



tam2145
پنج شنبه 11 اسفند 1390, 22:02 عصر
سلام دوستان توی این تایپک قرار هست درباره این موضوع بحث کنیم !!:کف:
دوست عزیز فرید جون هم قرار هست توضیح بدهد و ما هم گوش به سخنان ایشان فرا دهیم !!:بامزه:
آقا معلم بفرمایید ، ما سرا پا گوشیم !!:لبخند:

فرید نجفلو
پنج شنبه 11 اسفند 1390, 22:08 عصر
حالا آره ...
داشتیم؟:چشمک:
اگه بگید برنامنتون چیه و چجوری کار می کنه شاید بتونیم به نتیجه بهتری برسیم
من خودم تو یکی از نرم افزارهام(البته نه دفترچه تلفن ،حدود 80,000 الی 100,000 خطی می شد:چشمک:) هم از روش سریال و هم از روش محدویت زمانی استفاده کردم
ولی به شگردی دیگر!

tam2145
پنج شنبه 11 اسفند 1390, 22:21 عصر
فرید جون !!
آره !!
داشتیم ، آقا معلم !!
درس شروع کنید که دیگه صبرم تموم شده !! مشتاق یاد گیری !!
برنامه اولی من درباره یک مترجم قالب وبلاگ هست که با استفاده از هوش مصنوعی ایجاد شده توسط من قالب ها را از یک سرویس به سرویس دیگر ترجمه می کند !!
خوب شروع کنید .

فرید نجفلو
پنج شنبه 11 اسفند 1390, 22:27 عصر
برنامت از دیتا بیس یا مشابه اون استفاده می کنه یا فقط فایل اجرئیه؟

tam2145
پنج شنبه 11 اسفند 1390, 22:35 عصر
برنامت از دیتا بیس یا مشابه اون استفاده می کنه یا فقط فایل اجرئیه؟
برنامه بسیار ساده هست و با استفاده از توابعی که با رشته ها و .... سرو کار دارند نوشته شده و من تمامی حالات ها رو در نظر گرفته ام که در هر حالت اماده باشه !!
خب فرید جون ، نمی خواهی به ما اموزش بدهی یا نه ؟؟ 30 دقیقه بیشتر وقت ندارم ، بعد لا لا .... !!

فرید نجفلو
پنج شنبه 11 اسفند 1390, 22:47 عصر
اووووو انقدر وقت داریم
سال جدید هم که داره میاد
ببنید واسه اینکه یه مسئله رو حل کنی باید اول خود مسئله رو روشن کنی بعد راهش رو بری پیدا کنی
سوالات بی حکمت نیست
من که می گم دو نوع قفل گذاشتم به این صورته که:
قفل سریال: این قفل از روی سخت افزار کاربر و یک کلید اصلی(از طرف ما)ساخته می شه که کلا برنامه رو از حالت آزمایشی به نا محدود تبدیل میکنه
قفل تاریخی:این قفل وقتی فعال میشه که قفل سریال باز نشده(نسخه آزمایشی) و کارش اینکه مدت اجرای برنامه رو کنترل کنه
قفل اول برای هر سیستم سریال منحصر به فرد می ده
و قفل دوم پایاه داده رو کنترل می کنه که از تاریخ تخطی نشه
در واقع این دوتا مکمل هم هستن
جای مبهمی که فعلا نیست؟

tam2145
پنج شنبه 11 اسفند 1390, 22:54 عصر
نه !! فرید جان !! جای مبهمی نداشت !! گرفتم منظورت چیه !!:متفکر:

فرید نجفلو
پنج شنبه 11 اسفند 1390, 23:29 عصر
و اما در باره برنامه شما
چون دیتا بیس ندارید پس قفل دوم منتفیه
در این صورت قفل اول هم ناقص میشه!
در این حالت از دوره زمانی بعد از اولین استفاده ، بدون خطر دور زدن اون تقریبا نمی شه استفاده کرد!
اما می شه دو تا کار انجام داد:

1- محدودیت تاریخی ایجاد بشه بعلاوه چند محدودیت دیگه اعم از:
مدت محدود طول اجرا: یعنی برنامه فرضا بیش از 5 دقیقه باز نمونه
محدودیت در امکانات : مثل غیر فعال کردن تعدای از منو ها و دکمه ها یا در موارد خاص برنامه مثلا در مورد برنامه شما همه امکانات قالب ها ترجمه نشه و...
و از این دست

2-محدویت تاریخ گذاشته بشه ولی به این روش که تاریخ اولین اجرا ملاک نباشه
در واقع شما می تونید یک فایل کد گذاری شده با یک کلید اصلی رو همراه برنامه بفرستید که اطلاعات تاریخ انقضا داخل اون باشه
مراحل کار:
شما یک فایل ایجاد می کنید که اطلاعاتتون که یکیش تاریخ انقضا برنامست رو ایجاد می کنید (مثلا در تاریخ 1390/11/11 منتشر می کنید و تا تاریخ 1391/1/30 مهلت میدید)
با یک تابع کد گذاری که نوشتین فایل رو کدینگ می کنید

وقتی کاربر برنامه رو اجرا می کنه ،برنامه اول دنبال اون فایل می گرده اگه بود که می ره مرحله بعد اگه نبود یا پغام خطا میده که برنامه رو دوباره نصب کنه یا ما اون فایل رو به EXE ضمیمه میکنیم و برنامه میاد اون فایل رو باز سازی میکنه


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

tam2145
جمعه 12 اسفند 1390, 07:30 صبح
فرید جان سلام !!
خوب این دیتا بیس دیگه چیه ؟؟ بگو چیه و چطوری ایجاد می شه تا بزنم !!
از محدودیت طول مدت اجرای برنامه و از روش دو که از 30 روز استفاده نمی کنه و به جاش از زمان تعیین شده استفاده می کنه ، خوشم نمی آید ، چون به نوعی حق کاربر ها ضایع می شه ولی با محدودیت در امکانات موافقم !!
بعد فرید جان فایلی که من باید ایجاد کنم چه فرمتی هست و با چه تابعی توی برنامه نوشته و خوانده می شود !!
بعدش فرید جان ، باید بگم که برنامه من کاملا به صورت آفلاین کار می کنه !!

alimanam
جمعه 12 اسفند 1390, 11:39 صبح
با سلام


فایل پیدا شد:فایل باید چک بشه که آیا با الگوی کد گذاری ما مطابقت داره یا نه!نداشت یکی از گزینه های مرحله قبل

این روش معایب خاص خودش رو داره که به راحتی قابل دور زدن هستش ! چطوری ؟! شما این حالت رو در نظر بگیرید کاربر میاد فایل مورد نظر شما رو که کدگذاری کردین رو یه کپی ازش نگه میداره ! در هر بار اجرا ( مدت زمان های دلخواه ) همون کپی فایلی رو که قبلا گرفته رو Paste میکنه ! فایل معتبر هست ! درست کدگذاری شده ! تاریخ سیستم قابل عقب و جلو رفتنه ! و ... با توجه به این موضوع که همه برنامه ها اصولا نباید به اینترنت وصل باشن در نظر بگیرید که کار چقدر برای افراد فضول ساده و راحت میشه !

موفق باشید./

فرید نجفلو
جمعه 12 اسفند 1390, 12:13 عصر
از محدودیت طول مدت اجرای برنامه و از روش دو که از 30 روز استفاده نمی کنه و به جاش از زمان تعیین شده استفاده می کنه ، خوشم نمی آید ، چون به نوعی حق کاربر ها ضایع می شه ولی با محدودیت در امکانات موافقم !!

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

روش دوم (تاریخ انقضا) دور زدنش مشکلتره واسه همین پیشنهاد دادم و در واقع اگه کاربر(مشتری) خاصی در نظر باشه خوبه!


بعد فرید جان فایلی که من باید ایجاد کنم چه فرمتی هست و با چه تابعی توی برنامه نوشته و خوانده می شود !!
اینو دیگه خودت باید خلاقیت به خرج بدی یه نمونه خیلی ساده می گم(بدون کد)
مثلا تو می یای فایل رو خط به خط می خونی
حالا اون خط که بصورت استرینگ دستته معکوسش می کنی
رشته معکوس رو می یا جای حروف رو عوض می کنی(1با2 و 3با 4 و ...)
و بعد می یای باینری حر حرف رو درمیاری(0و1) به صورت رشته پشت سرهم تو فایل کد شده ذخیره می کنی
واسه خوندن هم یه تابع معکوس این کار لازمه
البته الان خودم داره واسه روشم خندم می گیره (فقط خواستم یه مثال ساده و قابل فمم بزنم)
حالا دیگه با خودته الگوریتمت کدینگت چجوری باشه از یک Master Key استفاده کنی یا نه و...
فرمت فایل هم فرقی نمیکنه اما گه با XML آشنایی داشته باشه خوبه



خوب این دیتا بیس دیگه چیه ؟؟ بگو چیه و چطوری ایجاد می شه تا بزنم !!
عزیز دل برادر دیتا بیس کمپوننت نیست که به برنامت اضافه کنی!
اولا باید برنامت به پایگاه داده نیاز داشته باشه و اطلاعاتی که توش ذخیره می کنی هم قابلیت این کار رو داشته باشن
نمونه:
نوع برنامه: نرم افزار حسابداری
پایگاه داد نیز دارد: بله 100%
روش کار:
چون من خودم حسابدارم می دونم که یک سند حسابداری بدون تاریخ یا تاریخ اشتباه هیچ ازشی ندارد!
پس نمی تونن با تغییر تاریخ کلک بزنن
پس منم می یام برنامه رو طوری می نویسم که تاریخ مبدا(اولین اجرا) میشه کوچکترین تاریخی که بین تاریخ اسناد هست(اولین سند ثبت شده از نظر تاریخ)
و اگه کاربر بخواد سندی ثبت کنه که تو رنج مابین اون تاریخ و مدت استفاده(30 روز) نباشه ما هشدار می دیم .
و اون می تونه تو این تاریخ هر چه قدر سند که دلش خواست بزنه( چون ممکنه یه شرکت تو 30 روز 100 تا سند هم نزنه ولی یکی دیگه ممکنه 1000 تا سند بزنه پس هیچکدوم با مشکل مواجه نمی شن)
در مورد امکانت هم من فقط یه محدودیت گذاشتم: حالت شبکه غیر فعال میشه( نه اینکه سرور شبکه نباشه بلکه در آن واحد فقط یه کاربر از کل شبکه می تونه به پایگاه داده متصل بشه که اینم یه بحث پیشرفته دیگس)

tam2145
جمعه 12 اسفند 1390, 12:32 عصر
سلام فرید جان !!
هنوز درباره دیتابیس نخونده بودم ، آخه تازه شروع به برنامه نویسی درست و درون کردم و قبلا مبتدی بودم و الان دارم کم کم یاد می گیرم !! توی این فاصله زمانی سری به کتاب هایی که داشتم زدم و چیز های درباره اش خواندم البته مختصر !!
فق یک سوالاتی درباره اش برایم پیش آمد :
1 - آیا این دیتا بیس ها را باید توی نت گذاشت یا اگر همراه برنامه نصب بشه مشکلی نداره ؟؟
2 - کد های خوندن و نوشتن (( فیلد و رکورد ها )) غیره اون چیه ؟؟
3 - آیا نوع Access (http://barnamenevis.org/forumdisplay.php?23-Access) امنیت قابل قبولی داره یا نه ؟؟

خوب درباره فرمت xml هم خودم یک تحقیقی می کنم !! ببینم چطوری هست !!
فقط وقتی که این فایل را همراه برنامه گذاشتم و وقتی طرف مقابل نصب کرد از کجا بفهمم که فولدر نصب کجا بوده ؟؟

بعد مدت زمان اجرا کدش چیه ؟؟ آیا باید از timer استفاده کنم ؟؟

فرید نجفلو
جمعه 12 اسفند 1390, 13:16 عصر
هنوز درباره دیتابیس نخونده بودم ، آخه تازه شروع به برنامه نویسی درست و درون کردم و قبلا مبتدی بودم و الان دارم کم کم یاد می گیرم !! توی این فاصله زمانی سری به کتاب هایی که داشتم زدم و چیز های درباره اش خواندم البته مختصر !!


موفق باشی:چشمک:


فق یک سوالاتی درباره اش برایم پیش آمد :
1 - آیا این دیتا بیس ها را باید توی نت گذاشت یا اگر همراه برنامه نصب بشه مشکلی نداره ؟؟
2 - کد های خوندن و نوشتن (( فیلد و رکورد ها )) غیره اون چیه ؟؟
3 - آیا نوع Access (http://barnamenevis.org/forumdisplay.php?23-Access) امنیت قابل قبولی داره یا نه ؟؟



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


خوب درباره فرمت xml هم خودم یک تحقیقی می کنم !! ببینم چطوری هست !!
فقط وقتی که این فایل را همراه برنامه گذاشتم و وقتی طرف مقابل نصب کرد از کجا بفهمم که فولدر نصب کجا بوده ؟؟

مسیری که برنامه از اونجا شروع شده:

Application.StartupPath


بعد مدت زمان اجرا کدش چیه ؟؟ آیا باید از timer استفاده کنم ؟؟

اگه همون مدت محدود اجرا (5 دقیقه) منظورته بله درسته

tam2145
جمعه 12 اسفند 1390, 15:09 عصر
انشاءا... فرید جان !! سعی خودمو می کنم !! شما هم موفق و ... باشید !!
حق با شماست ، ان تایپک جای این بحث ها نبود !!
راستی اگر یک فایلی مخفی شده باشد ، توابع ویژوال اونو قبول می کنند !!
فقط فرید جان !!
اونجا یادته که گفتی :

قفل سریال: این قفل از روی سخت افزار کاربر و یک کلید اصلی(از طرف ما)ساخته می شه که کلا برنامه رو از حالت آزمایشی به نا محدود تبدیل میکنه !!
اگه می شه یک توضیحی بده چگونه می شود با استفاده از سخت افزار کاربر برایش سریال ساخت !! چون این کار باعث می شود که سریالی که به یک نفر دادی ، اگر به کس دیگری داد باعث فعال شدن برنامه نشه !!

M.KH-SH
جمعه 12 اسفند 1390, 15:24 عصر
دوست عزیز توضیح خواصی نداره بعضی چیز ها مثل بخش های امنیتی و نسخه های آزمایشی کمی ابتکار عمل میخواد

شما میتونی برنامه رو با 4 خط در بخش form load به صورت محدود یا نا محدود در بیاری

برای تریال کردن هم میتونی از رجیستری (ساخت کلید در رجیستری) ، ساخت فایل و هزاران روش دیگه استفاده کنی

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

tam2145
جمعه 12 اسفند 1390, 15:39 عصر
دوست عزیز توضیح خواصی نداره بعضی چیز ها مثل بخش های امنیتی و نسخه های آزمایشی کمی ابتکار عمل میخواد
شما میتونی برنامه رو با 4 خط در بخش form load به صورت محدود یا نا محدود در بیاری
برای تریال کردن هم میتونی از رجیستری (ساخت کلید در رجیستری) ، ساخت فایل و هزاران روش دیگه استفاده کنی
برنامه نویسی یا بهتره بگم برنامه سازی فقط ابتکار عمل میخواد فقط همین برای یاد گرفتن اول بگرد بعد بپرس

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

فرید نجفلو
جمعه 12 اسفند 1390, 15:40 عصر
راستی اگر یک فایلی مخفی شده باشد ، توابع ویژوال اونو قبول می کنند !!
مخفی بودن یا حتی سیستمی بودن فایل تاثیری در خوندن اون توسط برنامه نداره
فقط باید برنامه یا کاربری که برنامه رو باز کرده مجوز استفاده از فایل رو داشته باشه


اگه می شه یک توضیحی بده چگونه می شود با استفاده از سخت افزار کاربر برایش سریال ساخت !! چون این کار باعث می شود که سریالی که به یک نفر دادی ، اگر به کس دیگری داد باعث فعال شدن برنامه نشه !!

درسته این نوع سریال ها برای هر کامپیوتر منحصر به فرد هستن
مراحل عمل:
شما در برنامه تون یک تابع می نویسید که توسط WIM مشخصات سخت افزار های مورد نظر رو بدست می یاره
بعد یه کلیداصلی(ثابت برای هر نرم افزار) رو در نظر می گیرید مثلا M6Lkzq4psqolrFARID.NcloMNDOkdJXjkdi658
بعد ، از ترکیب این مشخصات و کلید اصلی یک سریال قابل فهم از حروف ، اعدا یا ترکیبی از هر دو میسازید مثل 3659323697611656838
این سریال ، سریال منحصر به فرد سیستم میشه

حالا یه تابع دیگه از این سریال یه سریال دیگه میسازه یعنی مکمل او ( معروف به Keygen) مانند CRTGH-B68P2-XB6JC-44GCD-X9JHM (سریال ویندوز XP:چشمک:)
تبادل سریال ها:
وقتی کاربر برنامه رو باز کرد ما با تابع اول سریال اول رو به کاربر نشون می دیم
اگه خواست نرم افزار رو خریداری کنه سریال اول رو به ما می ده ما سریال دوم رو با استفاده از تابع دوم ایجاد و بهش می دیم تا برنامه فعال بشه:لبخندساده:

بررسی سریال در سمت کاربر:
حالا در برنامه سمت کاربر سریال اول رو که خودمون ساختیم و می دونیم چیه
سریال دوم رو هم از کاربر می گیریم باز با همون تابع دوم (Keygen) سریال دوم رو هم می سازیم با هم مقاسیه می کنم اگه درست بود برنامه رو فعال و سریال گرفته شده رو یه جایی ذخیره می کنیم تا دیگه از کابر سریال خواسته نشه

فرید نجفلو
جمعه 12 اسفند 1390, 15:47 عصر
دوست عزیز توضیح خواصی نداره بعضی چیز ها مثل بخش های امنیتی و نسخه های آزمایشی کمی ابتکار عمل میخواد

شما میتونی برنامه رو با 4 خط در بخش form load به صورت محدود یا نا محدود در بیاری

برای تریال کردن هم میتونی از رجیستری (ساخت کلید در رجیستری) ، ساخت فایل و هزاران روش دیگه استفاده کنی

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

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


به صورت محدود یا نا محدود در بیاری

tam2145
جمعه 12 اسفند 1390, 16:26 عصر
می خواستم بدونم که رشته ها را با استفاده از AscW و Asc و ChrW و Chr این توابع رمز نگاری می کنید یا اینکه خودم باید برایش تعریف کنم که چگونه رمز نگاری کنه ؟؟(( تر کیبشون هم بد نیست ))
بعدش اگه می شه توابع بدست آوردن سریال سخت افزار های کامپیوتر را بگذارید .
بعدش هم که سرچ توی انجمن کردم درباره WIMچیزی بدرد بخوری نیافتم که بفهمم !! اگه می شه توضیح بدهید که چگونه باید باهاش ارتباط برقرار کنم و اطلاعات را دریافت کنم و اینکه چگونه اطلاعات خاصی را ازش بکشم بیرون ؟؟(( آخه دیدم که نوشتند ، توش همه چیز پیدا می شه !! ))

فرید نجفلو
جمعه 12 اسفند 1390, 17:23 عصر
می خواستم بدونم که رشته ها را با استفاده از AscW و Asc و ChrW و Chr این توابع رمز نگاری می کنید یا اینکه خودم باید برایش تعریف کنم که چگونه رمز نگاری کنه ؟؟(( تر کیبشون هم بد نیست ))


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


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

چشم الان دم دستم نیست و تو یه پست دیگه بزودی می نویسم

فرید نجفلو
جمعه 12 اسفند 1390, 19:06 عصر
الوعده وفا
نمونه برنامه استخراج مشخصات سخت افزار توسط WMI

83588

پروژه در VS 2010 نوشته شده اگه از 2008 استفاده می کنید:
فایل با پسوند sln رو با notepad باز و تو خط اول 11.00 رو به 10.00 و تو خط دوم 2010 رو به 2008 تغییر بدین

برای مشاهده لیست نام سخت افزار ها جهت استخراج برید به اینجا (http://msdn.microsoft.com/en-us/library/windows/desktop/aa389273(v=vs.85).aspx)

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

به نظر بنده بهتره از سخت افزار های زیر استفاده کنید:
CPU
مادر بورد
بایوس
اگه برنامه تحت شبکه باشه: کارت شبکه(MAC Adrress)
و با احتیاط از هارد دیسک

سوال بود در خدمتم

tam2145
جمعه 12 اسفند 1390, 19:44 عصر
سلام فرید جان !!
گرفتم و امتحان کردم !!
واقعا که شاهکاری توی این دوره و زمونه !! کارت بیسته !!
ممنون !!
راستی الان که 2010 داری ، حداقل سیستم براش چیه ؟؟ اگه شد می خواهم نصب کنم !!
راستی چرا با احتیاط از هارد دیسک استفاده کنم !!
بعدش توی تایپک ها دیدم که میشه WMI را توی ویندوز بست ، می خواستم بدونم اگه بسته بود باید چیکار کنم !! چطوری به شرط بفهمونم که اگه بسته بود ، شرط منو انجام بده ؟؟
بعد وقتی که Win32_BaseBoard (http://msdn.microsoft.com/en-us/library/windows/desktop/aa394072%28v=vs.85%29.aspx) را نوشتی توی کد زیر چطور ورژن و ... را ازش بیرون می کشه (( منظور متغییر دوم که بعدش نوشتی )) فقط همین چند تا هست ؟؟

Descriptions = GetHarhwareDescription("Win32_BIOS", "Version")
بعدش باید بگم که اینو اشکال می گیره

dgvResults.Rows.Add({"سی پی یو", "Win32_Processor", "ID", "ProcessorId", aDescript})
باید این طوری باشه (( ببخشید !! فکر کنم با عجله نوشتید یا اینکه از 10 به 8 شده ، این طوری شده )) به هر حال :

dgvResults.Rows.Add("سی پی یو", "Win32_Processor", "ID", "ProcessorId", aDescript)

با تشکر فرید جان !!

فرید نجفلو
جمعه 12 اسفند 1390, 20:29 عصر
راستی الان که 2010 داری ، حداقل سیستم براش چیه ؟؟ اگه شد می خواهم نصب کنم !!
راستی چرا با احتیاط از هارد دیسک استفاده کنم !!

حداقل از نظر بنده برای کارایی متوسط
cpu:P4 3 GHz
Ram:1-2 GB
که فکر نکنم کمتر از این داشته باشین

قیمت : نسبت به سایر کشور ها مفت و مجانی( واسه اونا حدود 200$ تقریبا 250,000T):چشمک:



بعدش توی تایپک ها دیدم که میشه WMI را توی ویندوز بست ، می خواستم بدونم اگه بسته بود باید چیکار کنم !! چطوری به شرط بفهمونم که اگه بسته بود ، شرط منو انجام بده ؟؟

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



بعد وقتی که Win32_BaseBoard (http://msdn.microsoft.com/en-us/library/windows/desktop/aa394072%28v=vs.85%29.aspx) را نوشتی توی کد زیر چطور ورژن و ... را ازش بیرون می کشه (( منظور متغییر دوم که بعدش نوشتی )) فقط همین چند تا هست ؟؟


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

اگه دقت کنی این طوری نوشته:

class Win32_BaseBoard : CIM_Card
{
string Caption;
string ConfigOptions[];
string CreationClassName;
real32 Depth;
string Description;
real32 Height;
boolean HostingBoard;
boolean HotSwappable;
datetime InstallDate;
string Manufacturer;
string Model;
string Name;
string OtherIdentifyingInfo;
string PartNumber;
boolean PoweredOn;
string Product;
boolean Removable;
boolean Replaceable;
string RequirementsDescription;
boolean RequiresDaughterBoard;
string SerialNumber;
string SKU;
string SlotLayout;
boolean SpecialRequirements;
string Status;
string Tag;
string Version;
real32 Weight;
real32 Width;
};


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


بعدش باید بگم که اینو اشکال می گیره
من با 2010 بهاش مشکلی نداشتم!

alimanam
یک شنبه 28 اسفند 1390, 23:04 عصر
با سلام

با توجه به اینکه بعضی از پست ها تا اندازه ایی دقیق نبود تصمیم گرفتم این پست رو در این تاپیک بدم .

دوستی ( آقا فرید ) گفتن که بهتره از CPU , سریال مادربرد , بایوس و ... و در انتها با احتیاط ! از سریال هارد دیسک برای ساخت سریال کاربری در قفل های نرم افزار استفاده بشه . خوب این هم نظر بنده :

به هیچ وجه نباید از یک شناسه سخت افزاری به تنهایی برای ساخت سریال فعال سازی استفاده بشه منطق این گفته هم بسیار ساده است !
در مورد اینکه از سریال هارد دیسک استفاده نشه یا به احتیاط استفاده بشه من فکر میکنم این دوستمون سریال درایو رو با سریال واقعی هارد دیسک اشتباه گرفته باشن . چون سریال واقعی هارد دیسک به هیچ وجه ( بخوانید با ریسک بسیار زیادی ) قابل تغییر نیست تازه با روش های نرم افزاری من نشنیدم بشه عوضش کرد مگه با ریسک بالا با روش های سخت افزاری ! پس برای ساخت سریال کاربری بهترین و مطمئن ترین سریالی که میشه از یه PC به دست بیارین سریال واقعی هارد دیسک هستش حالا با هر روشی چه با استفاده از توابع API که مطمئن ترین روشه و چه با استفاده از کتابخانه های دات نت که همان استفاده نمودن از WMI هستش . ( توضیح داده شده در بالا فراموش نشه که فقط از یه شناسه کاربری برای ساخت سریال فعال سازی استفاده نشه )

توضیحات تکمیلی :

خیلی از سیستم ها سریال CPU ندارن ! دلیلش رو از کارخونه بپرسین ! امتحان کردنش هم زیاد سخت نیست کدها رو روی چندتا سیستم تست کنین متوجه میشین .
سریال مادربرد هم قضیه اش دقیقا مثل سریال CPU هستش تازه این بدتره به راحتی میشه تغییرش داد .
بایوس خوبه اما بازم مشکل اولی رو داره .

توضیحات نهایی : ( البته از دید بنده )

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

خوب زیاد ناامید نشین ! و اما یک توصیه :

بهتره به روش های دیگه متوسل بشیم یکی اش رو میگم هرکسی که دوست داره بحث رو ادامه بده البته دوست دارم نظرات همراه با مطالعه باشه شاید به یه جایی رسید همه استفاده کنیم .

به نظر من یکی از روش های نامعمول اینه که برنامه اولاً اگه راه داشته باشه به صورت ناقص ( تکه تکه شده ) به دست کاربر نهایی برسه یعنی اینکه یه برنامه مجزا کار فعال سازی برنامه اصلی رو به عهده داشته باشه نه اصل برنامه همه کاره باشه !!!!!!!!!!!

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

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

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

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

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

موفــــق باشید./

tam2145
یک شنبه 28 اسفند 1390, 23:40 عصر
سلام دوست عزیز !!

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

دقیقا در نسخه جدید قفل نرم افزاری خودم همین کار رو کردم
قضیه این قفل نرم افزاری چیه ؟؟
----------------------------------
راستی من توی تایپک ها خوندم که WMI را می شود بست ، اونوقت سریال واقعی هارد را از کجا گیر بیاریم !! بعضی از کد ها را دیدم ولی بعضی دوستان گفته اند که بعضی جا جواب نمی ده ؟؟؟ اگه می شه ، کدش ..... ؟؟!!

فرید نجفلو
یک شنبه 28 اسفند 1390, 23:53 عصر
باسلام و عرض خسته نباشید خدمت شما
اول از همه من این رو بگم که شما استاد بنده محسوب می شید و پاسخ گویی به شما وجسارت بنده رو ببخشید
شاید بهترین دلیلم این باشه که می خوام هر چه می تونم از شما و دوستان علمی آموخته باشم:

و اما در مورد بحثمون:


دوستی ( آقا فرید ) گفتن که بهتره از CPU , سریال مادربرد , بایوس و ... و در انتها با احتیاط ! از سریال هارد دیسک برای ساخت سریال کاربری در قفل های نرم افزار استفاده بشه . خوب این هم نظر بنده :

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

دوست عزیز من دقیقا گفتم که:


به نظر بنده بهتره از سخت افزار های زیر استفاده کنید:
CPU
مادر بورد
بایوس
اگه برنامه تحت شبکه باشه: کارت شبکه(MAC Adrress)
و با احتیاط از هارد دیسک



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

و قبل از اون هم بهش اشاره داشتم :



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

و این درست همون دلیلیه که واسه احتیاط کردن دارم
رو هارد دیسک تاکید داشتم چون باوجود هارد دیسک های اکسترنال احتمال دردسر زیاده چون ممکنه حین ایجاد سریال یکی از اونا متصل باشه وما از اون استفاده کنیم
و کاربر براحتی بیاد اونو جدا کرده و ...!!!



خیلی از سیستم ها سریال CPU ندارن ! دلیلش رو از کارخونه بپرسین ! امتحان کردنش هم زیاد سخت نیست کدها رو روی چندتا سیستم تست کنین متوجه میشین .
سریال مادربرد هم قضیه اش دقیقا مثل سریال CPU هستش تازه این بدتره به راحتی میشه تغییرش داد .
بایوس خوبه اما بازم مشکل اولی رو داره .




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


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


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

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


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

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

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

arash020
دوشنبه 29 اسفند 1390, 00:38 صبح
همه ی اینایی که شما گفتینو من انجام دادم
برنامه رو برای تست امنیت دادم به قسمت امنیت و ... همین سایت.
ترکونده شو برام فرستادن
یعنی همه چی پر...!:متعجب::متفکر::لبخندساد :

arash020
دوشنبه 29 اسفند 1390, 00:45 صبح
همه ی اینایی که شما گفتینو من انجام دادم
برنامه رو برای تست امنیت دادم به قسمت امنیت و ... همین سایت.
ترکونده شو برام فرستادن
یعنی همه چی پر...!:متعجب::متفکر::لبخندساد :

فرید نجفلو
دوشنبه 29 اسفند 1390, 01:19 صبح
همه ی اینایی که شما گفتینو من انجام دادم
برنامه رو برای تست امنیت دادم به قسمت امنیت و ... همین سایت.
ترکونده شو برام فرستادن
یعنی همه چی پر...!:متعجب::متفکر::لبخندساد :

__________________________________________________ _________


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






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

alimanam
پنج شنبه 03 فروردین 1391, 00:41 صبح
با سلام و تبریک سال نو

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

خوب برسیم سر اصل مطلب :

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

در مورد این که در بحث شیرین شما شرکت کنم چشم اگر نکته ایی بود که فکر میکنین من میتونم کمتون کنم دریغ نمیکنم .

موفــــــــــق باشید./

hakim22
پنج شنبه 03 فروردین 1391, 12:37 عصر
به نظر من هیچوقت برنامه ی کامل رو تحویل نده
برنامه دو نسخه ی جدا کامپایل بشه راحت تره ، بالاخره مخصوصا اگه حجمش کم باشه یک زحمتی برای ثبتش باید کشیده بشه ، هرکسی راضی بود نسخه ی کامل را دوباره درخواست کنه
با همه تنظیمات زمانی به راحتی بازی میشه ، حتی کرک ویندوز سون هم روش اصلی کارش به همین شکله

من خودم یک کدی برای دریافت شماره سریال های مربوط به Mac Addreess، و CPUو هارد دیسک و مادر بورد دارم که با ترکیبشون و تجزیشون توی یک روش خاص یک کد 16 رقمی بیرون میاد و با قرار دادنش توی یک فرمولی که خودم در آوردم ( با کمک روش AES ) یک رمز با هر تعداد رقمی که خودم دلم می خواد ( معمولا 8 تایی ) یک شماره سریال درست می کنم.
هر وقت کسی زنگ میزنه اون کد 16 رقمی رو میده و این کد 8 تایی رو تحویل می گیره ، من یک برنامه ی دیگه هم دارم که اون اعداد 16 رقمی رو به کد های 8 رقمی تبدیل می کنه که برای گوشیم هم طراحیش کردم و در هر جا می تونم کد سریال برنامه رو تحویل بدم.

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