• 25-10-2012, 15:15:55
    #10
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Türkce karakter disinda eger daha profesyonel bir keylogger yazip tum dillerde log almasini istiyorsan,

    if (HookedKeys.Contains(key))

    in altına
    if((int)key==351)
    return "Ş";// yi dönder


    burada oldugu gibi key kodlarina tek tek harf atamak (hamallık olur zaten) yerine ToUnicodeEx apisi araciligi ile Key Kodunu Unicode karakterlere donusturebilirsiniz.

    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    SetWindowsHookEx ve CallNextHook Apileri DLL Enjeksiyonu yapan bir malwarede calismayacaktir. ayrica c# ile yazilan bir keylogger gunumuz icin hic bir isinize yaramaz...

    KabusCobar arkadasimizin verdigi stackoverflow adresindede profesyonel olan 2. cevapta tounicodeEx kullanilmistir...

    Alıntı
    [DllImport("user32.dll", CharSet = CharSet.Unicode)]
    private static extern int ToUnicodeEx(Keys wVirtKey, uint wScanCode, byte[] lpKeyState, StringBuilder pwszBuff, int cchBuff, uint wFlags, IntPtr dwhkl);
  • 25-10-2012, 18:15:30
    #11
    @konu sahibine itafen:

    hocam sen bu şekilde devam et öğrenmene, birileri c# ile keylogger yapılmaz dese de şunu öğren bunu öğren yoksa yapamazsın dese de vazgeçmeden ilerle. kullandığın apilerin bazı eksikleri var çözüm yolu için dediğim şekilde yapman gerekiyor ya da cs dosyasında oynama yaprak Keys türü yerine string türüne çevirip kendi tuşlarını ekletebilirsin ama o kadar takla atmaya gerek yok. Bahsettiğim şekilde olayı çözmeye çalış, sonra diğer arkadaşların bahsetmiş olduğu api ile yapmaya çalış ama vazgeçme..

    Yıllardır yazılım elektronik ve android ile uğraşırım A dan Z ye bir sürü insan karşı çıkmıştır projelerime ama yaptığım işleri türkiyede yapabilecek sayılı insanlar vardır, yurtdışında çok kişiden teklif aldım, destek aldım, ülkemi temsil ettim projelerimle yapmış olduğum tek şey vardı o da çalışmak. Kendimi bildim bileli çalışırım ve her zaman yeni teknolojileri öğrenmeye çalışırım sürekli yeni şeyler isteniyor, tabii türkiyede yavaş ilerliyor teknoloji, bir çok yazılımcının yeni teknolojilerden zerre kadar haberi yok ama yabancılar bu teknolojilere aşina olup öğrenen insanlarla çalışmak istiyorlar.

    İyi bir yazılımcı olmak istiyorsan kendini sürekli geliştirmek zorunda olduğuna inanmalısın. Yukarıda bir sözün yanlış, zaten programlama biliyorum demek ... her yazılımcının takılacağı şeyler olabilir bunda bir sıkıntı yok, çok okusan da çok bilsen de her zaman takılırsın


    Demek istediğim şu ki; her zaman yeniliklere açık olarak kendini geliştir ve büyük düşün, otomasyon programı yazmak çok zor bir şey değil, bunu kendine kriter olarak alma.. + ingilizce bilmiyorsan kesinlikle bu yönün geliştir, yoksa çok ilerleyemezsin, yeni bir teknoloji ya da metodoloji çıktığında türkçe kaynak bulamazsın, çok kısıtlı olur ve yıllarca beklemek zorunda kalabilirsin. örnek olarak artık firmalar scrum metodolojisiyle çalışabilecek eleman arıyorlar yurtdışında ama türkiyede daha adam gibi 2-3 senelik metodolijiler bile oturmamıştır, design pattern bilmeyen yığınla yazılım firmalarında çalışan yazılımcı vardır.

    Yani türkiyedeki kriterlerle kendini kalıba sokma, çok çok daha büyük düşük ve her zaman en iyisi ol. Arkadaşımın abisi derdi ki, eğer o*ospu isen en iyisi sen olacaksın. ben bu şekilde bakıyorum ve her zaman çalıştığım insanlardan daha iyi olmak için daha fazla çaba sarf ediyorum, birarz yorucu oluyor ama hiç bir emeğin boşa çıkmayacaktır.

    içimden geldi yazmak, yazılım hayatında başarılar
  • 26-10-2012, 01:14:57
    #12
    R10SS adlı üyeden alıntı: mesajı görüntüle
    Türkce karakter disinda eger daha profesyonel bir keylogger yazip tum dillerde log almasini istiyorsan,

    if (HookedKeys.Contains(key))

    in altına
    if((int)key==351)
    return "Ş";// yi dönder


    burada oldugu gibi key kodlarina tek tek harf atamak (hamallık olur zaten) yerine ToUnicodeEx apisi araciligi ile Key Kodunu Unicode karakterlere donusturebilirsiniz.

    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    SetWindowsHookEx ve CallNextHook Apileri DLL Enjeksiyonu yapan bir malwarede calismayacaktir. ayrica c# ile yazilan bir keylogger gunumuz icin hic bir isinize yaramaz...

    KabusCobar arkadasimizin verdigi stackoverflow adresindede profesyonel olan 2. cevapta tounicodeEx kullanilmistir...

    Şimdi kodları denedim ama olmadı..
    [DllImport("user32.dll")]
            static extern IntPtr SetWindowsHookEx(int idHook, keyboardHookProc callback, IntPtr hInstance, uint threadId);
    Olan kodlar var burda user32.dll'nin yanına CharSet = CharSet.Unicode kodunu ekledim ama yine türkçe karakter sorunu var. kusura bakmayın hep otomasyon yazdım bu işlere ilk defa giriyorum uğraşmayı seven bir insanım ama kaç saattir her kodu denedim ama hatalar aldım
  • 26-10-2012, 01:57:21
    #13
    bi de böyle dene

     public void ghook_KeyDown(object sender, KeyEventArgs e)
            {
               char? a =   karkter(e);
               textBox1.Text += a + " - ";
            }
    
    private static char? karkter(KeyEventArgs e)
    {
              bool firstChance = false; ;
                byte[] keyStates = new byte[256];
                InputLanguage inputLanguage = InputLanguage.CurrentInputLanguage;
                const byte keyPressed = 0x80;
                keyStates[(int)((Keys)e.KeyCode & Keys.KeyCode)] = keyPressed;
                keyStates[(int)Keys.ShiftKey] = (((Keys)e.KeyCode & Keys.Shift) == Keys.Shift) ? keyPressed : (byte)0;
                keyStates[(int)Keys.ControlKey] = (((Keys)e.KeyCode & Keys.Control) == Keys.Control) ? keyPressed : (byte)0;
                keyStates[(int)Keys.Menu] = (((Keys)e.KeyCode & Keys.Alt) == Keys.Alt) ? keyPressed : (byte)0;
    
                StringBuilder sb = new StringBuilder(10);
                int ret = ToUnicodeEx((Keys)e.KeyCode, 0, keyStates, sb, sb.Capacity, 0, inputLanguage.Handle);
                if (ret == 1)
                    return sb[0];
    
                if (ret == -1)
                {
                    if (firstChance)
                    {
                        
                    }
                    return null;
                } return null;
    }
            [DllImport("user32.dll", CharSet = CharSet.Unicode)]
            private static extern int ToUnicodeEx(Keys wVirtKey, uint wScanCode, byte[] lpKeyState, StringBuilder pwszBuff, int cchBuff, uint wFlags, IntPtr dwhkl);
  • 02-11-2012, 16:33:24
    #14
    kabuscobar adlı üyeden alıntı: mesajı görüntüle
    bi de böyle dene

     public void ghook_KeyDown(object sender, KeyEventArgs e)
            {
               char? a =   karkter(e);
               textBox1.Text += a + " - ";
            }
    
    private static char? karkter(KeyEventArgs e)
    {
              bool firstChance = false; ;
                byte[] keyStates = new byte[256];
                InputLanguage inputLanguage = InputLanguage.CurrentInputLanguage;
                const byte keyPressed = 0x80;
                keyStates[(int)((Keys)e.KeyCode & Keys.KeyCode)] = keyPressed;
                keyStates[(int)Keys.ShiftKey] = (((Keys)e.KeyCode & Keys.Shift) == Keys.Shift) ? keyPressed : (byte)0;
                keyStates[(int)Keys.ControlKey] = (((Keys)e.KeyCode & Keys.Control) == Keys.Control) ? keyPressed : (byte)0;
                keyStates[(int)Keys.Menu] = (((Keys)e.KeyCode & Keys.Alt) == Keys.Alt) ? keyPressed : (byte)0;
    
                StringBuilder sb = new StringBuilder(10);
                int ret = ToUnicodeEx((Keys)e.KeyCode, 0, keyStates, sb, sb.Capacity, 0, inputLanguage.Handle);
                if (ret == 1)
                    return sb[0];
    
                if (ret == -1)
                {
                    if (firstChance)
                    {
                        
                    }
                    return null;
                } return null;
    }
            [DllImport("user32.dll", CharSet = CharSet.Unicode)]
            private static extern int ToUnicodeEx(Keys wVirtKey, uint wScanCode, byte[] lpKeyState, StringBuilder pwszBuff, int cchBuff, uint wFlags, IntPtr dwhkl);
    Yemin ediyorum adamın ham maddesisin Ohh be heleşükür oldu.
    hocam bide bunun silmesinde sorun var. sil tuşuna basınca yine tuhaf karakter çıkıyor. sile basınca kullanıcı en son karakteri silsin
  • 02-11-2012, 18:58:08
    #15
    char? a =   karkter(e);
               if (a!='\b')
               {
                   textBox1.Text += a + " -"; 
               }
               else
               {
                 textBox1.Text=  textBox1.Text.Remove(textBox1.TextLength-1, 1);
                    
               }
  • 02-11-2012, 21:20:58
    #16
    Hocam çok teşekkür ederim en sonunda oldu. Gerisi kolay gerisini yaparım zaten..
    Ama bazen nedense çalışıyor sonra visual studio programında program.cs'De form1'in açılış kodunda hata veriyor..
    Hata :
    Alıntı
    A callback was made on a garbage collected delegate of type 'Keylogger!Utilities.globalKeyboardHook+keyboardHo okProc::Invoke'. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called.