שְׁאֵלָה:
כיצד למנוע ריפוד אוטומטי על ידי IDA?
heinrich5991
2013-05-17 18:29:00 UTC
view on stackexchange narkive permalink

הגדרתי מבנה בקובץ כותרת, בדומה לזה:

  struct STRUCT {char a; int b;};  

זה נותח בהצלחה על ידי IDA, אולם הוא מוסיף בתים ריפוד לאחר char:

  00000000 STRUCT struc; (sizeof = 0x4) 00000000 db? 00000001 db? ; undefined00000002 b dw? 00000004 STRUCT מסתיים  

אני לא יכול להסיר את שדה הריפוד באמצעות u , אז השאלה היא: איך אפשר להסיר שדות ריפוד שהוכנסו אוטומטית על ידי IDA, או כיצד ניתן למנוע מ- IDA ליצור שדות ריפוד?

שתיים תשובות:
Igor Skochinsky
2013-05-17 18:43:16 UTC
view on stackexchange narkive permalink

באפשרותך להשתמש ב # pragma pack (1) לפני ההצהרה.

כיצד אוכל לבטל זאת אם אני מגדיר מספר סטרוקטורות לכל קובץ? "" # חבילה פרגמה (0) ""? האם התחביר הזה מקורו ב- MSVC?
"מסכת דבר # (משקה, 1)" / "מסכת דבר (פופ)"
ראוי לציין שאם היית רוצה שחבר מהמבנה שלך יהיה מרופד, תוכל להגדיר זאת כך: `__declspec (align (4)) char;`
Ange
2013-05-17 18:33:40 UTC
view on stackexchange narkive permalink

הסרת בתים לא מוגדרים

לחץ על בת ריפוד לא מוגדר, ואז עם לכווץ מבנה (תפריט לחיצה ימנית, או Ctrl - S ), בחר כמה בתים אתה רוצה להסיר - זה מגדיר באופן אוטומטי את הכמות הנכונה לקיזוז המוגדר הבא.

מניעת הוספה אוטומטית

זה תלוי בפרמטר בתפריט אפשרויות / מהדר code: שנה את יישור ברירת המחדל ל- 1 כדי להסיר ריפוד, ואז ייבא את הכותרת שלך



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...