ראשי > תיכנות > עזרה בשפת c מקשים
והשאלה השניה זה ההפך לדוגמה שכשאני יפעיל את התוכנית זה לבד יקיש על המקש מקווה שהייתי יותר ברור הפעם!!!
שמה אני לא יודע עם אתה מודה לזה או לא אבל למקש TAB לא ככה שמו במערכת
יש לו קוד מסויים
ומה שאתה רוצה זה אפשרי רק אם תתחיל להגיד לו כול קוד שווה למה...
וזה סתם הרבה זמן
ואת החלק השני לא ממש הבנתי מזאת אומרת שהוא ילחץ לבד...?
אתה רוצה לעשות תוכנה שתפעיל תוכנה אחרת על ידי לחיצה, אני משער שאתה רוצה לעשות את זה בסיגנון טריינרים כלומר שלא יראו את התוכנה או שמכל חלון שאתה נמצא בו כרגע המקש יפעיל את התוכנה.
אני צודק?
ולגבי החלק השני אני מתכוון נגיד כמו
התוכנה הזאת
http://planet.nana.co.il/urielh/Klick0r.rar
שלוחצת הרבה פעמים על מקש מסוים אני רוצה לעשות משהו דומה זה הכוונה שלי תודה רבה רבה לעוזרים!!!!
דברים כאלו משתמשים ב WINAPI שאין את זה בטורבו.
אפשר לעשות את זה דרך מהדרים אחרים כמו visual c או devcpp.
אם המקש שהוכנס שווה לקוד אסקי אז .. לא יודע :\
אין כזה דבר לא יכול ומי שאומר את זה כנראה אין לו מושג איך עובד המחשב
אתה צריך לשנות את פסיקת המקלדת, לקלוט מה התו ולהוסיף את קטע הקוד שלך שירים דגל במקום ידוע בזכרון ברגע ביצוע הפסיקה . משם הפונקציה שלך בעזרת קוד אסמבלי קטן תופעל ע"י פסיקה וירטואלית לכתיבה לאזור קוד מסויים
אנחנו פה חיים על windows xp!
אין דבר כזה assembly אמיתי ואין לך גישה אמיתית לזיכרון.
היום כל מה שאתה יכול לעשות זה להשתמש ב WINAPIs אם אתה משתמש בוינדוס.
ולגבי התוכנה המוסתרת, אם ברצונך להסוות את התוכנה, הקוד:
קוד:
HWND stealth; /*creating stealth */
AllocConsole();
stealth=FindWindowA("ConsoleWindowClass",NULL);
ShowWindow(stealth,0);
(נ.ב. צריך את ספריית windows.h )
אתה יכול לנסות כמה דברים אחד, תנסה ל-כ-ת-ו-ב ל stdin (אני בספק שזה יעבוד)
משו בסגנון:
קוד:fwrite(stdin, 1, 4, "abcd");
עם הרבה תפילה, מה שיקרה זה שבמקום שאתה תקרא מהבאפר של המקלדת אתה תכתוב אליו...
אם זה לא עובד אתה יכול לגשת איכשהוא לבקר המקלדת ולשתול שמה מקשים אני חושב
או לבאפר של דוס של המקלדת ושמה לשתול מקשים אני כבר לא זוכר חושב שעשיתי פעם...
גוגל - מענה לכל תחלואותיך
אתה יכול לעקוף את זה. ולהריץ את הקוד שלך עוד לפני שהוינדוס עולה ואח"כ להגן עליו שהמערכת הפעלה לא תוכל לשנות את האזור הזה. אבל זה באמת קצת סיבוך .... רק אל תגיד אי אפשר אם אתה לא יודע איך
.... רק אל תגיד "רק אל תגיד אי אפשר אם אתה לא יודע איך" אם אתה לא יודע שבאמת אי אפשר...
בלי קשר, אשמח אם תדגים את מה שאמרת כרגע בהודעה ...
אתה צריך להכניס את הקוד שלך לביוס .. את זה אתה יכול לעשות מווינדוווס .. להגדיר טבלת דפים משלך ולהגדיר דף אחד מסוג הרשאות הפוך ככה שרק אפליקציות יכולות לגשת אליו ולא מערכת הפעלה. שם אתה דןחף את הוקטור שמצביע לטבלת הפסיקות. לאחר מכן אתה צריך לדאוג ששאר הפסיקות לא ישתנו .. כלומר שיהי וקטור כמעט זהה למקורי ששמור במקום שבו מערכת ההפעלה תעבוד. לא אמרתי שזה קל ... כולה אמרתי שזה אפשרי.
לא לגמרי הבנתי למה אתה מתכוון ממש גם...
מה בידיוק הכוונה שלך במה שאמרת, הבנאדם ביקש לעשות 2 דברים:
1. לשתול בעצמו הקשות על המקלדת
2. לאפשר לתוכנית לקלוט לחיצות מקשים מכל חלון (כמו שווינאמפ וסקייפ עושים - Global hotkeys)
(זה לפחות מה שלי נדמה שהוא ביקש)
וגם אם פתרת לו את הבעייה, מה שאמרתי בהודעה המקורית שלי, נכון, עדיין טורבו C++ לא נועד לחלונות, ולכן לא יוכל לקרוא ל Windows API[ההודעה נערכה על-ידי HLL ב-24/10/2006 13:54:32]
החלק של החלפת וקטור הפסיקות או החלפת הסגמנט לסגמנט שלא יתן הרשאות למערכת ההפעלה(זה הכי קשה כי כאן אתה אמוטר להחליף חלקית את מערכת ההפעלה). תכלס לא קשה אבל הוא אמור לרוץ לפני שמערכת ההפעלה קבעה סגמנטציה משלה(טבלאות דפים אני מתכוון) כי אחרי זה אתה כבר לא תוכל לעשות כלום.
למה צריכים לעשות כזה דבר?
קצת קשה לי לחבר אחד ועוד אחד מה שאתה אומר, מה המטרה בידיוק במה שאתה מתאר לי, האם זה:
- להריץ קוד RM לפני שמערכת הפעלה עולה?
- להריץ אפליקציה במקביל לחלונות, שלחלונות לא תהייה גישה אליו?
או שאני בכלל לא בכיוון?
לפי מה שאני יודע, מערכות x86 למרות שזה אפשרי לקבוע סיגמנטציה, הם לא. הם משתמשות ב Flat memory model במקום, ובדפים ווירטואלים (והMMU כמובן) כדי לתרגם כתובת לוגית לכתובת לינארית(=פיזית);
איפה ווקטור הפסיקות נכנס בכל העניין, אתה יודע שווקטור הפסיקות ב RM לא עובד בכלל כמו ב PM...
תן לי לינקים לחומר שיש לך בנידון - בכלל - בכל התהליך שניסית ליצור פה, או תסביר לי מה בידיוק אתה מתכוון, זה נשמע מעניין...
אתה עדיין יכול ליצור עמודים שלמערכת הפעלה לא תהיה אליהם גישה. הווקטור כמו שהיה בפנטיום1 ככה נשאר עד היום. ונשמע לי שהבנת את התהליך... אההה וד"א כתובת לינארית אינה כתובת פיסית.
ולינקים זה עניין בעייתי זה חסוי :)
לא לא ממש הבנתי את הרעיון, וגם לא הבנתי את המטרה ... אני יודע קצת על איך שמנגנון ה Paging עובד, תוכל אולי להסביר לי בפרטי או בIRC...
ווקטור הפסיקות הוא לא אותו דבר שהיה בבמחשבים הראשונים (דהיינו 0:0) הוא יכול להתחיל מכל נקודה, וכבר המבנה של segment.offset כבר לא קיים ולא תופס תחת x86.
אם אתה רוצה עוד מידע דבר איתי ביום רביעי לא בערב באייסי 112084625 אז אני אהיה בעבודה ואוכל לבדוק דברים
--- טוב ---
-הודעה לכל קוראי הטופיק,-
בתור מישהוא שקרא (אומנם לא ביסודיות) את ארכיטקטורת אינטל x86 ומכיר גם את הסדרה שקדמה לכך של המעבדים של אינטל (8086\88 - כמו שהרבה פה גם מכירים) אני גאה להודיע שמה ש
hashashin אמר בכמה תגובות אחרונות אינו הגיוני - חסר כל בסיס - ונראה כמו אוסף של מילים שאכן נלקחו מהמפרט של אינטל, אבל אז הוכנסו לבלנדר ונטחנו טוב טוב עד שהפכו לעיסה חומה ודביקה .
יום טוב ;)
הלל.