@YAHBDK כתב בעזרה | תיקון קבצים:
יש דרך לעשות את זה לבד?
אתה יכול לבדוק לבד על דרכים לשחזור לוגי
שחזור ברמת ה hex ותיקון מערכות קבצים פגומות זה עניין שדורש הרבה מאוד ידע וניסיון שצברתי בעמל במשך שנים ולכן זה שירות שאני נותן ולא מידע שאני מספק
@YAHBDK כתב בעזרה | תיקון קבצים:
ומה יכול ליהות שקרה שם
ניתקת אותו כשהבקר היה באמצע לכתוב משהו לכרטיס - כנראה עדכון תאריכי גישה לקבצים או משהו דומה (רואים שהסקטור שנפגם הוא זה של רשומת התיקיה)
מה שקרה זה שהבקר קיבל את פקודת הכתיבה מהמחשב שמר אותה ב buffer עיבד אותה ואז חיכה לנתונים שיבואו
בבקרים זולים זה נכתב לאותו אזור בזיכרון
באותו רגע ניתקת את הכרטיס
הבקר נכנס למצב שמכונה controller panic וניסה לסגור את פעולת הכתיבה וזרק לאותו עמוד את מה שהיה אצלו בזיכרון באותו רגע ובגלל שזה אותו אזור בזיכרון עדיין היו שם הנתונים של הפקודה עצמה
למה הבקר החליט לזרוק לשם את מה שישב לו בזיכרון? יש מגוון רחב של סיבות אפשריות - פיזיקליות והגנתיות של הבקר
לכן בדרך כלל תראה קובץ שנוצר עם השם USBC שזה ה header של פקודת ה CBW שהכרטיס קיבל ואם תפתח את זה ב HxD תראה שזה בדיוק סקטור שלם אחד של זבל שב 31 הבתים הראשונים שלו מכיל את נתוני הפקודה
זה המבנה שלה - כתבתי אותו לפי התיעוד הרשמי (עמוד 13)
typedef struct {
uint32_t dCBWSignature;
uint32_t dCBWTag;
uint32_t dCBWDataTransferLength;
uint8_t bmCBWFlags;
uint8_t bCBWLUN;
uint8_t bCBWCBLength;
uint8_t CBWCB[16];
} USB_BOT_CBW;