# Native Code > برنامه نویسی در 6 VB >  گذاشتن محدودیت در برنامه

## saeid12

سلام مجدد.
من این روزا خیلی مزاحم شما دوستان میشم ولی چه کنم تنها منبعی که میشناسم اینجاست.
این بار مخواستم بپرسم چطوری کاری کنم که برنامم بعد از نصب 12 روز دیگش در صورت رجیستر نشدن بپره و دوباره نصب نشه (البته منظور از اینکه دوباره نصب نشه اینه که تو یه ویندوز دوبار نصب نشه مثل adobe audition)
باز هم تشکر از شما اساتید.

----------


## mpmsoft

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

----------


## saeid12

> خوب کاملا مشخصه شما می تونید یک یا چند کلید در رجیستری بندازید و توسط اون این کارو انجام بدید


میشه واضح تر بگین من چیزی نفهمیدم.
با مثال باشه ممنون میشم.

----------


## s_ahmadneya

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

----------


## Pr0grammer

> خوب کاملا مشخصه شما می تونید یک یا چند کلید در رجیستری بندازید و توسط اون این کارو انجام بدید






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


این روش کاملاً اشتباست!
با مثال این رو براتون روشن میکنم :
فکر کنید من الان برنامه شما رو گرفتم و نصب کردم، خب، شما فایل یا کلیدهای توی رجیستری رو با Setup برنامه تون ایجاد می کنید! پس وقتی برنامه نصب شد توی رجیستری مثلاً یه مقدار با نام a میشه که مقدار 1 داره!
بعد از 12 روز مقدار اون کلید a رو می کنید 0 ! خب من میام برنامه رو دوباره uninstall و دوباره install می کنم!  :لبخند گشاده!:  
خب، کلید رجیستری a دوباره 1 میشه و برنامه اجرا میشه! حتی ممکنه یه کرکر اون کلید رو توی رجیستری تشخیص بده!

موفق باشید

----------


## s_ahmadneya

> این روش کاملاً اشتباست!
> با مثال این رو براتون روشن میکنم :
> فکر کنید من الان برنامه شما رو گرفتم و نصب کردم، خب، شما فایل یا کلیدهای توی رجیستری رو با Setup برنامه تون ایجاد می کنید! پس وقتی برنامه نصب شد توی رجیستری مثلاً یه مقدار با نام a میشه که مقدار 1 داره!
> بعد از 12 روز مقدار اون کلید a رو می کنید 0 ! خب من میام برنامه رو دوباره uninstall و دوباره install می کنم!  
> خب، کلید رجیستری a دوباره 1 میشه و برنامه اجرا میشه! حتی ممکنه یه کرکر اون کلید رو توی رجیستری تشخیص بده!
> 
> موفق باشید


باتشکر از این دوست عزیز اولا" در ستاب برنامه ما این رجستر را قرار نمی دهیم .بطوری که هنگام ساخت ستاپ این ساخت وریخت در رجستری را قرار نمی دهیم .بنابراین درهنگام install و uninstall این رجستری حذف نمی شود و همین طور درمورد فایل
و اما
در موقعه بالا اومدن برنامه ما این کنترل رجستر را انجام میدهیم وپیامهای مناسب را ارسال می دهیم.
درمورد هکر هم راست گفتید ممکنه.! که می شه با کمی پیچیده عمل کردن مثلا در نوشتن در جاهای استاندارد ومورد استفاده ویا حتی با تشابه اسمی کار برای هکر را مشکل کرد . اما صددرصد تضمینی است و در 99% جواب می دهد .بدیهی است ازرجستر شمانباید تشابه اسمی با پروژه ات داشته باشد.باتشکر اسماعیل احمدنیا :متفکر:

----------


## saeid12

> بعد از 12 روز مقدار اون کلید a رو می کنید 0 ! خب من میام برنامه رو دوباره uninstall و دوباره install می کنم!


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

----------


## Pr0grammer

سرچ کنید، قبلاً بحث شده :
https://barnamenevis.org/showth...ighlight=Trial

----------


## aslan

سلام دوستان

مشکل من بی ارتباط با این موضوع نیست برای همین تو این تاپیک مطرح میکنم

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

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

وقتی روی client برنامه را اجرا میکنم وجود یا عدم وجود کلید را در رجیستری ویندوز client بررسی میکنه نه رجیستری ویندوز سرور  -   چه جوری میشه این موضوع را حل کرد  یعنی برنامه کلید مربوطه را در سرور جستجو بکنه نه در رجیستری client

----------


## Payman62

سلام.
قرار دادن کلید در رجیستری یا نوشتن در فایل به راحتی قابل  کرک هست. نرم افزار های filemon و regmon برای همین کار هستن. مسیرهایی که برنامه کلید یا فایل ایجاد میکنه رو به ما نشون میده و به راحتی میشه برنامه رو کرک کرد. درسته میشه کار رو پیچوند تا سخت تر کرک شه ولی به هر حال هر برنامه ای قابل کرک هست.
ولی شما میتونی یه کاری کنی. یه ورژن دمو از برنامت بده بیرون که محدودیت هایی داشته باشه. یه فول ورژن پولی هم بده بیرون.

----------


## mpmsoft

دوست عزیز شما چرا یکم خودت وقت نمی ذاری و تحقیق نمی کنی

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

در ضمن می تونی CRC اطلاعات هارد سیستمو تو بانک بنویسی که فقط برنامه روی همون کامپیوتر کار کنه

این کارها خیلی سادست من نمی دونم چرا فقط می گید نمی شه

----------


## saeid12

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


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

----------


## Pr0grammer

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


این راهی که می گم رو چک کنید (هرچند زیاد مطمئن نیست اما میتونه کارتونو راه بندازه!)

* زمان اجرای برنامه (اولین بار) در یک مسیر (مثلاً system32) یه فایل txt یا ini یا .... ایجاد کن، تاریخ روز رو با مدت زمانی که می خوای برنامه اجرا بشه جمع کن و تاریخ بدست اومده رو توی فایل بریز!
* هر دفعه که برنامه رو اجرا می کنی، تاریخ روز رو با اون تاریخ درون مسیر چک کن، اگه کوچیکتر یا مساوی بود برنامه اجرا بشه! اما اگه تاریخ روز از اون تاریخ درون فایل بزرگتر بود،برنامه باز نشه!

نکات :
* موقع نصب برنامه فایل ایجاد نشده تا اگه دوباره نصبش کردند، فایل هم Refresh بشه!
* برای اینکه بدونی برنامه برای اولین بار اجرا میشه یا نه! می تونی از FileExist استفاده کنی! اگه فایل وجود نداشت، اولین بار بوده و اگه وجود داشت برنامه قبلاً باز شده!
* اگه برنامه رو Uninstall کنن فایل حذف نمیشه، پس اگه دوباره برنامه رو نصب کنند فایده ای به حالشون نداره، چون فایل با تاریخ انقضاء برنامه هست!

*اما:*
اگه ویندوز رو پاک کنن و دوباره نصب کنند! اطلاعات درون system32 حذف میشه! پس فایل شما هم نیست! {البته این دیگه طبیعیه چون Kaspersky هم همینطوریه خب!!!}

موفق باشید

----------


## saeid12

> این راهی که می گم رو چک کنید (هرچند زیاد مطمئن نیست اما میتونه کارتونو راه بندازه!)
> 
> * زمان اجرای برنامه (اولین بار) در یک مسیر (مثلاً system32) یه فایل txt یا ini یا .... ایجاد کن، تاریخ روز رو با مدت زمانی که می خوای برنامه اجرا بشه جمع کن و تاریخ بدست اومده رو توی فایل بریز!
> * هر دفعه که برنامه رو اجرا می کنی، تاریخ روز رو با اون تاریخ درون مسیر چک کن، اگه کوچیکتر یا مساوی بود برنامه اجرا بشه! اما اگه تاریخ روز از اون تاریخ درون فایل بزرگتر بود،برنامه باز نشه!
> 
> نکات :
> * موقع نصب برنامه فایل ایجاد نشده تا اگه دوباره نصبش کردند، فایل هم Refresh بشه!
> * برای اینکه بدونی برنامه برای اولین بار اجرا میشه یا نه! می تونی از FileExist استفاده کنی! اگه فایل وجود نداشت، اولین بار بوده و اگه وجود داشت برنامه قبلاً باز شده!
> * اگه برنامه رو Uninstall کنن فایل حذف نمیشه، پس اگه دوباره برنامه رو نصب کنند فایده ای به حالشون نداره، چون فایل با تاریخ انقضاء برنامه هست!
> ...


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

----------


## Pr0grammer

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


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

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

===========================
اجرای برنامه برای اولین بار:
متن فایل تاریخ انقضا = 1387/9/8 :
متن فایل تاریخ درست = 1387/9/20
==========================

اجرای برنامه برای بارهای بعدی:

چک کردن موقع اجرا : 

*اگر تاریخ سیستم <> متن فایل تاریخ درست آنوقت   * 
   نمایش پیغام "تاریخ سیستم نادرست است"
*در غیر اینصورت    * 
  اگر تاریخ سیستم =< متن فایل تاریخ انقضا آنوقت
      اجرای برنامه و جایگزینی تاریخ سیستم در فایل تاریخ درست
   در غیر اینصورت
      نمایش  پیغام "مدت اعتبار برنامه به پایان رسیده است."
   پایان شرط*
پایان شرط*

======================

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

----------


## s_ahmadneya

> سلام مجدد.
> من این روزا خیلی مزاحم شما دوستان میشم ولی چه کنم تنها منبعی که میشناسم اینجاست.
> این بار مخواستم بپرسم چطوری کاری کنم که برنامم بعد از نصب 12 روز دیگش در صورت رجیستر نشدن بپره و دوباره نصب نشه (البته منظور از اینکه دوباره نصب نشه اینه که تو یه ویندوز دوبار نصب نشه مثل adobe audition)
> باز هم تشکر از شما اساتید.


با سلام 
1-اولا" یکی از دلایل در اختیار گذاشتن مجانی برنامه این است که از مزایا آن مطلع وحریص برای خرید ان باشند بنابراین زیاد نگران نصب چندین باره ان نباش اگه لازم باشه می خرند.
2- برای اینکه از برنامه ات استفاده کنند و متوجه مزایا ان بشوند فقط به تعداد روزهای نصب توجه نکن . من یه برنامه دیدم که زمان موثر استفاده 50ساعت را ملا ک قرار داده بود. شما هم می تونی این کاررو بکنی.
3-من خودم روی تعداد رکوردها قفل می گذارم مثلا" تا 1000رکورد مجاز است مجانی استفاده بکند وبعد ان باید بخرد.
4-یکی از راههای قفل گذاری اینه که در فایل exe ات زمان را یاداشت کنی .زیاد مشکل نیست.ویا در یکی از فایلهای dllات .ویا چندتا طریقه اینکار در سایت اومده سرچ کن پیدا می کنی.
5- خلاصه اینکه هدف خرید برنامه است .این را اصل قرار بده وبا استفاده از مطالب مطرح شده حتما به نتیجه می رسی موفق باشید

----------


## saeid12

> با سلام 
> 1-اولا" یکی از دلایل در اختیار گذاشتن مجانی برنامه این است که از مزایا آن مطلع وحریص برای خرید ان باشند بنابراین زیاد نگران نصب چندین باره ان نباش اگه لازم باشه می خرند.
> 2- برای اینکه از برنامه ات استفاده کنند و متوجه مزایا ان بشوند فقط به تعداد روزهای نصب توجه نکن . من یه برنامه دیدم که زمان موثر استفاده 50ساعت را ملا ک قرار داده بود. شما هم می تونی این کاررو بکنی.
> 3-من خودم روی تعداد رکوردها قفل می گذارم مثلا" تا 1000رکورد مجاز است مجانی استفاده بکند وبعد ان باید بخرد.
> 4-یکی از راههای قفل گذاری اینه که در فایل exe ات زمان را یاداشت کنی .زیاد مشکل نیست.ویا در یکی از فایلهای dllات .ویا چندتا طریقه اینکار در سایت اومده سرچ کن پیدا می کنی.
> 5- خلاصه اینکه هدف خرید برنامه است .این را اصل قرار بده وبا استفاده از مطالب مطرح شده حتما به نتیجه می رسی موفق باشید


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

----------


## Pr0grammer

> دوست عزیز من الان برنامم بعد 30 بار باز شدن خود به خود پاک میشه 
> البته چون نتونستم از راه تاریخ این کارو کنم اینطوریش کردم


بله؟!  :متعجب: 
یعنی اگه توی سه روز برنامه رو به هر دلیلی طرف 30 بار باز کرد، برنامه می پره؟!  :متفکر: 
روشی که گفتم اشکالی داشت؟!

----------


## saeid12

> بله؟! 
> یعنی اگه توی سه روز برنامه رو به هر دلیلی طرف 30 بار باز کرد، برنامه می پره؟! 
> روشی که گفتم اشکالی داشت؟!


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

----------


## Nima NT

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

----------


## Pr0grammer

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


مشکل نداره!

----------


## mahmood_s

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

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

1 - ریجستری   2 - فایل های dat  و 3 - فایل های سیستمی

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


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


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

مثل فرم ورود کاربر و فرم اصلی برنامه و ...

موفق باشید

----------


## mahmood_s

یه سری هم به آدرس زیر بزن

https://barnamenevis.org/showpo...&postcount=124

----------


## saeid12

> ممنون میشم اگر مشخص کنید که درجه حساسیت موضوع برای شما چقدره ؟ یعنی چقدر امنیتی که مد نظر شما هست براتون مهمه , اینطوری بهتر میشه کمک کرد , چون فکر کنید الان شما دارید این راه ها رو پیشنهاد میکنید و دوستان هم نظر میدن , کسی نگفت که چطوری میشه از این تکنیک ها رد شد , به همین خاطر میگم که آیا در مورد رد کردن و شکستن اونها هم بحث بکنیم یا خیر ؟
> این سوال رو به این خاطر پرسیدم تا یه وقت کسی دچار سوء تفاهم نشه و به کسی اهانت نکرده باشم , چون از میانه های بحث وارد شدم.


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

----------


## aslan

دوستان كسي به اين سوال من جوابي نداره ؟

سلام دوستان

مشکل من بی ارتباط با این موضوع نیست برای همین تو این تاپیک مطرح میکنم

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

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

وقتی روی client برنامه را اجرا میکنم وجود یا عدم وجود کلید را در رجیستری ویندوز client بررسی میکنه نه رجیستری ویندوز سرور - چه جوری میشه این موضوع را حل کرد یعنی برنامه کلید مربوطه را در سرور جستجو بکنه نه در رجیستری client

----------

