PDA

View Full Version : محل مخفی برای ذخیره کد فعال سازی



milad.biroonvand
شنبه 25 شهریور 1391, 21:07 عصر
سلام

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

irana8
شنبه 25 شهریور 1391, 21:22 عصر
بهترین محل استفاده از ریجستری ویندوزه.

barnamenevisjavan
شنبه 25 شهریور 1391, 23:40 عصر
رجیستری کاملا اشتباهه از دیتابیس رمز گزاری شده استفاده کنید تا حالا دیتابیس هارو نتونستن رمزشو بشکنن

danialafshari
یک شنبه 26 شهریور 1391, 00:09 صبح
در رجیستری می تونی ، در دیتا بیس هم میشه. در System32 هم میشه ولی بهتره جایی بذاری که با حذف ویندوز فعالسازی از بین بره مثل تمامی نرم افزار ها
System.IO.File.Create(Environment.SystemDirectory + @"\FileName.pasvand");

milad.biroonvand
یک شنبه 26 شهریور 1391, 00:13 صبح
سلام

بله رجیستری اشتباهه و با مانیتورینگ کاملا میتونیم پیداش کنیم ، روشی دیگه بنام my.setting وجود داره که اونهم یکسری مشکلات داره ، دیتابیس رو میشه بصورت باینری رمز نگرای کرد مثلا از روش ads ، فک کنم هم همین روش خیلی خوب باشه ، اس کیو ال خودش اتوماتیک اینکار رو میکرد ولی من الان از اکسس استفاده می کنم .

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


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

milad.biroonvand
یک شنبه 26 شهریور 1391, 00:16 صبح
در رجیستری می تونی ، در دیتا بیس هم میشه. در System32 هم میشه ولی بهتره جایی بذاری که با حذف ویندوز فعالسازی از بین بره مثل تمامی نرم افزار ها
System.IO.File.Create(Environment.SystemDirectory + @"\FileName.pasvand");

اگر جایی باشیم که ادمین نباشه ، نه رجیستری کار میده و نه system32 درسته ؟

danialafshari
یک شنبه 26 شهریور 1391, 00:24 صبح
اگر جایی باشیم که ادمین نباشه ، نه رجیستری کار میده و نه system32 درسته ؟

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

milad.biroonvand
یک شنبه 26 شهریور 1391, 06:04 صبح
فکر نمی کنم اینطور باشه
یه سورس الگوریتم md5 برات میذارم که خیلی عالیه

سلام
چک میکنم نتیجه رو میگم

ehsan7007
یک شنبه 26 شهریور 1391, 10:30 صبح
مشکل شما ، مکان رمزه ، یا نمایش ندادن دوباره ی فرم؟!
می تونید یک Settings ایجاد کنید !
بسته به مقدارتون!

موفق باشید.

samadblaj
یک شنبه 26 شهریور 1391, 10:46 صبح
به نظر منم بهتریم روش استفاده از دیتابیس و استفاده از الگوریتم رمز نگاری غیر بازگشتی MD5 هستش.

milad.biroonvand
یک شنبه 26 شهریور 1391, 10:47 صبح
هم مکان رمز و هم نمایش ندادن دوباره فرم ، بطوریکه با شبیه سازی کرکر ها یا حتی افراد کمی با تخصص کار رو دور نزنن . setting یکسری مشکلات داره و ضعیفه .


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

موفق باشید.

milad.biroonvand
یک شنبه 26 شهریور 1391, 10:48 صبح
به نظر منم بهتریم روش استفاده از دیتابیس و استفاده از الگوریتم رمز نگاری غیر بازگشتی MD5 هستش.

منظورت هش هست ، راهکارت برای استفاده از هش به چه صورت هست ؟

ehsan7007
یک شنبه 26 شهریور 1391, 11:05 صبح
من درست متوجه نشدم ؛ شما چه نوع رمزی دارید؟
مثلا برای ورود به برنامس ، یا به عنوان لایسنس؟

milad.biroonvand
یک شنبه 26 شهریور 1391, 11:20 صبح
من درست متوجه نشدم ؛ شما چه نوع رمزی دارید؟
مثلا برای ورود به برنامس ، یا به عنوان لایسنس؟

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

samadblaj
یک شنبه 26 شهریور 1391, 11:28 صبح
منظورت هش هست ، راهکارت برای استفاده از هش به چه صورت هست ؟
شما اون کدتون رو توسط MD5 هاش کنید و توی دیتابیس ذخیره میکنید (شما نمیتونید توست هیچ کدی این مقدار رو برگردونید غیر بازگشتی ست).
بعد از وارد کردن کد صحیح توسط کاربر کد کاربر هاش میشه و با کد هاش شده شما در دیتابیس مقایسه میشه اگه برابر بود عدد صحیح رو بر میگردونه و یه فیلد دیگه هم به عنوان مثلا Status در کنار فیلد کد هاش شده در دیتابیست بزار که بعد از اینکه کد هاش شده صحیح بود مقدار فیلد Status رو برایر با full کنه دیگه هر وقت بخواد وارد برنامه بشه مقدار Status رو چک میکنه ببینه full هست...

Farshid007
یک شنبه 26 شهریور 1391, 11:43 صبح
بهترین مکان در Setting.Setting هستش
البته اونجا هم به صورت رمز نگاری شده

vaheeed
یک شنبه 26 شهریور 1391, 11:56 صبح
به نظر من یه الگوریتم رمز دستی بنویس خیلی ساده ولی با روش خاص خودت زیاد سخت نیست بعد کد رمز شده رو هم اصلا بزار عنوان صفحت که همه ببنن!!!! اگه از توابع معمول واسه هش کردن استفاده کنی کد هش شده رو اگه کسی پیدا کنه راحت داخل سایت میزنی کد رو بهت میده مخصوصا MD5!!!

milad.biroonvand
یک شنبه 26 شهریور 1391, 12:51 عصر
شما اون کدتون رو توسط MD5 هاش کنید و توی دیتابیس ذخیره میکنید (شما نمیتونید توست هیچ کدی این مقدار رو برگردونید غیر بازگشتی ست).
بعد از وارد کردن کد صحیح توسط کاربر کد کاربر هاش میشه و با کد هاش شده شما در دیتابیس مقایسه میشه اگه برابر بود عدد صحیح رو بر میگردونه و یه فیلد دیگه هم به عنوان مثلا Status در کنار فیلد کد هاش شده در دیتابیست بزار که بعد از اینکه کد هاش شده صحیح بود مقدار فیلد Status رو برایر با full کنه دیگه هر وقت بخواد وارد برنامه بشه مقدار Status رو چک میکنه ببینه full هست...

بعد اگر کاربر دیتابیس رو دستکاری بکنه و مقدار status رو full بکنه چی اتفاقی می افته ؟

milad.biroonvand
یک شنبه 26 شهریور 1391, 12:53 عصر
به نظر من یه الگوریتم رمز دستی بنویس خیلی ساده ولی با روش خاص خودت زیاد سخت نیست بعد کد رمز شده رو هم اصلا بزار عنوان صفحت که همه ببنن!!!! اگه از توابع معمول واسه هش کردن استفاده کنی کد هش شده رو اگه کسی پیدا کنه راحت داخل سایت میزنی کد رو بهت میده مخصوصا MD5!!!

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

ehsan7007
یک شنبه 26 شهریور 1391, 13:06 عصر
من خودم اینترنتی لایسنس هام رو چک می کنم.
شما می تونید اینکار رو بکنید :
دوتا Setting بسازید ، یکی برای نگه داری لایسنس و دیگری به منظور فعال سازی.
تو فرم لود چک کنید که ایا Setting اول false هست یا نه ، اگر بود فرم رو نشون بده ، تو فرم دومتون اگر کاربر رمز رو درست وارد کرد ، Setting اول رو true کنید.
به همین سادگی!(البته از رمزنگای هم می تونید استفاده کنید)

موفق باشید.

danialafshari
یک شنبه 26 شهریور 1391, 13:34 عصر
من خودم اینترنتی لایسنس هام رو چک می کنم.
شما می تونید اینکار رو بکنید :
دوتا Setting بسازید ، یکی برای نگه داری لایسنس و دیگری به منظور فعال سازی.
تو فرم لود چک کنید که ایا Setting اول false هست یا نه ، اگر بود فرم رو نشون بده ، تو فرم دومتون اگر کاربر رمز رو درست وارد کرد ، Setting اول رو true کنید.
به همین سادگی!(البته از رمزنگای هم می تونید استفاده کنید)

موفق باشید.

میشه طریقه ی ساخت یک Setting رو بذارید. ممنون

matin.soft
یک شنبه 26 شهریور 1391, 13:36 عصر
از ستينگ استفاده نكنيد چون در خروجي برنامه بعد از كامپايل فايل ستينگ ظاهر مي شه كه كاربر با استفاده از نت پد مي تونه اطلاعات داخلشرو ببينه.

vaheeed
یک شنبه 26 شهریور 1391, 13:42 عصر
سایت زیاده قبلا کار میکردم ، یه سایت بود که کد هش رو با چندین الگوریتم چک میکرد الان متاسفانه سایت آشیانه باز نشد نگاه کنم این یه نمونه سایت برای md5 هست
http://md5decrypter.co.uk/

ehsan7007
یک شنبه 26 شهریور 1391, 14:05 عصر
از ستينگ استفاده نكنيد چون در خروجي برنامه بعد از كامپايل فايل ستينگ ظاهر مي شه كه كاربر با استفاده از نت پد مي تونه اطلاعات داخلشرو ببينه.

میشه بگید فایل کجا ظاهر می شه!
اخه من تاحالا ندیدم!

milad.biroonvand
یک شنبه 26 شهریور 1391, 14:05 عصر
من خودم اینترنتی لایسنس هام رو چک می کنم.
شما می تونید اینکار رو بکنید :
دوتا Setting بسازید ، یکی برای نگه داری لایسنس و دیگری به منظور فعال سازی.
تو فرم لود چک کنید که ایا Setting اول false هست یا نه ، اگر بود فرم رو نشون بده ، تو فرم دومتون اگر کاربر رمز رو درست وارد کرد ، Setting اول رو true کنید.
به همین سادگی!(البته از رمزنگای هم می تونید استفاده کنید)

موفق باشید.

خوبه شما میدونید کجا این مقادیر ذخیره میشن ؟

ابن روش یکم بده ، سعی کنید طوری دیگه انجام بدین .

ehsan7007
یک شنبه 26 شهریور 1391, 14:10 عصر
اگه این نه ،تابع یا الگوریتم پیشرفته و با حجم زیاد!

irana8
یک شنبه 26 شهریور 1391, 19:22 عصر
اگه تو ریجستری بصورت رمزنگاری شده ذخیره بشه چی؟

Farshid007
یک شنبه 26 شهریور 1391, 19:30 عصر
بابا مگه setting.setting چشه؟

Mahmoud Zaad
یک شنبه 26 شهریور 1391, 20:07 عصر
میشه بگید فایل کجا ظاهر می شه!
اخه من تاحالا ندیدم!
آدرس زیر رو نگاه کنید:
C:\Users\YourComputerName\AppData\Local
البته این پوشه به طور پیش فرض مخفی هست باید از حالت مخفی بودن درش بیارید. البته اگه اطلاعات کد(رمز) بشن جای بدی نیست!

ehsan7007
یک شنبه 26 شهریور 1391, 21:33 عصر
اصلا برنامتون عمومیه یا خصوصی ؟!
اگه خصوصیه که کار اسونه!

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

milad.biroonvand
یک شنبه 26 شهریور 1391, 21:36 عصر
اصلا برنامتون عمومیه یا خصوصی ؟!
اگه خصوصیه که کار اسونه!

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

من متوجه نشدم منظورتون چیه ، برنامه ی من برای عموم هست .

ehsan7007
یک شنبه 26 شهریور 1391, 21:49 عصر
راه دیگه (به خاطر عموم ) فعال سازی اینترنتیه.
یه دیتابیس از لایسنس ها ، اینطوری کاربر هم بهش دسترسی نداره ، فقط برای امنیت بیشتر حتما باید رمزگذاری و کد شه.

barnamenevisforme
یک شنبه 26 شهریور 1391, 22:28 عصر
سلام
کد فعال سازی نیازی به مخفی کردن نداره.
چون کد فعال سازی رو شما باید به دست کاربر برسونید و اون در اولین بار برای برنامه خودش وارد کنه.چون کد فعال سازی برای هر سیستم و نرم افزار میتونه منحصر به فرد تعریف بشه پس نیازی به پهان کردن اون نیست.
مهم مخفی کردن الگوریتم مقایسه کد فعال سازی و مشخصات سیستم هست.که اون هم به روش های مختلف میتونید در کد تون پنهانش کنید.
از همه مهمتر،در جاهای مختلفی از برنامه باید کد فعال سازی رو چک کنید تا مبادا با یک دور زدن ساده،شرط چک کد فعال سازی از کار بیفته.
پس یه جای راحت و بدون دردسر برای ذخیره کد فعال سازی همون setting هست.
هر چند setting برنامه رو میشه از طریق مسیر app data روئیت کرد.ولی هیچ لطمه ای به کار وارد نمیکنه.
فقط وقتی برنامه شما از یک متغیر true یا false برای چک کردن و یا رد کردن کد فعال سازی در اول برنامه استفاده میکنه،کار رو برای شکستن قفل راحت میکنه.
همچنین برای ذخیره تعداد دفعات استفاده از برنامه و یا ... برای نسخه های trial باید دقت بیشتری کرد.

milad.biroonvand
یک شنبه 26 شهریور 1391, 23:12 عصر
سلام
کد فعال سازی نیازی به مخفی کردن نداره.
چون کد فعال سازی رو شما باید به دست کاربر برسونید و اون در اولین بار برای برنامه خودش وارد کنه.چون کد فعال سازی برای هر سیستم و نرم افزار میتونه منحصر به فرد تعریف بشه پس نیازی به پهان کردن اون نیست.
مهم مخفی کردن الگوریتم مقایسه کد فعال سازی و مشخصات سیستم هست.که اون هم به روش های مختلف میتونید در کد تون پنهانش کنید.
از همه مهمتر،در جاهای مختلفی از برنامه باید کد فعال سازی رو چک کنید تا مبادا با یک دور زدن ساده،شرط چک کد فعال سازی از کار بیفته.
پس یه جای راحت و بدون دردسر برای ذخیره کد فعال سازی همون setting هست.
هر چند setting برنامه رو میشه از طریق مسیر app data روئیت کرد.ولی هیچ لطمه ای به کار وارد نمیکنه.
فقط وقتی برنامه شما از یک متغیر true یا false برای چک کردن و یا رد کردن کد فعال سازی در اول برنامه استفاده میکنه،کار رو برای شکستن قفل راحت میکنه.
همچنین برای ذخیره تعداد دفعات استفاده از برنامه و یا ... برای نسخه های trial باید دقت بیشتری کرد.

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

milad.biroonvand
یک شنبه 26 شهریور 1391, 23:13 عصر
راه دیگه (به خاطر عموم ) فعال سازی اینترنتیه.
یه دیتابیس از لایسنس ها ، اینطوری کاربر هم بهش دسترسی نداره ، فقط برای امنیت بیشتر حتما باید رمزگذاری و کد شه.

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