עבור לתוכן

המרת קוד ב-C לקוד באסמבלר

Featured Replies

פורסם

אפשר לדעת מה אתה מנסה לעשות ?

  • תגובות 34
  • צפיות 9.2k
  • נוצר
  • תגובה אחרונה

משתתפים בולטים בדיון

פורסם
  • מחבר

אפשר לדעת מה אתה מנסה לעשות ?

הסברתי מלא פעמים..תסתכל בהודעות הקודמות...

פעם אחרונה : אני מחפש תוכנה אשר אני אתן לה קוד בשפת C והיא תהפוך לי אותו לקוד בשפת אסמבלי (=אסמבלר/שפת סף) כך שאני אוכל לראות את הקוד עצמו...

עכשיו זה ברור?

פורסם

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

פורסם
  • מחבר

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

ללמוד ולהריץ דרך קומפיילר של אסמבלר?

פורסם

אני מניח שאתה רוצה לראות את הקוד של ה C ושל ה ASM אחד ליד השני בשביל לראות את ההרצה תוך כדי. ב Visual C פלוס פלוס ניתן להריץ את הקוד ובזמן debug לראות את השורות C במקביל.

יש גירסא חינמית של זה באתר של מיקרוסופט תחת visual studio express edition?

פורסם
  • מחבר

אני מניח שאתה רוצה לראות את הקוד של ה C ושל ה ASM אחד ליד השני בשביל לראות את ההרצה תוך כדי. ב Visual C פלוס פלוס ניתן להריץ את הקוד ובזמן debug לראות את השורות C במקביל.

יש גירסא חינמית של זה באתר של מיקרוסופט תחת visual studio express edition?

יש עוד תוכנות חימיות כמו Visual C++ Express?

פורסם

יש את הסביבה של GNU שהיא גם הרבה יותר קטנה, אבל הרבה יותר מסובכת. תסתכל על ה tutorial הזה שמסביר את זה:

http://www.youtube.com/watch?v=LsES5FFjxXQ

פורסם
  • מחבר

++Visual C אתה יכול להוריד בחינם מהאתר של מיקרוסופט (חפש Visual C++ Express).

את חלון ה-disassembly אתה יכול להציג רק בזמן שהאפליקציה רצה - אתה שם breakpoint בנקודה מסויימת בקוד, ואז כשהתכנית עוצרת שם אתה יכול לעשות debug > windows > disassembly (או משהו כזה, יכול להיות שזה יהיה תחת תפריט אחר בגרסאות שונות של VS).

אופציה אחרת היא static disassembler, שזה תוכנה שמאפשרת להסתכל על האסמבלי של קובץ exe בלי להריץ אותו. תוכנות לדוגמה הן IDA ו-Ollydbg.

הורדתי Visual C++ Express,העלתי את הקובץ,יצרתי breakpoint ולאחר מכן ביצעתי debug חיפשתי ולא מצאתי את ה- disassembly..

איפה האפשרות יכולה להימצא?

פורסם

נסה

Tools- > Options -> Debugging- > General -> Enable Address Level Debugging"

פורסם

ניראה לי בזבוז זמן לנסות ליראות מה זה יכתוב לך ב ASM, לא יותר קל לכתוב ישר ב ASM או לבקש עזרה ממישהו :P בכל מקרה אם אתה רוצה לעשות משהו ב ASM כל מה שצריך לעשות זה לפשט את המחשבות שלך, שפה מאוד בסיסית :nixweiss:

פורסם

Debug -> Windows -> Disassembly

יופיע לך רק כאשר אתה נמצא ב Debug ולא Release וכאשר אתה מריץ את הקוד.

פורסם

הקוד לא יצא בדיוק אותו הדבר.

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

אם בכל זאת אתה מתעקש יש תוכנה שקוראים לה W32DASM.

אחרי הקומפילציה פתח את הקובץ שנוצר (כל סוג קובץ) ותראה אותו באסמבלי.

פורסם

אפשר לבטל את האופטימיזציות (וכאשר מקמפלים DEBUG הוא מבטל לפחות חלק מהם).

פורסם

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

ב-visual studio זה מתחבא איפשהו ב-project settings. אם אני זוכר נכון: C / C++ Settings -> Output Files או משהו דומה.

פורסם
  • מחבר

הקוד לא יצא בדיוק אותו הדבר.

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

אם בכל זאת אתה מתעקש יש תוכנה שקוראים לה W32DASM.

אחרי הקומפילציה פתח את הקובץ שנוצר (כל סוג קובץ) ותראה אותו באסמבלי.

איך אני מתשמש ב-W32DASM ?

ארכיון

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

דיונים חדשים