محدود کردن پروژه :: V i R u s Ʒ²

V i R u s Ʒ²

هک و امنیت

V i R u s Ʒ²

هک و امنیت

Virus 32

💢 دوستانم بی دفاع و دشمنانم بی جواب نخواهند ماند 💢

-->
آخرین نظرات
  • ۲۵ مرداد ۹۷، ۲۰:۳۵ - رموندغغغغغغغغغغغغکمفنثلنوحخ67.ا
    فیک پیج چیه؟

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

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

شاید اولین فکری که به ذهن یه برنامه نویس نوپا یا یه آدم معمولی برسه اینه که یه کاری کنیم فایل کپی نشه

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

عمل کپی شدن در ویندوز رو در نظر بگیرید

برای کپی نشدن یک فایل یا باید کلا کپی شدن رو برای تمام فایل ها رو غیر فعال کنیم

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

عملکرد بعضی از ویروس ها و برنامه های کاربری هم به همین شکله که توضیح کامل این روش در این پست به نظر جایز نیست!!!

خلاصه کلام فایل در هر صورت با این روش کپی میشه

(حالا آماتور ها کپی نکنن یه آدم مثل خودمون خیلی راحت میتونه کپیش کنه)

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

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

ما میتونیم برنامه رو به سخت افزار های مختلفی وابسته کنیم

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

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

ولی به نظر خودم کار درستیه :)

اصل مطلب :

هر پروژه ای که استارت میزنیم یه فایل به اسم Program.cs ایجاد میکنه برا خودش

این صفحه تعیین میکنه که برنامه چجوری اجرا بشه

این صفحه رو باز کنید

یه سری کد داره

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

اگه سخت افزار شناسایی شده سخت افزاری باشه که ما از پیش براش تعریف کردیم

برنامه رو اجرا کنه

و در غیر این صورت پیام "سخت افزار یافت نشد" رو به کاربر نمایش بده

و برنامه رو اجرا نکنه

برای اینکار کتابخونه ی زیر رو به این صفحه اضافه کنید

using System.Management;

در ادامه کد زیر برای قفل برنامه بر روی USB ها هسسش :)

string seryal = "";
ManagementObjectSearcher s = new ManagementObjectSearcher("select * from win32_DiskDrive where InterfaceType='USB'");
string Str = string.Empty;
foreach (ManagementObject obj in s.Get())
{
ManagementObject se = new ManagementObject("Win32_physicalMedia.Tag='" + obj["DeviceID"] + "'");
seryal = obj.Properties["SerialNumber"].Value.ToString();
}
if (seryal == "usb32")
{
Application.Run(new Form1());
}
else
{
MessageBox.Show("سخت افزار برنامه یافت نشد");
}

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

ManagementObjectSearcher s = new ManagementObjectSearcher("select * from win32_processor");
foreach (ManagementObject obj in s.Get())
{
ManagementObject se = new ManagementObject("Win32_physicalMedia.Tag='" + obj["DeviceID"] + "'");
seryal = obj.Properties["processorid"].Value.ToString();
}
if (seryal == "cpu32")
{
Application.Run(new Form1());
}
else
{
MessageBox.Show("سخت افزار برنامه یافت نشد");
}

قفل برنامه بر روی مادربورد MotherBoard

ManagementObjectSearcher ComSerial = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");

foreach (ManagementObject wmi in ComSerial.Get())
{
seryal = wmi.GetPropertyValue("SerialNumber").ToString();
}

if (seryal == "mb32")
{
Application.Run(new Form1());
}
else
{
MessageBox.Show("سخت افزار برنامه یافت نشد");
}

قفل برنامه بر روی هارد دیسک HDD

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

foreach (ManagementObject wmi_HD in searcher.Get())
{
seryal = wmi_HD["SerialNumber"].ToString();
}

if (seryal == "hdd32")
{
Application.Run(new Form1());
}
else
{
MessageBox.Show("سخت افزار برنامه یافت نشد");
}

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

البته یادتون باشه کدهای خود این صفحه رو نباید پاک کنید

یعنی دو خط زیر باید تو صفحه بمونن

            Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

یه توضیح مختصر درباره کدها میدم و بحث رو میبندم چون داره طولانی میشه

یه رشته به اسم seryal در ابتدا تعریف کردیم

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

این شماره سریال رو در رشته seryal تعریف کردیم

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

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

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

برای اینکار هم بعد از کد زیر

seryal = wmi_HD["SerialNumber"].ToString();

کد زیر رو قرار بدین

MessageBox.Show(seryal);

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

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

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

حق یارتان

ایرانی همیشه سرافراز

نظر (۳)

سلام سلطان دستت درد نکنه واسه کدهای ک اینجا گرفتی زحمت کشیدی، ولی ی سوال دارم ک خودت میدونی دیگه اینجارو خلوت گیر اوردم، اینکه سلطان میشه ی توضیح خوبی درباره کد بت فایل درباره این دستورش بدی،مثلا set p/: d%% g%% اون حروفهایی ک بین درصد قرار گرفته دقیقا چیکار میکنن، امروز ی جا بودیم نتونستم اینو خوب توضیح بدم، دیگه گفتم شب از استاد بپرسمو مزاحمش بشم،
MR C0D3R :
سلام
چیزیو که گذاشتی متوجه نشدم
چون تا حالا با اون سر و کار نداشتم
اما چون از P/ تو کدت استفاده کردی
منم نحوه ی استفاده از این دستور با این سوئیچ رو توضیح میدم
در واقع با استفاده از این سوئیچ میتونیم از کاربر یه مقداری رو دریافت کنیم
و اون رو در جاهای مختلف برنامه استفاده کنیم
مثلا تکه کد پایین رو نگاه کن
Echo off
Mode 90,24
Color FC
Cls Rem ================ Set /P Variable_Name="Enter your text for showing => "
Echo %Variable_Name%
Rem ================
کدهای اصلی ما کدهای خط 6 و 7 هستش
و اما اجزاشون
تو خط ششم ، بجای Variable_Name
باید اسم یه متغیر رو بزاریم که قراره بعدا تو جاهای مختلف برنامه استفاده بشه
تو خط هفتم هم همونطور که میدونی از Echo برای نشون دادن یه چیزی تو بچ فایل استفاده میشه
ما هم اینجا از Echo برای نمایش مقدار داخل متغیرمون استفاده کردیم که اسمش Variable_Name هست
و خودت میتونی تغییرش بدی
در آخر اینکه فکر کنم منظور سوال تو خط هفتم بود چون اونا داخل علامت درصد قرار گرفتن
درست نمیگم ؟
________________
  • زیر پست مناسب سوالت رو بپرس تا به جواب بهتری برسی !!!
  • Virus 32 ;)
سلام سلطان شرمنده دیر جوابتو دادم یکم کار پیش اومد، اره تقریبا بیشتر کدهای بچ فایلو میشناسم ب لطف خودتون، دقیقا درست حدس زدی منظورم هموناییه ک توی درصد قرار میگیرن، مثلا تو بعضی ی چندتایی با هم درصد قرار میگیرن هرچی زووم میکنم روش متوجه نمیشم، دیگه گفتم از استاد بپرسم، بازم شرمنده دیگه همیشه با سوالا اذیتت میکنم، فعلا مشکلم همون درصداس توی بچ فایل، استاد ویروس چشم زیر پست مناسب مینویسم، دیگه ببخشید بی ادبی کردیم گفتم اینجا خلوته، اینجا بپرسم
MR C0D3R :
حواست باشه از این به بعد سوتی ندیا D:
چون جواب نمیدم
قراره حکومت نظامی تو وب راه بندازیم
شاید برای شما یه کوچولو سخت باشه
اما زور بزنین یاد بگیرین چون میخوایم وب رو یه خرده پیشرفته ترش کنیم :)
جان منی داداش، ما سربازتیم رفیق، جوابم ندی بازم لایک داری، به به به چ شود ک وقتی پیشرفته تر بشه، فعلا عزیز
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی