ich habe in einem anderen beitrag gesehen, wie man das einstecken eines usb sticks mit einem script überwachen/aufdecken kann.
das hat mich inspiriert dem script einen zweizeiler und die ebenfalls in diesem forum gefundene sendmail funktion hinzu zufügen.
damit sendet das script mir sofort eine mail zu, wenn evt. jemand unberechtigt einen stick in den rechner steckt. dies ist eine wirklich sehr wertvolle möglichkeit bestimmte rechner zu schützen.
nun stellt sich mir die frage, ob es eine möglichkeit gibt, den scipt noch zu erweitern.
gibt es eine möglichkeit ebenfalls mit zuschreiben was mit dem stick passiert? wird etwas vom stick installiert, oder werden daten auf den stick übertragen?
vielleicht hat jemand eine idee oder sogar fertigen code?
Code: Select all
; https://github.com/jNizM/AHK_Scripts/blob/master/src/messages/WM_DEVICECHANGE.ahk
; https://autohotkey.com/boards/viewtopic.php?f=9&t=44239&sid=871484feb184767d3afa6669a98f9158
; GLOBAL SETTINGS ===============================================================================================================
#NoEnv
#Persistent
#SingleInstance Force
SetBatchLines -1
OnMessage(0x0219, "WM_DEVICECHANGE")
; SCRIPT ======================================================================================================================
; ....
; FUNCTIONS =====================================================================================================================
WM_DEVICECHANGE(wParam, lParam)
{
static init := OnMessage(0x0219, "WM_DEVICECHANGE")
if (wParam = 0x8000) || (wParam = 0x8004) && ((NumGet(lParam+4, "uint")) = 0x2) {
i := 0, mask := NumGet(lParam+12, "uint")
while (mask > 1) && (++i < 0x1A)
mask >>= 1
DeviceChangeInfo(Chr(0x41 + i) ":\", wParam)
}
}
DeviceChangeInfo(device, state)
{
MsgBox, 0x40, % "Device Change", % device " " ((state = 0x8000) ? "plugged in" : (state = 0x8004) ? "is removed" : ""), 5
xxx = % device . "`n" . state . "`n" . TimeStamp . "`n" . A_NowUTC . "`n" . A_TickCount
SendGmail(xxx,"[email protected]")
}
SendGmail(message,emailto){
Try
{
pmsg := ComObjCreate("CDO.Message")
pmsg.From := """deineMailAdresse"" <[email protected]>"
pmsg.To := """deineMailAdresse"" <[email protected]>"
pmsg.Subject := "USB Alert"
pmsg.TextBody := message
fields := Object()
fields.smtpserver := "smtp.gmail.com"
fields.smtpserverport := 465
fields.smtpusessl := True
fields.sendusing := 2
fields.smtpauthenticate := 1
fields.sendusername := "[email protected]"
fields.sendpassword := "DeinGmailPasswort"
fields.smtpconnectiontimeout := 60
schema := "http://schemas.microsoft.com/cdo/configuration/"
pfld := pmsg.Configuration.Fields
For field,value in fields
pfld.Item(schema . field) := value
pfld.Update()
pmsg.Send()
pmg.Close
Return
}
catch e
{
restart
}}
/*
https://msdn.microsoft.com/en-us/library/aa363480(v=vs.85).aspx WM_DEVICECHANGE message
https://msdn.microsoft.com/en-us/library/aa363205(v=vs.85).aspx DBT_DEVICEARRIVAL event
https://msdn.microsoft.com/en-us/library/aa363208(v=vs.85).aspx DBT_DEVICEREMOVECOMPLETE event
https://msdn.microsoft.com/en-us/library/aa363246(v=vs.85).aspx DEV_BROADCAST_HDR structure
https://msdn.microsoft.com/en-us/library/aa363249(v=vs.85).aspx DEV_BROADCAST_VOLUME structure
*/