PDA

View Full Version : آموزش: آموزش نوشتن attribute changer و file browser



l4tr0d3ctism
یک شنبه 30 تیر 1392, 14:40 عصر
اما اینکه این برنامه به چه دردی می خوره باید بگم همیشه دیدید که وقتی ویروس وارد سیستم میشه میاد خیلی از فایل ها رو به صورت hidden , system و ... می کنه اینجا ما می تونیم از طریق این برنامه اون فایل ها رو به حالت عادی برگردونیم و یا تشخیص بدیم که فایل دارای چه خاصیتی هست

بعد اینکه تو خیلی از بد افزار ها مخصوصا سری autorun این مشکل بوده که وقتی با windows explorer وارد درایو شدیم اتوماتیک ویروس از طریق فایل autorun.inf وارد سیستم شده و اگه از طریق این برنامه واردش بشید دیگه این مشکل هم وحود نداره

در مرحله ی اول آموزش نوشتن یک file browser رو داریم که می خوام با کلیک روی هر کدوم از فایل ها بتونم Attribute اون رو تغییر بدم

اول از همه شروع به نوشتن یک folder browser میکنیم

برای این کار ما باید رفرنس های Imports System و Imports System.IO رو وارد کنیم

بعد 3 تا listview می زارم یکی برای لیست کلیه ی درایو ها و یکی برای لیست فولدر ها و دیگری برای فایل

در listview اول ککه مربوط به لیست دراو ها هست باید کد زیر رو بزنیم




For Each Dir As String In Directory.GetLogicalDrives()
ListView1.Items.Add(Dir)
Next



اگه دقت کنید من اینجا اومدم متغیری رو با نام dir از نوع string زدم و گفتم که از متود directory جهت لیست کردن دراو های لوجیکال استفاده کن یعنی getlogicaldrive رو بهش دادم

و تو خط دوم هم گفتم اون رو داخل listview اضافه کن

این کد رو باید در form _ load بزنیم که خودش بالا بیاد و اجرا بشه

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



ListView2.Items.Clear()
For Each Dir As String In Directory.GetDirectories(ListView1.SelectedItems(0 ).Text)
ListView2.Items.Add(Dir)
Next

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

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

اما لیست فولدر های کجا ؟ داخل پرانتز زدم ListView1.SelectedItems(0).Text یعنی گزینه ی انتخاب شده listview1

کد بالا رو باید در رویداد SelectedIndexChanged مربوط به lstiview درایو ها بزاریم

و بعد هم می خوام با کلیک روی لیست فولدر ها لیست فایل های داخل اون هم در داخل listview بعدی ظاهر بشه



ListView2.Items.Clear()
For Each files In Directory.GetFiles(ListView2.SelectedItems(0).Text )
ListView3.Items.Add(files)
Next


که گزینه ی getfiles رو برای متود directory انتخاب کردم

خوب تا اینجا ما اومدیم file / folder browser رو نوشتیم

حالا می خوایم یک fileattribute changer قوی بنویسیم

برنامه باید قادر باشه که ویژگی های زیر رو به یک فایل





Compressed
Device
Directory
Encrypted
Hidden
IntegrityStream
Normal
NoScrubData
NotContentIndexed
Offline
ReadOnly
ReparsePoint
SparseFile
System
Temporary



پس به این تعداد میایم checkbox میزاریم و اسامی بالا رو بهش بدید

و جهت درک راحت تر یک TExtbox بزارید که آدرس فایل انتخاب شده رو داخل اون بزاره با کد زیر



TextBox1.Text = ListView3.SelectedItems(0).Text


حالا میایم میگیم که هر وقت گزینه ی مثلا hidden رو زدیم این ویژگی به فایل داده بشه و اگر تیک برداشته شد این ویژگی رو از بردار و به حالت عادی برگردون با کد زیر



if checkhidden.checked=true then
Dim attribute As System.IO.FileAttributes = FileAttributes.Hidden

File.SetAttributes(TextBox1.Text, FileAttributes.Hidden)

else


Dim attribute As System.IO.FileAttributes = FileAttributes.normal

File.SetAttributes(TextBox1.Text, FileAttributes.normal)



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

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

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

http://msdn.microsoft.com/en-us/library/system.io.fileattributes.aspx