עבור לתוכן

תוכנה להחזרת קבצים ש"נעלמו" ע"י וירוס

Featured Replies

פורסם

שלום לאחרונה נתקלתי שוב בווירוס שמעלים תיקיות וקבצים מdok, המון אנשים לא יודעים שבשביל להחזיר את הקבצים למצבם הקודם צריך פקודה קצרה בcmd (attrib) אז בניתי תוכנה שעושה את זה במקומם.

בעיקרון התוכנה פשוטה רק כמה שורות קוד.

אבל בכל זאת אשמח לדעת אם יש בה בעיה כלשהיא

זה הקוד:

  private void button1_Click(object sender, EventArgs e)        {
string lineToCmd =string.Format("/c attrib -s -h -r /d /s {0}*.*",textBox1.Text);
if (textBox1.Text!= null)
{
ProcessStartInfo psi =new ProcessStartInfo ("cmd.exe");
psi.WindowStyle= ProcessWindowStyle.Hidden;
psi.Arguments=lineToCmd;
Process.Start(psi);
}


}

זה החלק העיקרי בקוד, בtextbox מכניסים את האות של הdok +:\ (הוא לא נותן לי להכניס את התו \ בתוך מחרוזת...)

זה מצרף את מה שהכניסו לשורה lineToCmd וזה מועבר לcmd בתור ארגומנט.

יש כאן משהו לא בסדר? אולי צריך איכשהו לשחרר משאבים או משהו כזה?

פורסם

להריץ CMD על כל קובץ זה פעולה סקריפטית המתאימה לVBS או BATCH. לא לתכנות.

מה זה dok? ומה הקלט שמתקבל בtextBox?

זה בC#?

קח אפשרות פשוטה יותר:

void ChangeAtrr(string path){
var dir = new DirectoryInfo(path);


foreach (var folder in dir.GetDirectories())
{
folder.Attributes &= ~FileAttributes.ReadOnly;
folder.Attributes &= ~FileAttributes.System;
}


foreach (var file in dir.GetFiles())
{
file.Attributes &= ~FileAttributes.ReadOnly;
file.Attributes &= ~FileAttributes.System;
}
}

פורסם

סיבכתם את הצורה עם הקודים.

אנחנו משתמשים בזה באוניברסיטה, צירפתי קובץ עם פקודה כאשר השם של הקובץ זה שם הכונן במחשב.

אם יש בעיה בכונן E לדוגמא, אז להפעיל את e.bat

פשוט מאד ומוצלח.

זה נמצא קבוע בדרופבוקס ה"כיתתי" ולכל מי שיש בעיה ניגש לקובץ המתאים, מפעיל אותו ונגמר הסיפור.

פורסם
  • מחבר
להריץ CMD על כל קובץ זה פעולה סקריפטית המתאימה לVBS או BATCH. לא לתכנות.

מה זה dok? ומה הקלט שמתקבל בtextBox?

זה בC#?

קח אפשרות פשוטה יותר:

void ChangeAtrr(string path){
var dir = new DirectoryInfo(path);


foreach (var folder in dir.GetDirectories())
{
folder.Attributes &= ~FileAttributes.ReadOnly;
folder.Attributes &= ~FileAttributes.System;
}


foreach (var file in dir.GetFiles())
{
file.Attributes &= ~FileAttributes.ReadOnly;
file.Attributes &= ~FileAttributes.System;
}
}

א. האמת לא הכרתי את זה, יפה חידשת לי...

ב.dok זה disk on key.

ג.הקלט זה האות שמסמל את הdok, זה משתלב במחרוזת של הattrib, וככה המחשב יודע על איזה כונן לעשות את זה.

ד.כן זה ב#c...

- - - תגובה אוחדה: - - -

סיבכתם את הצורה עם הקודים.

אנחנו משתמשים בזה באוניברסיטה, צירפתי קובץ עם פקודה כאשר השם של הקובץ זה שם הכונן במחשב.

אם יש בעיה בכונן E לדוגמא, אז להפעיל את e.bat

פשוט מאד ומוצלח.

זה נמצא קבוע בדרופבוקס ה"כיתתי" ולכל מי שיש בעיה ניגש לקובץ המתאים, מפעיל אותו ונגמר הסיפור.

אם תפתח את הקובץ הזה בתור קובץ טקסט (פשוט תשנה את הסיומת לtxt, אני מניח שאתה יודע את זה אבל אני רוצה להיות בטוח) תראה שזה עושה בערך את אותה פעולה כמו שהתוכנה שלי עושה, רק שאני כתבתי את זה ב#c, והם בשפה אחרת (אין לי מושג איזה).

פורסם

אני לא צריך לשנות שום סיומת, פשוט קליק ימני ו-EDIT, אבל אני מניח שאתה יודע את זה אבל אני רוצה להיות בטוח.

,

רק שהפקודה היא מאית ממה שאתה רשמת, פשוטה ועושה את העבודה.

אלו פקודות דוס סטנדרטיות, פעם אחרונה שבדקתי.

פורסם
  • מחבר
אני לא צריך לשנות שום סיומת, פשוט קליק ימני ו-EDIT, אבל אני מניח שאתה יודע את זה אבל אני רוצה להיות בטוח.

,

חחח נכון, צודק, לא חשבתי על זה, אני ניסתי לעשות לו פתח באמצעות כתבן והוא לא נתן לי אז שיניתי את הסיומת, אבל נכון צודק, פשוט יותר ככה.

רק שהפקודה היא מאית ממה שאתה רשמת, פשוטה ועושה את העבודה.

אלו פקודות דוס סטנדרטיות, פעם אחרונה שבדקתי.

כן, אבל אני יודע #c וזה מה שכתבתי, חוץ מזה שבניתי את זה בשביל אחרים וזה יותר יפה ונוח בצורה שאני עשיתי את זה.

גם אני צירפתי את מה שבניתי, נראה לי יותר ידידותי, אתה מוזמן להעיף מבט.

פורסם
  • מחבר

אגב מישהו יודע למה הוא לא נותן לי להשתמש בתו \ ? מופיעה שגיאה משהו כמו תו יציאה לא מוכר, מישהו יודע מה זה?

פורסם
  • מחבר

חיפשתי את זה ולא מצאתי משהו שיכול להועיל לי (לפחות לא בתוצאות הראשונות).

ההודעת שגיאה היא Unrecognized escape sequence

חיפשתי גם את זה ולא מצאתי משהו שעוזר לי.

התו הזה משמש גם בשביל לאתחל קוד יוניקוד במשתנה מסוג char כמו שכתוב כאן, ניסיתי לעשות בדיוק כמו שבהדגמה ועדין מופיעה השגיאה.

פורסם
  • מחבר

ראיתי את הקישור הזה כבר אז ששלחתי את ההודעה, ועכשיו ראיתי אותו שוב, אבל אני עדיין לא מבין איך הוא עוזר לי בבעיה שלי, הרי הוא כותב לי את השגיאה גם כשאני כותב את זה חלק מקוד יוניקוד, תוכל להיות קצת יותר ספציפי?

פורסם
  • מחבר

אוקיי עכשיו ניסיתי את זה במחשב אחר וזה כן עבד כמו שצריך...

אני אנסה את זה שוב במחשב השני יותר מאוחר.

בכל אופן תודה לכולם.

פורסם

נתקלתי בוירוס הזה פעם.

אחרי שניקיתי אותו התיקיות עדיין נעלמו אבל הנפח התפוס הצביע על כך שהם קיימים.

אז הרצתי חיפוש מהיר בגוגל ומייד מצאתי את התשובה.

ופשוט הרצתי שורת ATTRIB אחת פשוטה והכל חזר.

פורסם
  • מחבר

נכון, אבל יש המון אנשים שלא יודעים לא איך לעשות את זה ולא איך לחפש את זה בגוגל, ובשבילם (והאמת גם כי שיעמם לי ובגלל שהמון זמן לא תרגלתי את #C) החלטתי לבנות את התוכנה הזאת.

פורסם

כל הכבוד על היוזמה.

הייתי רוצה לראות יותר סיפורי וירוס ואיך ניקיתם אותם.

זה יכול אפילו להפוך לסטיקי של סיפורי וירוסים.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים