שְׁאֵלָה:
האם יש דרך לשחזר פקודות מאקרו מקוד מהול?
baordog
2013-06-01 02:10:43 UTC
view on stackexchange narkive permalink

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

למרות שנראה שהתשובות סמכותיות ב"לא ", אני לא מבינה את הסיבה מדוע לא ניתן היה לכתוב מערכת תרגום כזו כדי להתאמץ לפחות. בלב, חשוב על כך כהחלפת טקסט המתנהלת * לפעמים * הפיכה. אם המאקרו שלי מבצע החלפה של "abc" -> "x" ו- "def" -> "x", אז כשאני רואה "x" זה יכול להיות "abc" או "def" או סתם "x". רַע. אולם בפועל זה עובד בדרך אחרת כאשר המחרוזת הגדולה והייחודית יותר נמצאת בדרך כלל בצד ימין. אז אני מתאר לעצמי שאולי יהיו * כמה * סיטואציות שניתן היה לזהות.
כשכתבתי את הפוסט חשבתי יותר על סוג של מקום היוריסטי, כמו אם ראית פיסת קוד שנראתה כאילו הועתקה באופן התואם את אופן הטיפול של המהדר במאקרו. בדיעבד זה יהיה די קשה / בלתי אפשרי.
שתיים תשובות:
Rolf Rolles
2013-06-01 02:32:54 UTC
view on stackexchange narkive permalink

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

ואתה יכול גם לשכוח מהידור מותנה.
nomilk
2013-06-09 05:54:51 UTC
view on stackexchange narkive permalink

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

.


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