• 26-11-2012, 20:45:58
    #1
    Merhaba, Kardeşimi takip etmek amacı ile keylogger yazıyorum.
    Malesef program birsüre sonra hata veriyor.
    Hata :
    A callback was made on a garbage collected delegate of type 'Keylogger!Utilities.globalKeyboardHook+keyboardHookProc::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.
    Diye birşey yazıyor... googlede araştırdım iki tane kaynak çıktı
    Bir bu : http://s177.codeinspot.com/q/1189505
    Bide bu : http://stackoverflow.com/questions/9...k-was-detected

    1. kaynak'ı anlamadım.. 2. kaynak'ta en üstte verilen kodu bulup onun altındaki kod ile değiştirdim ama değiştirilen kodda hata çıktı..

    Bu arada globalkeyboardhook kullanarak klavyeden girilen değerleri çekiyorum
  • 27-11-2012, 21:50:24
    #2
    Konu günceldir ?
  • 01-12-2012, 10:57:38
    #3
    Merhaba, dilerseniz aynı api ile geliştirdiğim, uzaktan müdahale edilebilen bir keylogger verebilirim
    Yazılım, çalıştığı zaman otomatik olarak sisteme yerleşir ve kendini gizler.
    Aynı zamanda başka uygulamalara da gömülebilir ve onlarca anti-virüs programı denedim hiç biri yakalamadı.
    Tercihinize kalmış, ister göz atarsınız ister üzerine geliştirirsiniz.

    Pm ile gönderiyorum.
  • 01-12-2012, 20:41:26
    #4
    Diyor ki;

    managed uygulamadan unmanaged assembly fonksiyonuna parametre olarak delegate geçilirken; bellekte onu referans eden bir değişken bulundurun.

    Sen şimdi muhtemelen SetWindowHookEx kullanıyorsun, ona geçtiğin metodu direk ismiyle değilde bi instance oluışturup bulunduğu classda bir değişkene set edersen problem kalmaz.
  • 02-12-2012, 13:27:13
    #5
    OguzhanTOPCU adlı üyeden alıntı: mesajı görüntüle
    Diyor ki;

    managed uygulamadan unmanaged assembly fonksiyonuna parametre olarak delegate geçilirken; bellekte onu referans eden bir değişken bulundurun.

    Sen şimdi muhtemelen SetWindowHookEx kullanıyorsun, ona geçtiğin metodu direk ismiyle değilde bi instance oluışturup bulunduğu classda bir değişkene set edersen problem kalmaz.
    Hocam o kadar pro değilim. Genelde otomasyon yazdığım için bilmiyorum. İsterseniz kodları atim size?


    [iPhone 4S]'den Tapatalk ile Gönderildi.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 13:27:13 -->-> Daha önceki mesaj 13:26:43 --

    MYaman adlı üyeden alıntı: mesajı görüntüle
    Merhaba, dilerseniz aynı api ile geliştirdiğim, uzaktan müdahale edilebilen bir keylogger verebilirim
    Yazılım, çalıştığı zaman otomatik olarak sisteme yerleşir ve kendini gizler.
    Aynı zamanda başka uygulamalara da gömülebilir ve onlarca anti-virüs programı denedim hiç biri yakalamadı.
    Tercihinize kalmış, ister göz atarsınız ister üzerine geliştirirsiniz.

    Pm ile gönderiyorum.
    Pm geldi ama daha deneyemedim. Rn yakın zamanda bakacağım


    [iPhone 4S]'den Tapatalk ile Gönderildi.
  • 02-12-2012, 14:35:27
    #6
    linklerden birine baktım, o adamda hatalı yapmış,

    hookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, hookProc, hInstance, 0);

    şöyle olması gerekiyodu

    public class KeyboardHook{
    private delegate int hookProcDelegate(int nCode, int wParam, ref GlobalKeyboardHookStruct lParam);

    private hookProcDelegate myDelegate {get; set;}

    public void Hook(){
    ...........
    this.myDelegate = new hookProcDelegate (hookProcDelegate);
    hookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, this.myDelegate, hInstance, 0);
    ........
    }
    }

    kodları test etmedim direk burda yazdım syntax hatası olabilir. Mantığı anlamışındır umarım.