View Full Version : تغییر آدرس IP مبدا
nilidelphi
یک شنبه 23 اسفند 1388, 10:34 صبح
با سلام خدمت دوستان
من می خوام یه برنامه بنویسم که در آن وقتی یک پکت در شبکه منتشر می کنم (حالا چه با TCP/IP و چه با UDP ) نذارم آدرس IP سیستم خودم تو پکت جا سازی کنه و آدرسی در پکت بذاره که من می خوام.
کسی می تونه کمکی بهم بکه؟
خیلی حیاتی هاااااااااااااااااا
با تشکر..!!
vcldeveloper
یک شنبه 23 اسفند 1388, 13:19 عصر
اختصاص IP به Packet در لایه های پایین صورت میگیره. شما در سطح یک Application معمولی به آن لایه ها دسترسی ندارید. باید یک درایور سطح کرنل داشته باشید که بتونه Packetها را برایتان تغییر بده.
اگر همچین چیزی ندارید، یا نمی تونید بنویسید، باید برید سراغ همان نرم افزارهای Proxy؛ یعنی برنامه شما داده مربوطه را به سرور Proxy ارسال کنه، و سرور Proxy از طرف شما داده را به سرور اصلی ارسال کنه.
nilidelphi
جمعه 06 فروردین 1389, 15:17 عصر
ممنون از آقاي كشاورز بابت جوابتون
ولي اين چيزي نبود كه من ميخواستم؟
من مي خوام آدرس مبدا رو عوض كنم به عبارت ديگه مي خوام به داده هايي كه از برنامه ي خودم ارسال ميشه حمله كنم حالا مي خوام بدونم چطور ميشه اين كارو كرد؟
راستش ميخوام پكتي كه آمادهي ارسال شده ولي هنوز از طرف برنامه ي من ارسال نشده رلو بصورت بيت به بيت بررسي كنم و آدرس مبدا رو تغيير بدم.
راستي روش ارسال به پروكسي رو هم اگه بشه بيشتر توضيح بدين.
با تشكر.
bluewater
جمعه 27 فروردین 1389, 13:42 عصر
من یه نظر دارم اگه بشه از آی پی های که موقتا استفاده نمیشه استفاده کنی دیگه مشکل گم شدن بسته ها رو هم نداری:متفکر:
khazaie01
یک شنبه 29 فروردین 1389, 16:02 عصر
ممنون از آقاي كشاورز بابت جوابتون
ولي اين چيزي نبود كه من ميخواستم؟
.
سلام دوست عزیز
چرا دقیقا این همون چیزی هست که شما میخواین !
شما میخواهید برنامه ای بنویسید و یک پکت را بفرستید اما نمیخواهید آیپی خودتان داخل بسته باشد ! یعنی میخواین آیپی فرستنده را عوض کنید ...
جواب آقای کشاورز هم دقیقا خواسته شما بود
شما چون در سطح لایه اپلیکیشن برنامه نویسی می کنید نمیتوانید آدرس فرستنده را عوض کنید ...
من خودم دنبال همچین کاری هستم http://barnamenevis.org/forum/showthread.php?t=202538
البته من که از دلفی نا امید شدم رفتم سراغ پایتون :لبخندساده:
vcldeveloper
یک شنبه 29 فروردین 1389, 20:11 عصر
البته من که از دلفی نا امید شدم رفتم سراغ پایتونیعنی انتظار دارید یک زبان Interpreterایی که در لایه ایی بالاتر از دلفی کار میکنه براتون کار Low-levelایی که در دلفی ازش نامید شدید رو انجام بده؟!!
مثل این هست که شما بگید برای نوشتن درایور سطح کرنل از C و ++C نا امید شدید، و رفتید سراغ JavaScript!!!
khazaie01
دوشنبه 30 فروردین 1389, 08:44 صبح
یعنی انتظار دارید یک زبان Interpreterایی که در لایه ایی بالاتر از دلفی کار میکنه براتون کار Low-levelایی که در دلفی ازش نامید شدید رو انجام بده؟!!
ممنووووووووون دوست عزیز
درسته اما تو دلفی برای همچین کاری مطلب خیلی کم بود و برعکس با همین زبان سطح بالا ماژول های زیادی نوشته شده (مثل Scapy یا dpkt ) ... مخصوصا Scapy واقعا ماژول عجیبی هست !
من تو هر 2 زبان تازه کارم مخصوصا پایتون ! شاید به دلیل تازه کار بودنم تو دلفی نتونستم این کار را انجام بدم !
بازم ممنووووووووووون
vcldeveloper
دوشنبه 30 فروردین 1389, 17:12 عصر
درسته اما تو دلفی برای همچین کاری مطلب خیلی کم بود و برعکس با همین زبان سطح بالا ماژول های زیادی نوشته شده (مثل Scapy یا dpkt ) ... مخصوصا Scapy واقعا ماژول عجیبی هست !
این ماجول ها فقط یکسری کارها را برایتان آسان می کنند، نه اینکه بتونند محدودیت های یک زبان Interpreterایی در دسترسی به یک سری منابع سیستم را دور بزنند.
کسی اگر بخواد در ویندوز با همچین چیزهایی کار کنه، بهتره از C یا ++C استفاده کنه. همون کتابخانه هایی که برای پایتون ازشون نام بردید هم در واقع مجبورند از libpcap و امثال آن استفاده کنند، یعنی باز هم خودشان مستقیما نمی تونند کار مربوطه رو انجام بدند، و رابطی هستند برای یک ابزار سطح پایین تر.
khazaie01
دوشنبه 30 فروردین 1389, 17:34 عصر
درسته ماژول Scapy برای اجرا توی ویندوز به Winpcap نیاز داره ...و .... تمام این ها را میدونم ...
اما بحث این نیست ! من نگفتم پایتون کار زبان C را انجام میده ! میگم در این رابطه من دنبال نمونه مثال برای دلفی بودم خیلی هم گشتم اما چیزی پیدا نکردم ! لا به لای سرچ ها به نمونه سورسی برخوردم که با پایتون نوشته شده بود ! بعد دنبال مثالهای برای زبان پایتون گشتم ، دیدم واقعا در رابطه با شبکه مثال زیاد داره ، از اونجا شد که مجبور شدم پایتون را یاد بگیرم !
اینجا بحث مقایسه بین دلفی و پایتون نیست ! اصلا قابل مقایسه نیستن پایتون را میشه تا حدودی شبیه جاوا دونست !
بازم میگم بحث اصلا این چیز ها نیست ! من تو بخشی از برنامه نیاز دارم که یک بسته اطلاعاتی را روی شبکه ارسال کنم و تک تک فیلدهای بسته را خودم مقدار بدم ! خوب دنبال این موضوع گشتم اما چیزی پیدا نشد ! با این حال زبان پایتون ماژول هایی را برای این کار داشت (یا زبان های دیگه مثل C/C++ ) درسته که این ماژول ها مستقیما کار یک درایور شبکه را انجام نمیدن ! اما به هر حال کار می کنند ! حالا به هر شکل !!
اما هرچی گشتم نمونه سورس یا کامپوننتی برای این کار در دلفی پیدا نکردم،البته با کامپوننتی که معرفی کردید تا حدودی با WinPcap کار کردم اما بازم نتونستم بسته ارسال کنم یا فیلتر کنم و....
هنوز هم هر چند وقت یک بار دوباره برای دلفی سرچ می کنم اگر با دلفی این کار را انجام بدم بی شک راحت تر از پایتون (برای من که باید پایتون را یاد بگیرم) خواهد بود !!
ممنووووووووووووووووون
raravaice
دوشنبه 30 فروردین 1389, 18:19 عصر
@khazaie01 (http://barnamenevis.org/forum/member.php?u=63416) بنده تا به حال با ذلفی کار نکردم ولی برام این موضوع عجیبه که وقتی این کار در چهار چوب کاری دات نت VB.net و #C به راحتی انجام میشه چطور در دلفی امکان پذیر نیست؟
نکته اینجاست که این روش فقط در شبکه داخلی خودتون کار میکنه و نباید توقع داشته باشی که روی اینترنت هم کار کنه.
موفق باشیذ
Felony
دوشنبه 30 فروردین 1389, 19:03 عصر
@khazaie01 بنده تا به حال با ذلفی کار نکردم ولی برام این موضوع عجیبه که وقتی این کار در چهار چوب کاری دات نت VB.net و C# به راحتی انجام میشه چطور در دلفی امکان پذیر نیست؟
کسی نگفت با دلفی امکان پذیر نیست ، ایشون گفتن نمونه کد و مثال برای این کار تحت دلفی زیاد پیدا نمیشه ( منابع برای این کار کمه ) .
khazaie01
دوشنبه 30 فروردین 1389, 19:33 عصر
@khazaie01 (http://barnamenevis.org/forum/member.php?u=63416) بنده تا به حال با ذلفی کار نکردم ولی برام این موضوع عجیبه که وقتی این کار در چهار چوب کاری دات نت VB.net و C# به راحتی انجام میشه چطور در دلفی امکان پذیر نیست؟
نکته اینجاست که این روش فقط در شبکه داخلی خودتون کار میکنه و نباید توقع داشته باشی که روی اینترنت هم کار کنه.
موفق باشیذ
انجام نشدن این کار با دلفی فقط به دلیل کم بودن بار علمی من در ضمینه دلفی است ! صد در صد با دلفی میشه ولی من نتونستم پیدا کنم !
ممنوووووووووون دوست عزیز در مورد کار کردن در شبکه محلی و ... تقریبا میدونم چی به چیه هر چند که تو شبکه واقعا تازه کارم :لبخندساده: ....
! باز هم ممنوووووووووووووووووووووو وون:لبخندساده:
raravaice
سه شنبه 31 فروردین 1389, 17:11 عصر
خوب شما از API Winsock استفاده کن و یک نمونه SOCK_RAW بساز و مقادیر IPPROTO و غیره را بر اساس نوع پروتکل TCP,UDP,ICMP خودت مقدار دهی کن توی این مدل از سوکت تنها مقداری که توسط سیستم عامل جایگزاری میشه MAC ADDRESS هست.
فقط یه نکته ریز اینه که مقدار SocketOption باید براش تعریف کنی که مقادیر مربوط به قسمت IP رو خودت include میکنی.
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.