Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.834 pregleda

Najnovija ↓

Hvatanje tastera - GetAsyncKeyState 29.10.2008. u 23:35 · pre 219 meseci #1
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();
                }
            }
        }
Potpis
if(torrent == "free" && windows == true)
{
InstallOnComputer(Expensive_Software);
}
else goto Linux;
Re: Hvatanje tastera - GetAsyncKeyState 30.10.2008. u 00:05 · pre 219 meseci #2
keylogger, a? ;)

po meni najbolje da pogledas global hooks, imas na codeproject-u vec odradjen wrapper:
Processing Global Mouse and Keyboard Hooks in C#
Potpis
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ć
Re: Hvatanje tastera - GetAsyncKeyState 30.10.2008. u 00:23 · pre 219 meseci #3
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
Potpis
if(torrent == "free" && windows == true)
{
InstallOnComputer(Expensive_Software);
}
else goto Linux;
Re: Hvatanje tastera - GetAsyncKeyState 30.10.2008. u 08:31 · pre 219 meseci #4
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
Potpis
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ć
Re: Hvatanje tastera - GetAsyncKeyState 30.10.2008. u 17:45 · pre 219 meseci #5
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 ;)
Potpis
Shoot for the moon. Even if you miss, you'll land among the stars.
Les Brown
Re: Hvatanje tastera - GetAsyncKeyState 30.10.2008. u 22:03 · pre 219 meseci #6
Chim sam instalirao Vistu odmah sam iskljuchio UAC - nervira jako :D

Hvala momci na pomocji kada budem imao vremena (sutra prekosutra) bacam se da isprobam WH_KEYBOARD_LL :)
Potpis
if(torrent == "free" && windows == true)
{
InstallOnComputer(Expensive_Software);
}
else goto Linux;
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme