ורק איתה (בלי C או C++ וכו’)?
ראשי > תיכנות > שאלה לגבי סוקטים בשפת תכנות אסמבלי
asm sockets?!
what are we, at the dark age when everyone spoke binary ?!
from what i heard, therer’e asm sockets,
but as far as i heard, no one uses it, although there’s HLA
but, we’ve got c/cpp perl etc to do the job correclty/easily/faster/better/less knowledge/etc..
חיפשתי כבר בגוגל וריאציות שונות של המילים : אסמבלי, סוקטים, ותיכנות בעברית ואנגלית!!!
מי שמוכן לעזור מבורך... לינק למקום שאומר שיש סוקטים באסמבלי ואיך להשתמש בהם יעזור מאוד...אבל תשובה של כן או לא תהיה מבורכת באותה מידה...[ההודעה נערכה על-ידי Nameless ב-22/01/2005 14:20:01]
you can use them with the win32 asm api’s check out at the msdn and then search on google for stuff like this :
"the asm32 tut" etc..
תוכל גם לכתוב באסמבלי. משמע: כן יש סוקטים אבל זה כל כך ארוך ומסורבל שפשוט חבל להתאמץ....
לא מסורבל.
לא מסובך.
וכווולכם זונות-כן! זונות!
אם לא הייתי מסטול עכשיו היינו בועל כל אחד ואחד מכם כמיטב המסורת ותשאלו את הוק-זה לא נעים..
ועכשיו ניגש לעניין..סוקטים באסמבלי זה עניין פשוט מאוד ובלה בלה בלה
כל הדרוש הוא מוח - מצרך נדיר הנלקה (כן-פאסיב זונות) אצל רבים..
עכשיו אין לי זין לכתוב מאמר אז תיאלץ לפרש בעצמך ואם יש לך שאלות תמצא מישהו שיענה לך כי אין לי זין כי אני במחזור עצבני וכאלה...
יאללה
קוד:
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\wsock32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\wsock32.lib
נתחיל בשורה השלישית כי אם אתה לא מודע לראשונות אתה לא ראוי ןלשאול שאלות עילגות שבני ה14 בפורום לא יצליחו לענות עליהן...
השורה השלישית פשוט אומרת שיהיה הבדל בין קודש לחול ובין אות גדולה וקטנה...יש מבין?
הלאה יש כל מיני הדרס ושיט..רובם מתייחסים לאינטגרציה עם דיאללים אך יש כמה שקשורות לסוקטים של ווינדוס..משמע יהיה שימוש בAPI ,ואם אתה לא יודע מה זה אז תשאל את ג’וןג’ון אשר יצטט לך את התשובה מגוגל, של ווינדוס...את זה נרא ה בהמשך..אם אני לא אתעלף פה על השולחן...
קוד:
.data?
vwsadata WSADATA <>
sckt_handle dd ?
socadd sockaddr_in <>
available_data dd ?
hMemory dd ?
buffer dd ?
actual_data_read dd ?
IP dd ?
dd ?
dd ?
dd ?
פאק כתבתי את כל זה הא? כבוד לי...קיצר זה פשוט מאוד מאוד מאוד מאוד מאוד... IP מייצג מבנה נתונים של 16 סיביות (בייטים אומג) שתפקידן בין השאר לאגור את כתובת הייפי אליה ננוע...כל השאר תקרא במאמרים על רואו סוקטס כי אם אני אתחיל לכתוב פה זה יקח יותר מדי זמן בקצרה אנחנו בונים את הפאקט שישלח..הוא מורכב מדגלים שונים וכן ממבנה יחודי ומעניין שאותו אפרט בהזדמנות ..או שלא..
אז מה עשינו?
דחפנו ספריות שמורות להצהיר על סביבת ווינדוס,לקבוע קבועים ומבנים מסויימים כמו IP וכן להקל עלינו את בניית הפאקט...wsadata :| <---סאקס
בכל אופן יש לנו מקום לדחוף אליו אייפי ויש לנו מבנה כללי של פאקט ועכשיו נצטרך לעשות כל מיני דברים של אסמבלי (האר האר האר אקסודוס ילקה אותי על הביטוי הנ"ל) בשביל לנסות ולהתחבר אל מקום מרוחק...
השאלה הנשאלת היא-האם בא לי לכתוב על זה.והתשובה?לא
אז מה שנעשה זה:
קוד:
.code
jewsSuck:
push offset szKernel32
call GetModuleHandleA
push offset szRegServProc
push eax
call GetProcAddress
push 1
push 0
call eax
call GetCommandLine
סיפרתי לכם שאני שונא את תיבת ההודעה הזאת?
בכל אופן שורה ראשונה- מפנים מקום בכתובת זיכרון כלשהי (דרך הדיאלל של הקרנל שאחראי על הקצאת כתובות זיכרון איטיסי..)
אחרי זה משיגים את ההנדל שלך הפרוסס...נגיד שזה האיידי שלו למרות שזה לא..
שים לב שמשתמשים באפיס של הווינדוס פה אז מכיוון שאין לי מושג אם אתה רוצה את זה נקי נקי נקי נקי או ככה אני אמשיך עוד טיפה ואז אשלך אותך נחוי.
לאחר מכן נרשום את התהליך שלנו אי שם בגלקסיה...ת’אמת לפי דעתי זה מיותר אבל הRFC הוא אלוהים ואין לי ברירה אלא לקבוע שכן! חייבים לרשום את הפרוסס בזיכרון אור אלס.
עכשיו בגלל שהקוד הזה דפוק אנחנו משיגים את כתובת הזיכרון שדחפנו בשורה הראשונה רק עכשיו (תודה מייקרוסופט) מה שעושה את התהליך גיי בעליל..
עכשיו אנחנו הולכים להשתמש במשתנים ופונקצית בוליאניות..משמע משתנים\פונקציות המחזירים אמת או שקר בלבד...1 ו0 בהתאמה...
זיג הייל! עכשיו יש לנו תהליך שירוץ בלי בעיות לא ידרוס שום כתובת ולא יאנוס אף אחד ומשמע שלא ישגה. בויאקה בויאקה בויה בויאקה בויאקה היי!
קיצר עכשיו לילה ואין לי כוח בשיט.
כי פאק כפי הנראה יש לי עוד מה לכתוב בעניין..
אז אם אני בכיוון של מה שרצית תודיע לי ואני אשקול להמשיך...אם לא אז לך נחוי בגללך בזבזתי 61 דקות מחיי...
יום טוב.
ואגב אל תעשנו יותר ממה שאתם חושבים שאתם יכולים ...סתם עצה לחיים..
אתה משתמש באותם פונקציות כמו בסי..
חוץ מכמובן האקסטרה של טעינת בDLLים
אבל זה לא כזה נורא...
מקווה שיהיה טוב!.. :)
לפי מה שאני מבין
מ siliwolf ומ CoDeR שזה קל :)
אז אתה תצליח