שאלה ב-C
אני מנסה לסמן מקום כלשהו בקובץ exe. לשם כך כתבתי תוכנית שרצה עליו, וסורקת רצפים של 4 בתים כל פעם (עם תזוזה של בית קדימה בכל פעם, כלומר יש חפיפה בסריקה), שומרת אותם כמספרים ולאחר מכן נותנת לי את מספר כלשהו שלא הופיע בקובץ בצור שצויינה. את המספר אני מכניס למערך של unsigned char בצורה הבאה: 1. אני הופך את המספר מ-unsigned int, שגודלו 4 בתים (VS6, winX), לאוסף של 4 'ספרות' בבסיס 256. כל 'ספרה' כזו היא בגודל בית. 2. בקובץ קיים כבר מערך המוגדר כך:
אני מנסה לסמן מקום כלשהו בקובץ exe. לשם כך כתבתי תוכנית שרצה עליו, וסורקת רצפים של 4 בתים כל פעם (עם תזוזה של בית קדימה בכל פעם, כלומר יש חפיפה בסריקה), שומרת אותם כמספרים ולאחר מכן נותנת לי את מספר כלשהו שלא הופיע בקובץ בצור שצויינה. את המספר אני מכניס למערך של unsigned char בצורה הבאה: 1. אני הופך את המספר מ-unsigned int, שגודלו 4 בתים (VS6, winX), לאוסף של 4 'ספרות' בבסיס 256. כל 'ספרה' כזו היא בגודל בית. 2. בקובץ קיים כבר מערך המוגדר כך:
volatile static unsigned char arr[4096]
ואליו אני מכניס את ה'ספרה' הכי פחות משמעותית למקום ה-0 וכך הלאה, כל ספרה תופסת בית - כגודל unsigned char, איבר יחיד במערך. הבעיה היא כשלאחר קימפול מחדש, המס' שהכנסתי אמור להימצא בסריקה - מה שלא קורה. למישהו יש מושג מה אני עושה לא נכון, או הצעות לשיפור ?