עבור לתוכן

המרת HEX לשפה קריאה

Featured Replies

פורסם

שלום לכולם, האם יש דרך להמיר קוד אקסהדצימל [HEX] לשפת C או משהו שיהיה ניתן להבין?

איך בעצם מתכנתים יודעים לקרוא קוד בינארי? איך הם יודעים שנגיד 00 01 00 01 00 08 זה אומר משהו מסויים?

תודה מראש

פורסם

מה זה אנגלית?

אפשר להמיר ערך של בסיס 16 לבסיס 10 אבל זה לא יתן כלום אלא אם כן אתה מדבר על ערכים של ASCII.

http://www.asciitable.com

פורסם
  • מחבר

טעיתי בשאלה, אני מתכוון האם אני יכול להפוך קובץ EXE לC בחזרה? או קובץ HEX לC?

אני עובד כרגע על רובוט למגמת רובוטיקה ויש לי בעיה קצת עם התוכנה.

אני כותב 3 שורות וכשאני פותח את הHEX אני רואה 200 שורות, איך אני יכול לקרוא את הHEX ולהבין מה הולך שם בלי נגיד שיש לי את הקוד המקורי של הC?

פורסם

קודם כל, שתבין - hex זה לא פורמט של קובץ. זה פשוט דרך להציג קובץ. בסופו של דבר, כל קובץ במחשב הוא רצף של מספרים, ואחת הדרכים להציג אותם היא ב-hex (כלומר בבסיס 16).

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

בכל מקרה, אין דרך פשוטה להמיר מ-exe חזרה ל-C, ולהסבר קרא את זה:

http://www.parashift.com/c++-faq-lite/compiler-dependencies.html#faq-38.4

(הוא מדבר על ++C אבל תכלס זה אותו דבר)

פורסם
  • מחבר

הוא דיי מסביר שם שזה בלתי אפשרי.

יש באמת אנשים שמבינים מה 00 01 00 01 00008 אומר? :S

פורסם

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

פורסם

בדיוק. שפת אסמבלי מורכבת מאוסף של פקודות. כל פקודה מתורגמת למספר באופן יחיד. המספרים האלה הם מה שמופיע בקובץ ה-exe. אם אתה רוצה לקרוא את זה, משתמשים בתוכנת disassembler שלוקחת את המספרים האלה ומתרגמת אותם בחזרה לפקודות (התרגום הוא חד חד ערכי, כלומר לכל פקודה יש ערך מספרי ואין שתי פקודות עם אותו ערך). אף אחד לא פותח קובץ exe ב-hex editor.

פורסם

גם קוד אסמבלי מסויים יעבוד בצורה אחת עם ארכיטקטורה ומסויימת ובצרה אחרת על אחרת לכן התוצאות הן לא אחידות.

פורסם
  • מחבר

גם קוד אסמבלי מסויים יעבוד בצורה אחת עם ארכיטקטורה ומסויימת ובצרה אחרת על אחרת לכן התוצאות הן לא אחידות.

אתה מתכוון שכל קומפיילר ממיר את זה בצורה קצת שונה אז התוצאה הסופית לא תיהיה שווה?

השגתי איזה גרסאת ניסיון של תוכנה בשם pe explorer, היא יודעת לעשות את הdisasmbler. מסתבר שלוקח לה אבל המון זמן להחזיר את זה בחזרה.

פורסם

אל תצוטט תגובות מעליך.

אני בכלל מדבר עוד על השלב של לפני הקימפול.

פורסם

אל תצוטט תגובות מעליך.

אני בכלל מדבר עוד על השלב של לפני הקימפול.

למה? :facepalm:

אל תתנשא, יש הרבה הודעות בפוסט ומאיפה לאנשים לדעת למי הוא מגיב בידיוק ... אז מה אם זה הודעה מעליו?

פורסם

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

פורסם
  • מחבר

לדעתי יותר קל להבין ככה למה התכוונת.

זה לא תמיד ברור שזה ההודעה מעל.

פורסם

אבל כשזאת הודעה מתחת ולא ציינת כלום זה ברור מעליו.

פורסם

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

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

ארכיון

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

דיונים חדשים