Logo

רד-בורד: ארכיון

ראשי > תיכנות > שאלה לגבי סוקטים בשפת תכנות אסמבלי

19/01/2005 20:39:14 Nameless
אפשר להתחבר לסוקטים עם שפת תכנות אסמבלי?
ורק איתה (בלי C או C++ וכו’)?
22/01/2005 06:35:31 phax
are you crazy?!
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..
22/01/2005 14:18:50 Nameless
מישהו יודע בברור אם אפשר להשתמש בסוקטים באסמבלי בלי קוד בפסקל או ב C ?
חיפשתי כבר בגוגל וריאציות שונות של המילים : אסמבלי, סוקטים, ותיכנות בעברית ואנגלית!!!

מי שמוכן לעזור מבורך... לינק למקום שאומר שיש סוקטים באסמבלי ואיך להשתמש בהם יעזור מאוד...אבל תשובה של כן או לא תהיה מבורכת באותה מידה...[ההודעה נערכה על-ידי Nameless ב-22/01/2005 14:20:01]
22/01/2005 22:35:35 phax
therer’e asm sockets..
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..
23/01/2005 16:05:12 ziv
כל דבר שאתה יכול לכתוב בכל שפה שהיא
תוכל גם לכתוב באסמבלי. משמע: כן יש סוקטים אבל זה כל כך ארוך ומסורבל שפשוט חבל להתאמץ....
24/01/2005 03:19:46 silicon_wolf
לא ארוך.
לא מסורבל.
לא מסובך.
וכווולכם זונות-כן! זונות!
אם לא הייתי מסטול עכשיו היינו בועל כל אחד ואחד מכם כמיטב המסורת ותשאלו את הוק-זה לא נעים..

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

עכשיו אין לי זין לכתוב מאמר אז תיאלץ לפרש בעצמך ואם יש לך שאלות תמצא מישהו שיענה לך כי אין לי זין כי אני במחזור עצבני וכאלה...
יאללה


קוד:
.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 דקות מחיי...
יום טוב.
ואגב אל תעשנו יותר ממה שאתם חושבים שאתם יכולים ...סתם עצה לחיים..
16/04/2005 22:10:02 CoDeR
תיכנות סוקטים באסמבלי לא כלכך מסובך...
אתה משתמש באותם פונקציות כמו בסי..
חוץ מכמובן האקסטרה של טעינת בDLLים
אבל זה לא כזה נורא...
21/04/2005 18:06:41 K4xZ
אני עכשיו לומד C מתקדם לסוקטים ואז לאסמבלי והסוקטים של אסמבלי..
מקווה שיהיה טוב!.. :)
לפי מה שאני מבין
מ siliwolf ומ CoDeR שזה קל :)
אז אתה תצליח
עמודים: 1