PDA

View Full Version : ایجاد کد یونیک واقعی برای کامپیوتر



golbafan
یک شنبه 20 دی 1394, 22:02 عصر
سلام
از اونجایی که تولید قفل های نرم افزاری یکی از روشهای مورد علاقه و ارزان برای برنامه نویسان هست بنده یک کتابخانه dll با دلفی نوشتم که میتونید برای پیداکردن کد یونیک سیستم ازش استفاده کنید. همونطور که میدونید تولید کد یونیک پایه و اساس قفل های نرم افزاری هست

دوتا مثال هم براتون گزاشتم. یکی برای برنامه نویسان managed) .net) و یکی هم برای دوستان native یا (un-managed)

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


سوالی اگر بود در خدمتم...

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

golbafan
یک شنبه 20 دی 1394, 22:30 عصر
خب حالا اصلا بزار ببینیم باید چه سناریویی رو برای استفاده بکار ببریم؟

1- خروجی این ماژول رو طبق مثالها مستقیماً بگیرید و در برنامه به کاربر نمایش بدید
2- برنامه شما این خروجی رو به کاربر میده و کاربر هم اون رو برای شما میفرسته (ایمیل یا sms)
3- حالا شما میتونید خروجی که کاربر به شما داده با هر الگوریتم دلخواه (و صد البته سرّی و منحصر به فرد) هش کنید

مثلا کاربر به شما اینو میده:
E8DC9530D4AEBC046F7733455C10D4E2AA434DAE
بعد شما مثلا در کیجین خودتون که سرّی هم هست، اون رو مثلا 10 بار با روش md5 و استفاده از salt هش کنید تا به این برسید:
مثلا : 55C46F77334D4D4AEBE2A10C0A

4- حالا اگر کاربر هزینه رو پرداخت کرد این کلید فعالساز رو بهش میدید
(اینکار میتونه توسط وب سرویس و بطور اتومات انجام بشه مشابه خرید شارژ از سایت همراه اول)

5- در برنامه شما هم همون عمل (مثلا 10 بار با روش md5 و استفاده از salt) باید بطور مخفیانه و امن اتفاق بیافته تا برنامه هم دقیقا برسه به همین کد مثال: 55C46F77334D4D4AEBE2A10C0A

6- دیگه بقیش رو هم خودتون باید فکری براش بکنید:لبخند: مثلا اگر این دو کد (کد تولید شده توسط برنامه و کد ارسالی از طرف شما) برابر بود برنامه فعال بشه

pcrlth0n
دوشنبه 21 دی 1394, 08:24 صبح
سلام.
تاثیر مرحله ی دومی که میاد و ۱۰ بار دیگه تغییرش میده رو نفهمیدم. چونکه آخر میاد و اون مقایسه رو انجام میده.
کدی که توی سیستم ما تولید میشه چه ۱۰ بار چه ۱۰۰۰ بار تغییر کنه تفاوتی نداره.
روش تولید ۲ رشته یکسان در دو طرف (server and client) و مقایسه اونها ابتدایی ترین روش هستش. کافیه خروجی توی سیستم خودمون رو پیدا کنیم و بعنوان ورودی بهش بدیم:)
به هر حال میتونید توسعش بدید و یه چیز بهتر ارایه بدید.
موفق باشید

hamid-nic
دوشنبه 21 دی 1394, 08:30 صبح
سلام
از اونجایی که تولید قفل های نرم افزاری یکی از روشهای مورد علاقه و ارزان برای برنامه نویسان هست بنده یک کتابخانه dll با دلفی نوشتم که میتونید برای پیداکردن کد یونیک سیستم ازش استفاده کنید. همونطور که میدونید تولید کد یونیک پایه و اساس قفل های نرم افزاری هست

دوتا مثال هم براتون گزاشتم. یکی برای برنامه نویسان managed) .net) و یکی هم برای دوستان native یا (un-managed)

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

لینک دانلود:
http://uploadboy.me/hr3itwpwww1b/golbafan_uniq_hardware_id.rar

سوالی اگر بود در خدمتم...

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

به عنوان ویروس شناخته شد :ناراحت:

golbafan
سه شنبه 22 دی 1394, 23:02 عصر
سلام.
تاثیر مرحله ی دومی که میاد و ۱۰ بار دیگه تغییرش میده رو نفهمیدم. چونکه آخر میاد و اون مقایسه رو انجام میده.
کدی که توی سیستم ما تولید میشه چه ۱۰ بار چه ۱۰۰۰ بار تغییر کنه تفاوتی نداره.
روش تولید ۲ رشته یکسان در دو طرف (server and client) و مقایسه اونها ابتدایی ترین روش هستش. کافیه خروجی توی سیستم خودمون رو پیدا کنیم و بعنوان ورودی بهش بدیم:)
به هر حال میتونید توسعش بدید و یه چیز بهتر ارایه بدید.
موفق باشید

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

برای همین کلی کلمه "مثلا" اونم با فونت قرمز نوشتم

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

با اینحال متشکرم

golbafan
سه شنبه 22 دی 1394, 23:03 عصر
به عنوان ویروس شناخته شد :ناراحت:

این که فقط یک dll هست!

مطمئن هستی که سیستم خودت ویروسیش نکرده؟؟؟

rahmatipoor
چهارشنبه 23 دی 1394, 08:56 صبح
با سلام و تشکر از شما
این کدی که گذاشتید توی همه ویندوزها مثلا ویندوز 8 , 7 و xp کد یکسان میده؟
چون الآن نمونه کدهایی که توی اینترنت هست و من چند ساله دارم توی نرم افزارهای تجاری استفاده میکنم ، بعضی وقتها کد های مختلف میده . مثلا اگه ویندوز 32 بیتی باشه یا 64 بیتی فرق میکنه یا اینکه توی ویندوز 7 اگه حالت user Acount Control رو تغییر بدیم کد تغییر میکنه ؟ توی این حالت دلیلش هم اینه که ظاهرا مجوز دسترسی به سریال هارد با تغییر UAC توسط سیستم عامل داده نمیشه?
کلا اگه یک کد یونیک بده که توی همه حالتها ثابت باشه ، خیلی کمک بزرگی به ما کردید.

hamid-nic
چهارشنبه 23 دی 1394, 09:13 صبح
این که فقط یک dll هست!

مطمئن هستی که سیستم خودت ویروسیش نکرده؟؟؟

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

golbafan
چهارشنبه 23 دی 1394, 09:14 صبح
با سلام و تشکر از شما
این کدی که گذاشتید توی همه ویندوزها مثلا ویندوز 8 , 7 و xp کد یکسان میده؟
چون الآن نمونه کدهایی که توی اینترنت هست و من چند ساله دارم توی نرم افزارهای تجاری استفاده میکنم ، بعضی وقتها کد های مختلف میده . مثلا اگه ویندوز 32 بیتی باشه یا 64 بیتی فرق میکنه یا اینکه توی ویندوز 7 اگه حالت user Acount Control رو تغییر بدیم کد تغییر میکنه ؟ توی این حالت دلیلش هم اینه که ظاهرا مجوز دسترسی به سریال هارد با تغییر UAC توسط سیستم عامل داده نمیشه?
کلا اگه یک کد یونیک بده که توی همه حالتها ثابت باشه ، خیلی کمک بزرگی به ما کردید.

سلام
خواهش میکنم!
یک دوست ازم خواست و من براش این ماژول رو تولید کردم...
از سریال نامبر هارد دیسک استفاده نمیشه
با اینحال تست کنید :-)

golbafan
چهارشنبه 23 دی 1394, 09:17 صبح
من اون نمونه ی شما را اجرا کردم Avast به عنوان ویروس شناخت و از اجرا شدندش جلوگیری کرد .

سلام
اون نمونه رو اپن سورس گذاشتم
میتونید خودتون کامپایلش کنید :-)

rahmatipoor
چهارشنبه 23 دی 1394, 14:54 عصر
تشکر از پاسخ شما
حتما تست می کنم و نتیجه رو به اطلاع میرسونم

golbafan
سه شنبه 29 دی 1394, 21:44 عصر
سلام
تونستید تست کنید؟

rahmatipoor
سه شنبه 29 دی 1394, 22:42 عصر
سلام
متاسفانه هنوز فرصت نشده
یه مقدار مشغله زیاد شده

golbafan
سه شنبه 27 بهمن 1394, 14:25 عصر
من تست کردم مشکل نداره :-)

rahmatipoor
چهارشنبه 28 بهمن 1394, 01:11 صبح
ببخشید
من یک نرم افزار داشتم مشتریها خیلی فشار می آوردن باید زود تکمیل میشد
جسارتا" میشه بفرمایید توی چه حالتهایی تست کردید؟
1. توی مود 32 و 64 بیت یک نوع ویندوز خاص
2. روی یک کامیوتر واحد با ویندوزهای مختلف : ایکس پی ، 7 ، 8 و درصورت امکان 10
به عنوان مثال من یک برنامه دارم که کد یونیکی که ایجاد میشه توی ویندوز 32 بیت یک کده و 64 بیت یه کد دیگه
کدهایی رو هم که استفاده کردم توی خیلی سایتها گشتم ، تقریبا همه همونها رو گفتن

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



5- در برنامه شما هم همون عمل (مثلا 10 بار با روش md5 و استفاده از salt) باید بطور مخفیانه و امن اتفاق بیافته تا برنامه هم دقیقا برسه به همین کد مثال: 55C46F77334D4D4AEBE2A10C0A




منظورتون از کلمه امن که اینجا گفتید چیه؟

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

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

rahmatipoor
چهارشنبه 28 بهمن 1394, 02:17 صبح
همچنین یه سوال دیگه از خدمتتون دارم
من با سی شارپ کار میکنم و فایل اجرایی نرم افزارها رو قبل از تحویل به مشتریها با استفاده از یه نرم افزار مبهم ساز ( Eziriz .NET Reactor ) کد میکنم ( برای جلوگیری از هک شدن نرم افزار )
چند وقت قبل یه کسی تماس گرفته بود که توی زمینه قفل نرم افزاری کار می کرد، به من می گفت که هر کدوم از نرم افزارهای ایرانی رو ( حتی نرم افزارهای شرکت های بزرگ رو ) که میخواهید انتخاب کنید تا اون طرف به من نشون بده که ظرف چند دقیقه هک میشه. حتی میگفت که من میتونم با تیم ویوور وصل شم و مراحل هک رو هم ببینم که من پیگیر نشدم
همچنین قفلهای سخت افزاری tiny رو هم میگفت که به راحتی کپی میشن
می خواستم اگه اطلاعاتی دارید در این مورد راهنمایی کنید و اینکه واقعا اینجوریه؟

rahmatipoor
چهارشنبه 28 بهمن 1394, 02:28 صبح
کد رو توی ویندوز ایکس پی 32 بیت اجرا کردم. خطا زیر رو نشون داد :

http://s6.picofile.com/file/8239262942/Error.JPG

rahmatipoor
چهارشنبه 28 بهمن 1394, 02:43 صبح
پیشنهاد میکنم کلیه دوستانی که این مطالب رو دنبال میکنن و روی کامپیوترشون بیشتر از یک ویندوز دارن ، کد آقای گلبافان رو دانلود و روی سیستم خودشون اجرا کنند و نتیجه رو اینجا اطلاع رسانی کنند

من برای راحت شدن کار فایل آقای گلبافان رو اینجا گذاشتم

http://s6.picofile.com/file/8239263634/Uniqe_Code.rar.html

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

http://s7.picofile.com/file/8239267026/Help.JPG

rahmatipoor
چهارشنبه 28 بهمن 1394, 02:54 صبح
به آقای مهندس گلبافان عزیز هم که ثابت کردن در کمک به دوستان برنامه نویس از هیچ کمکی مضایقه نمی کنن و زکات علم بالا و تجربه های مفیدشون رو به راحتی و بدون هیچ منتی در اختیار دوستان قرار میدن پیشنهاد می کنم که این تاپیک رو با کمک و همراهی شما ادامه و گسترش بدیم تا در صورت امکان به یک سیستم فعالسازی نرم افزاری خوب و انشاالله غیرقابل هک برای نرم افزارهای ایرانی برسیم

golbafan
چهارشنبه 28 بهمن 1394, 04:53 صبح
ببخشید
من یک نرم افزار داشتم مشتریها خیلی فشار می آوردن باید زود تکمیل میشد
جسارتا" میشه بفرمایید توی چه حالتهایی تست کردید؟
1. توی مود 32 و 64 بیت یک نوع ویندوز خاص
2. روی یک کامیوتر واحد با ویندوزهای مختلف : ایکس پی ، 7 ، 8 و درصورت امکان 10
به عنوان مثال من یک برنامه دارم که کد یونیکی که ایجاد میشه توی ویندوز 32 بیت یک کده و 64 بیت یه کد دیگه
کدهایی رو هم که استفاده کردم توی خیلی سایتها گشتم ، تقریبا همه همونها رو گفتن

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




منظورتون از کلمه امن که اینجا گفتید چیه؟

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

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

سلام من روی 4 تا سیستم عامل تست کردم
7x64
8x86
8.1x64
10x64


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

golbafan
چهارشنبه 28 بهمن 1394, 04:57 صبح
کد رو توی ویندوز ایکس پی 32 بیت اجرا کردم. خطا زیر رو نشون داد :

کتابخانه GolbafanUHID.dll بصورت 32 بیتی هست اما برنامه تست شما احتمالا 64 بیتی کامپایل شده
کافیه تنظیمات کامپایلرتون رو تغییر بدید به 32 بیتی و مجدد کامپایل کنید

golbafan
چهارشنبه 28 بهمن 1394, 05:06 صبح
همچنین یه سوال دیگه از خدمتتون دارم
من با سی شارپ کار میکنم و فایل اجرایی نرم افزارها رو قبل از تحویل به مشتریها با استفاده از یه نرم افزار مبهم ساز ( Eziriz .NET Reactor ) کد میکنم ( برای جلوگیری از هک شدن نرم افزار )
چند وقت قبل یه کسی تماس گرفته بود که توی زمینه قفل نرم افزاری کار می کرد، به من می گفت که هر کدوم از نرم افزارهای ایرانی رو ( حتی نرم افزارهای شرکت های بزرگ رو ) که میخواهید انتخاب کنید تا اون طرف به من نشون بده که ظرف چند دقیقه هک میشه. حتی میگفت که من میتونم با تیم ویوور وصل شم و مراحل هک رو هم ببینم که من پیگیر نشدم
همچنین قفلهای سخت افزاری tiny رو هم میگفت که به راحتی کپی میشن
می خواستم اگه اطلاعاتی دارید در این مورد راهنمایی کنید و اینکه واقعا اینجوریه؟

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

اما...
میشه یک کارایی کرد :لبخند:

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

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

حالا قیافه هکر: :افسرده::عصبانی++::گریه:

golbafan
چهارشنبه 28 بهمن 1394, 05:09 صبح
دوستان میتونن تجربیات خودشون رو از استفاده قفل نرم افزاری و سخت افزاری اینجا مطرح کنند که بسیار مفید هست ...

ghasem110deh
چهارشنبه 19 اسفند 1394, 10:30 صبح
سلام به همه ...
من روی چند تا سیستم مختلف امتحان کردم و کد تکراری تا حالا نداده :)
منتها وقتی برنامه رو مبهم میکنی (با مبهم ساز ها) یا پروتکت میکنی ... موقع اجرا خطا میده !

golbafan
پنج شنبه 20 اسفند 1394, 03:15 صبح
نسخه جدید برای استفاده در کامپایلرهای 64 بیتی و 32 بیتی بطور مجزا

golbafan
شنبه 15 خرداد 1395, 11:28 صبح
لینک ها در پست اول آپدیت شده است