PDA

View Full Version : invisible finder



dr_csharp
چهارشنبه 17 بهمن 1386, 08:59 صبح
سلام دوستان
چطور میتونیم یک Invisible Finder ( با دریافت Yahoo ID ، مخفی بودن یا online بودن اونو چک میکنه ) برای وب سایتمون پیاده سازی کنیم ؟
تا جاییکه من میدونم کافیه با ID مورد نظر یک packet ( در قالب مشخص ) ساخته بشه و به سمت Yahoo Messenger ارسال شه ! از دوستان هرکس راجع به ساختار packet مورد نظر و نحوه ی انجام کار اطلاعاتی داره ممنون میشم ارایه کنن ! :لبخندساده:

dr_csharp
چهارشنبه 17 بهمن 1386, 16:21 عصر
تا اینجا چیزایی که فهمیدم :
یه query با استفاده از پروتکل YMSG به یاهو سرور فرستاده میشه که پاسخ این query برای ID های offline و invisible متفاوت هست .

dr_csharp
یک شنبه 21 بهمن 1386, 18:02 عصر
شرح پروتکل YMSG :

این پروتکل اکثرا تحت TCP انجام میشه ولی خوب گاها از پروتکل Http هم استفاده میکنه .
ساختار packet های این پروتکل بصورت زیر میباشد :





<------- 4B -------><------- 4B -------><---2B--->
+-------------------+-------------------+---------+
| Y M S G | version | pkt_len |
+---------+---------+---------+---------+---------+
| service | status | session_id |
+---------+-------------------+-------------------+
| |
: D A T A :
| 0 - 65535* |
+-------------------------------------------------+


در دیاگرام فوق هر بایت با 5 فضای خالی مشخص شده است و در پایان | قرار گرفته است.

dr_csharp
یک شنبه 21 بهمن 1386, 18:42 عصر
YMSG ابتدای تمام packet ها میاد و مشخص کننده ی نام پروتکله و 4 بایت اول به این اختصاص داره .
Version ، چهار بایت بعدی هست که مشخص کننده ی شماره ی نسخه پروتکل استفاده شده میباشد.
pkt_len دوبایت بعدی رو به خودش اختصاص میده و مشخص میکنه که در قسمت Data چند بایت قرار گرفته و ارزش اون از 1000 بیشتر نمیشه .
Service ، یک upcode ( آشنا با دستورالعمل ، مترجم )هست که مشخص میکنه کلاینت یا سرور متقاضی یا پاسخگوی چه سرویسی هست ( تا حالا 45 تا سرویس یا شایدم بیشتر شناخته شده )

معذرت میخوام , دیگه باید برم ، در اولین فرصت بقیه قسمت ها رو هم مینویسم .
راستی دوستان هم اگه کمک کنن ممنون میشم :O)

raravaice
یک شنبه 21 بهمن 1386, 20:15 عصر
سلام

dr_csharp (http://barnamenevis.org/forum/member.php?u=49661) عزیز
خوشم میاد دنبال چیزه الکی نیستی و میخوای مسئله رو از ریشه بررسی کنی منم یه لینک واست این زیر میزارم که به کارت سرعت ببخش امیدوارم که شما وقتشو داشته باشی سورسشو یه باز نگری کنی و اطلاعاتی که از این پروتکل گرفتی رو همینجا به صورت روتین شده بزاری.

http://www.codeproject.com/KB/vb/YCC_Trainer.aspx
-------------------------------------------------------------------------
منبع : دوست عزیزمون sinpin
http://barnamenevis.org/forum/showthread.php?t=70350

منتظر تجزیه تحلیلت هستم
موفق باشی

dr_csharp
سه شنبه 23 بهمن 1386, 09:39 صبح
سلام دوباره و تشکر از توجه دوستان خصوصا raravaice عزیز :لبخندساده:
امروز به بررسی سرویس های شناخته شده می پردازیم :




01 User Online
02 User Offline
03 Friend Away
04 Friend Available
06 Instant Message
07 User Away
0A Friend Status
0B Mail
0F Friend List Changed
12 Secondary Ping *
15 IMVironment Setting
17 Invite Failed
18 Conference Invite
19 Conference Accept
1A Conference Text
1B Conference Message
1E YCHT User Online
1F YCHT User Offline
20 YCHT Private Message
46 File Transfer Upload
4A Voice Invite
4B Notification
4C Initiation
4D Extra Features
54 Challenge String Reply
55 Login Data
57 Challenge String Request
83 Add Friend
84 Remove Friend
85 Ignore
96 Request Room
97 Go To Room
98 Join Room
9B Leave Room
9D Invite
A0 Logout
A1 Primary Ping
A8 Chat Message


توجه داشته باشید که کدهای بالا بصورت Hex تعیین شده اند .
شرح بیشتر سرویس 12 : وقتی کاربر login میکنه یه همچین پکتی از Yahoo دریافت میکنه که بازه ی زمانی که کاربر ping میشه رو مشخص میکنه ، احتمالا در فیلد 144 این بازه برحسب دقیقه مشخص میشه و در فیلد 143 ، primary ping بر حسب دقیقه مشخص میشه .

در پست بعدی به بررسی بخش های status ، session id و DATA میپردازم .
تا پست بعدی یا حق :O)

khazon
دوشنبه 13 خرداد 1387, 14:24 عصر
با سلام
مقاله ی جالبی بود ولی متاسفانه دوست عزیزمون اونو ناتمام گذاشتن و ای کاش دوستان میتونستن کاملش کنن ...

KAVEH_RBT
چهارشنبه 22 خرداد 1387, 01:08 صبح
با سلام به دوستان
من 2 ساله که این کار را دارم انجام میدم
چند تا نکته ذکر میکنم شاید به شما هم در رسیدن به راه حل این مسئله کمک بکنه
من کد و روش دقیق ذکر نمیکنم چون اعتقاد دارم اگه با فکر خودتون به نتیجه برسید خیلی مفید تر از این که من کل داستان را بگم (خودم هم روش این کار با آزمایش و فکر پیدا کردم)
www.kikeykoja.com
Y!robot: kikeykoja_robot

بحث پروتوکل YMSG را خوب شروع کردین و باید در عمل با اون بیشتر کار کنید
نکته: شما از سرور یاهو به هیچ عنوان نمیتونید جواب مستقیم بگیرید که آیدی در چه وضعیتی قرار داره
باید راهی پیدا کنید که غیر مستقیم به جواب برسید من تا الان چندین راه مختلف پیدا کردم ولی عموما یاهو در فواصل زمانی مختلف این در واقع نقاط ضعف خودش را ترمیم میکنه و باید راه جدیدی پیدا کرد که همیشه هم پیدا میشه (راه حل پایدار خیلی کم وجود داره)
راهنمائی: سعی کنید رفلکس آیدی های off و on را در مقابل packet های مختلف که به اونها سند میکنید بسنجید مثلا در مقابل یه invite . یاهو در مقابل پاکت های ارسالی شما در شرایط خاص رفلکس های مفیدی از خودش نشون میده که میشه با آنالیز اونها یه الگریتم جدید برای کشف راه حل مسئله پیدا کرد توجه کنید که معمولا سرور یاهو نسبت به پاکت های استاندارد رفلکس به درد بخوری نشون نمیده.

در شروع کار شاید خیلی گنگ و پیچیده به نظر برسه ولی با کمی تلاش به نتیجه میرسید
من اولین بار در حال طراحی همون روباتی که در بالا آیدی اون را نوشتم به یه رفلکس جالب برخوردم که بوسیله اون توانستم روباتم را به invisible finder مجهز کنم
راه حل این مسئله در حال حاضر خیلی انحصاری شده بین 4 تا سایت که هر کدوم هم الگریتم خودشون را دارن
این کار نسبتا سنگینه ولی ارزش وقت صرف کردن را داره و مطمئن هستم اگه کسی واقعا وقت بذاره و تلاش بکنه به نتیجه خواهد رسید. رفرنس فارسی مناسب هم پیدا نمیشه به انگلیسی بیشتر تکیه کنید . دنبال راه مستقیم و پیدا کردن کد این کار هم نباشید چون نیست.
خوش و خرم باشید
کاوه عبداللهی

shahab_ksh
چهارشنبه 22 خرداد 1387, 01:16 صبح
این روش شما کاربر رو خبر میکنه که یکی داره اون رو میپاد با ارسال اون پیام به مسنجرش !

KAVEH_RBT
پنج شنبه 23 خرداد 1387, 12:36 عصر
با سلام
حرف شما صحیح ولی این روش بزرگترین مزیتی که داره اینه که 100% پایداره و هیچ وقت به این زودی بسته نمیشه
در ضمن من فقط خواستم یه الگوی فکری به شما در مورد روش کار بدم نه راه حل ولی گویا شما فقط اون چیزی که تو فکرتون هست را جستجو میکنید من بعد 2 سال در نهایت این روش را انتخاب کردم چون پایداره و مثل سایت های دیگه مثلا xeeber و invisible.ir که تمام وقت از مدار خارج هستن نباشم چون دیگه وقت زیادی برای دنبال سوراخ جدید گشتن ندارم
شما هم اگر دنبال همچین کاری هستین باید خیلی تلاش کنید و مطمئن باشید در یه همچین تاپیک هائی جواب مستقیم پیدا نخواهید کرد
موفق باشید
کاوه عبداللهی