امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Hendel
نویسنده پیام
crafcrab آفلاین
كاربر دو ستاره
**

ارسال‌ها: 216
موضوع‌ها: 79
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 42
( 33 تشکر در 31 ارسال )
ارسال: #1
Question  Hendel
سلام
من دوتا TEXTBOX دارم
یکیش یوزر میگیره
یکیش پسورد
حالا من وقتی هندل این رو بگیرم چه طوری میشه فهمید در حال حاظر هندل رو کدوم تکس باکس هست
تکس باکس یوزر یا تکس باکس پسورد ؟
۰۳-شهریور-۱۳۸۹, ۱۳:۱۲:۱۷
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #2
RE: Hendel
سلام.
اگه منظورت handle هست Text1.hWnd هندل تکس باکس رو میده.
۰۳-شهریور-۱۳۸۹, ۱۶:۰۷:۵۶
ارسال‌ها
پاسخ
crafcrab آفلاین
كاربر دو ستاره
**

ارسال‌ها: 216
موضوع‌ها: 79
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 42
( 33 تشکر در 31 ارسال )
ارسال: #3
RE: Hendel
از این کدی که گفتی کجا و تو کدوم API باید استفاده کنم
بزار یک مثال بزنم مثلا یاهو مسنجر رو فرض کنید:
یکیش یوزر یکیش پسورد
چجوری میشه فهمید الان تو کدوم تکس باکس هست
خوب ما هندل یاهو رو داریم
حالا میخواهیم هندل زیر مجموعه هاش رو (تکس باکس) رو بگیریم
از کجا و چه جوری میشه فهمید
هندل تکس باکس یوزر چیه؟
هندل تکس باکس پسورد پیه؟
۰۴-شهریور-۱۳۸۹, ۲۲:۵۰:۳۷
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #4
RE: Hendel
ببین مهندس هر کنترلی علاوه بر یک name یک classname هم داره شما با تابع GetClassName میتونی کلاس اون TextBox رو بگیری و بفهمی تو username هست یا Password

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۰۵-شهریور-۱۳۸۹, ۰۰:۱۶:۴۸
وب سایت ارسال‌ها
پاسخ
crafcrab آفلاین
كاربر دو ستاره
**

ارسال‌ها: 216
موضوع‌ها: 79
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 42
( 33 تشکر در 31 ارسال )
ارسال: #5
RE: Hendel
(۰۳-شهریور-۱۳۸۹, ۱۶:۰۷:۵۶)Payman62 نوشته است: سلام.
اگه منظورت handle هست Text1.hWnd هندل تکس باکس رو میده.

در رابطه با چیزی که گفته بودید ببخشیید سوتی دادمTongue :
نقل قول: از این کدی که گفتی کجا و تو کدوم API باید استفاده کنم
تو کد پراپرتی textbox

(۰۵-شهریور-۱۳۸۹, ۰۰:۱۶:۴۸)lord_viper نوشته است: ببین مهندس هر کنترلی علاوه بر یک name یک classname هم داره شما با تابع GetClassName میتونی کلاس اون TextBox رو بگیری و بفهمی تو username هست یا Password

من وقتی که یاهو فعال بود با :
کد:
Call GetCursorPos(mPoint)
مختصات موس رو گرفتم بعد
با تابع:
کد:
Call GetClassName(objectHwnd, objectClassName, Len(objectClassName))
بررسی کردم اسم کلاسی که موس روش هست چیه
براه Textbox اسمش کلاسش ThunderTextBox هست ولی اسم Texbox یاهو Edit بود خوب بگذریم
بعد یک شرط گذاشتم:
کد:
If InStr(1, objectClassName, "Edit") > 0 Then
چون وقتی موس رویه textuser یا textpass بره ClassName اون رو Edit میزنه
حالا باز همون مشکل وقتی برای هر دو میزنه Edit من از کجا بفهمم که کدومش User و کدومش Pass هست
البته با کد :
کد:
objectHwnd = WindowFromPoint(mPoint.x, mPoint.y)
معلوم میشه که هندل هر کدوم چیه ولی از کجا بفهمم این هندل مال کدومه ؟
۰۵-شهریور-۱۳۸۹, ۱۳:۵۶:۲۱
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #6
RE: Hendel
میتونین چک کنین ایا Editاز نوع passwordهست یا نه بایک sendmessage و EM_GETPASSWORDCHAR

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۰۵-شهریور-۱۳۸۹, ۲۳:۴۲:۵۲
وب سایت ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #7
RE: Hendel
سلام.
چرا کار رو سخت میکنی. این که بشینی تا موس بره رو پنجره یاهو کار درستی نیست.
شما یه حلقه بذار کل پنجره ها رو پیدا کنه. بعد از رو caption یاهو که همیشه عنوان Yahoo Messenger رو تو خودش داره بفهم که پنجره یاهو کدومه. بعد برو سراغ هندل های زیر شاخه یاهو. همیشه یه ترتیب خاصی تو به دست اوردن هندل ها وجود داره. اول هندل یوزر رو بهت میده بعد هم هندل پسورد رو. کلاسشون هم باید از نوع Textbox باشه.
همون طور که مبین گفت برای اطمینان هم میتونی از EM_GETPASSWORDCHAR برای پیدا کردن تکس باکس پسورد استفاده کنی.
۰۶-شهریور-۱۳۸۹, ۰۰:۵۳:۱۷
ارسال‌ها
پاسخ
crafcrab آفلاین
كاربر دو ستاره
**

ارسال‌ها: 216
موضوع‌ها: 79
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 42
( 33 تشکر در 31 ارسال )
ارسال: #8
RE: Hendel
(۰۶-شهریور-۱۳۸۹, ۰۰:۵۳:۱۷)Payman62 نوشته است: سلام.
چرا کار رو سخت میکنی. این که بشینی تا موس بره رو پنجره یاهو کار درستی نیست.
شما یه حلقه بذار کل پنجره ها رو پیدا کنه. بعد از رو caption یاهو که همیشه عنوان Yahoo Messenger رو تو خودش داره بفهم که پنجره یاهو کدومه. بعد برو سراغ هندل های زیر شاخه یاهو. همیشه یه ترتیب خاصی تو به دست اوردن هندل ها وجود داره. اول هندل یوزر رو بهت میده بعد هم هندل پسورد رو. کلاسشون هم باید از نوع Textbox باشه.
همون طور که مبین گفت برای اطمینان هم میتونی از EM_GETPASSWORDCHAR برای پیدا کردن تکس باکس پسورد استفاده کنی.
1-همون طور که قبلا گفتم من با همین روش Caption بررسی میکنم که یاهو باز هست یا نه
2-از موس برای پیدا کردن تکس باکس ها استفاده میکنم تا اگه رویه یکی از این تکس باکس ها رفت تشخیص بده و هندل اون رو به من بده تا شروع به کار کنم
البته همون طور که خودتون هم میدونید روش درستی نیست از این روش برای این استفاده کردم چون نتونسم به صورت خودکار هندل اشیا پنجره یاهو رو بدست بیارم ولی اگه مسله این Keylogger ها بشه تشخیص داد کاربر از رو کیبرد دکمه ای رو فشار داده وقتی که پنجره یاهو فعال است بعد هندل جایی رو که توش مینویسه رو بفهمم باز خوبه ولی اینم کارا نیست اگه دوستان لطف کنن یه راهنمایی کنن چجوری به ترتیب (در یک حلقه) میشه اشیا موجود در یک پنجره رو پیدا کرد تا با فهمیدن ClassName هر کدام بفهمم کادر تکس باکس هست یا نه بعد هندلش رو پیدا کنم ممنون میشم
(۰۵-شهریور-۱۳۸۹, ۲۳:۴۲:۵۲)lord_viper نوشته است: میتونین چک کنین ایا Editاز نوع passwordهست یا نه بایک sendmessage و EM_GETPASSWORDCHAR


3- در رابطه با نابع:
کد:
a = SendMessage(objectHwnd, EM_GETPASSWORDCHAR, 0&, 0&)
در اینجا objectHwnd همون هندل تکس باکس هست
ولی هر دفعه چه رو TextboxUser چه رو TextboxPass باشم مقدار 0 رو بر میگردونه
مگه نباید مخالفه 0 باشه یعنی TextboxPass با این که رو TextboxPass هستم 0 میده
چه کنم؟
۰۶-شهریور-۱۳۸۹, ۱۰:۵۹:۴۵
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #9
RE: Hendel
سلام.
یه راه دیگه برای پیدا کردن پنجره یاهو FindWindow هست که دیگه نیازی به حلقه و پیدا کردن کل پنجره ها نیست. اما در این روش باید دقیقا کشپن پنجره رو داشته باشی.

برای پیدا کردن زیر شاخه های یه هندل هم باید از GetWindow(hwnd, GW_CHILD) و GetNextWindow(hwnd1, GW_HWNDNEXT) استفاده کنی. یه تابع ریکرسیو بنویس تا تمام زیر شاخه های خود زیر شاخه هارو هم پیدا کنی.
۰۶-شهریور-۱۳۸۹, ۱۲:۵۶:۰۲
ارسال‌ها
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 3 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS