View Full Version : امنیت پسورد برنامه در رجیستری
Veteran
جمعه 08 مهر 1390, 08:45 صبح
سلام دوستان خوبین
من دارم روی یک برنامه کار میکنم که قسمت پسورد رو با تابع savesetting ذخیزه و با getsetting فراخوانی میکنم وقتی برنامه باز میشه چک میکنه که اگه مثلا این مسیر
GetSetting("sobhan", "P", "password")
مقدار خلی بود برنامه رو نشون بده در غیر این صورت قسمت ورود پسورد رو نشون بده
حالا این مشکلی که داره اگه کاربری ی خورده زرنگ باشه میتونه بره توی رجیستری و پسورد رو در بیاره !!!!!!!
توی مسیر سختی هم ذخیره نمیشه که بگیم نمیتونه پسورد رو پیدا کنه
حالا سوال من اینه چجوری میتونیم امنیت این روش رو بالا ببریم ؟
روش دیگری سراغ دارید ؟؟
با تشکر
مرتضی تقدمی
جمعه 08 مهر 1390, 09:14 صبح
اگه می خواین توی رجیستری بذارید, کدگذاری کنید.
Veteran
جمعه 08 مهر 1390, 11:56 صبح
اموزشی چیزی بزارین ممنون میشم
مرتضی تقدمی
جمعه 08 مهر 1390, 12:05 عصر
در مورد encrypt و رمز گذاری توی همین سایت ســـــــــرچ کنید. مطلب بسیار زیاده.
maniaf69
یک شنبه 10 مهر 1390, 16:18 عصر
یک راه ساده تر اینه که اگه تو رجیستری میزاری تبدیل کن به کد اسکی و وقتی دوباره می خواد برنامه بخونش از کد ااسکی تبدیل بشه به متن اصلی :چشمک:
اگه سوالی بود بپرس
Restlesa
دوشنبه 11 مهر 1390, 18:23 عصر
نمونه اي كه گذاشتم يه نگاه بنداز فكر كنم همون چيزي باشه كه مي خواستي
باهاش مي توني در هر جاي ريجستري كه خواستي كليدهاي متعددي بسازي
براي امنيت بيشتر هم همون طور كه دوستان گفتن قبل از ذخيره كردن پسورد اونو كد كن (KeyAscii رو تغيير بده)
mr-adler
یک شنبه 24 مهر 1390, 02:28 صبح
با سلام
یک راه ساده تر اینه که اگه تو رجیستری میزاری تبدیل کن به کد اسکی و وقتی دوباره می خواد برنامه بخونش از کد ااسکی تبدیل بشه به متن اصلی :چشمک:
اگه سوالی بود بپرس چطوری به کد اسکی تبدیل کنم؟
در ضمن اگه کد اسکی هر عدد همیشه یکسان باشه طرف مقابل به راحتی میتونه کد اسکی رو به مقدار واقعیش تبدیل کنه و استفاده کنه.درسته؟
MMR_1344
یک شنبه 24 مهر 1390, 09:12 صبح
با دستور ASC میتونی کد اسکی یک حرف رو به صورت زیر بدست بیاری
a=Asc(Text)
اگر تعداد حروفت بیشتره باید اون رو درون یک لوپ قرار بدی
در ضمن کد اسکی هر حرف در کامپیوتر ثابت هست و تغییر نمیکنه و کامپیوتر از تبدیل کد اسکی میتونه کار کنه
mr-adler
یک شنبه 24 مهر 1390, 11:30 صبح
اگر تعداد حروفت بیشتره باید اون رو درون یک لوپ قرار بدیچطوری؟
در ضمن کد اسکی هر حرف در کامپیوتر ثابت هست و تغییر نمیکنه و کامپیوتر از تبدیل کد اسکی میتونه کار کنه پس میشه گفت اگه کسی بخواد میتونه باز هم پسورد برنامه رو در بیاره
یه سوال دیگه هم داشتم .اپتیمایزر نیاد خود به خود کلیدی رو که اطلاعاتمون رو توش ذخیره کردیم پاک کنه؟
Restlesa
یک شنبه 24 مهر 1390, 12:56 عصر
چطوری؟
خیلی راحته ... کافیه که طول رشته TextBox رو دربیاری و در یه حلقه For قرار بدی
پس میشه گفت اگه کسی بخواد میتونه باز هم پسورد برنامه رو در بیاره
شدن که میشه ولی به همین راحتی ها هم که فکر می کنی نیست
فرض کن رمز عبور تو Mr-Adler باشه و تو این رو در ریجستری به صورت Restlesa ذخیره کنی. کاربر فکر می کنه که Restlesa رمز ورودیه نه Mr-Adler مگر اینکه طرف یه هکر حرفه ای باشه رمز عبور اصلی رو کشف کنه
یه سوال دیگه هم داشتم .اپتیمایزر نیاد خود به خود کلیدی رو که اطلاعاتمون رو توش ذخیره کردیم پاک کنه؟
فکر نمی کنم این کار رو بکنه مگر این که خودت به صورت دستی این کار رو انجام بدی و یا کلیدت ویروسی شده باشه و توسط آنتی ویروس پاک بشه و یا اینکه بر اساس برنامه های بهینه سازی ویندوز یه کلید غیر ضروری شناخته بشه
mr-adler
یک شنبه 24 مهر 1390, 13:06 عصر
فرض کن رمز عبور تو Mr-Adler باشه و تو این رو در ریجستری به صورت Restlesa ذخیره کنی. کاربر فکر می کنه که Restlesa رمز ورودیه نه Mr-Adler مگر اینکه طرف یه هکر حرفه ای باشه رمز عبور اصلی رو کشف کنه
کد اسکی که به این صورت نیست.هست؟ مثلا کلمه"hello " یه کد اسکی خاص داره مثلا 123456789 که میشه دوباره به کلمه hello تبدیلش کرد
اگر تعداد حروفت بیشتره باید اون رو درون یک لوپ قرار بدی
در ضمن کد اسکی هر حرف در کامپیوتر ثابت هست و تغییر نمیکنه و کامپیوتر از تبدیل کد اسکی میتونه کار کنه
اگه جواب این مورد رو هم میدونید اگه ممکنه جواب بدید .
ممنون
Restlesa
یک شنبه 24 مهر 1390, 20:24 عصر
کد اسکی که به این صورت نیست.هست؟ مثلا کلمه"hello " یه کد اسکی خاص داره مثلا 123456789 که میشه دوباره به کلمه hello تبدیلش کرد
چرا هست دوست عزيز
كلمه Mr-Adler هم يه كد اسكي خاص خودش رو داره كه ما اين كد اسكي رو موقع ذخيره كردن رمز عبور تغيير داديم به Restlesa.
همون طوري كه گفتم امكان فهميدن رمز اصلي كه Mr-Adler هستش هست اما به اين راحتي ها نمي شه پيداش كرد
اگه جواب این مورد رو هم میدونید اگه ممکنه جواب بدید .
ممنون
يه تاپيك با موضوع بدست آوردن كد اسكي يك رشته ايجاد كردم به محض گرفتن جواب يه برنامه كامل برات ارسال خواهم كرد
xrezax
دوشنبه 25 مهر 1390, 08:48 صبح
با دستور ASC میتونی کد اسکی یک حرف رو به صورت زیر بدست بیاری
اگر تعداد حروفت بیشتره باید اون رو درون یک لوپ قرار بدی
در ضمن کد اسکی هر حرف در کامپیوتر ثابت هست و تغییر نمیکنه و کامپیوتر از تبدیل کد اسکی میتونه کار کنه
میشه سورس بزارید که چگونه asc کنیم و اونو توسط برنامه دوباره بخونیم؟
Restlesa
دوشنبه 25 مهر 1390, 11:30 صبح
بعد از ظهر يه سورس خوب و كاربردي براتون قرار خواهم داد
mr-adler
سه شنبه 26 مهر 1390, 23:24 عصر
یک راه ساده تر اینه که اگه تو رجیستری میزاری تبدیل کن به کد اسکی این مورد درست. میتونم انجامش بدم
و وقتی دوباره می خواد برنامه بخونش از کد ااسکی تبدیل بشه به متن اصلیفرض رو بر این بگیریم که ما پسورد رو گرفتیم و به کد اسکی تبدیل کردیم و خود پسورد رو پاک کردیم.حالا ما یک کد اسکی ذخیره شده در ریجستری داریم. بر گردوندن (زمانی که باید به پسوردی که قبلا بوده تبدیل بشه)چطوری باید انجام بشه؟(بعضی از کاراکتر ها کد اسکی 3 رقمی دارند)
ممنونم
Restlesa
چهارشنبه 27 مهر 1390, 09:21 صبح
کدی رو که برات ضمیمه کردن دانلود کن
کاری رو که خواستی انجام میده
سوال داشتی در خدمتم
mr-adler
چهارشنبه 27 مهر 1390, 13:57 عصر
ممنونم . واقعا جالب بود
فقط در مورد save/get value ارور میداد که تبدیلش کردم به save/get setting .
در واقع کد اسکی رو ذخیره نمیکرد . در موقع ذخیره کردن به کد اسکی هر کاراکتر مقدار مشخی رو اضافه میکرد و کاراکتر جدید رو ذخیره میکرد و موقع فراخوانی هم از کد اسکی کاراکتر های ذخیره شده همون مقدار مشخص رو کم میکرد و نمایش میداد. در کل روش بسیار جالب و خوبی بود...
:قلب:
mr-adler
جمعه 13 آبان 1390, 01:54 صبح
سلام دوستان خوبین
من دارم روی یک برنامه کار میکنم که قسمت پسورد رو با تابع savesetting ذخیزه و با getsetting فراخوانی میکنم وقتی برنامه باز میشه چک میکنه که اگه مثلا این مسیر
GetSetting("sobhan", "P", "password")
مقدار خلی بود برنامه رو نشون بده در غیر این صورت قسمت ورود پسورد رو نشون بده
حالا این مشکلی که داره اگه کاربری ی خورده زرنگ باشه میتونه بره توی رجیستری و پسورد رو در بیاره !!!!!!!
توی مسیر سختی هم ذخیره نمیشه که بگیم نمیتونه پسورد رو پیدا کنه
حالا سوال من اینه چجوری میتونیم امنیت این روش رو بالا ببریم ؟
روش دیگری سراغ دارید ؟؟
با تشکر
البته میتونید از کلاس wshshell استفاده کنید از متد های regwrite & regread استفاده کنید تا بتونید هر جایی که میخواهید رمز عبورتون رو قرار بدید . اما رمز گزاری بهتره به وسیله فایل انجام بشه:چشمک:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.