liangxm 发表于 2009-4-3 16:39:34

管理员权限被盗用的问题

Local $sUserName = "administrator"
Local $sPassword = "123456"

RunAs($sUserName, @ComputerName, $sPassword, 0, "D:\Program Files\Wopti\WoptiUtilities.exe")

以前为了限制管理员权限做的个启动的autoit,后面发现还是有点问题,如果把其他文件改成相同名字文件的话,那也等于用管理员运行了

不知道有没有什么简单的方法防止一下?

比如我想加些md5验证或者啥的?

[ 本帖最后由 liangxm 于 2009-4-7 15:02 编辑 ]

akmm88 发表于 2009-4-3 17:32:42

对 ,用MD5对比这个文件,是最有效的办法了。

renren 发表于 2009-4-3 23:25:31

获取字节`对比下`就好了` 这个最简单的了`          FileGetSize ( "文件名" )

漠北雪~狼 发表于 2009-4-5 21:00:24

FileGetSize + FileGetTime

liangxm 发表于 2009-4-7 10:46:39

3q~
FileGetSize可以满足要求

不过md5的有没有办法呢?

techbytnt 发表于 2009-4-7 13:00:35

用这个能够验证MD5


MsgBox(0,"c:\windows\explorer.exe",_GetMD5("c:\windows\explorer.exe"))

Func _GetMD5($_FILES)
if FileExists($_FILES) then
$iAlgID = 0x8003
$_FILES_Open=FileOpen($_FILES, 16)
$_FILES_Read=FileRead($_FILES_Open)
FileClose($_FILES)
$vData=$_FILES_read
Local $iLen = BinaryLen($vData), $hContext, $hHash, $aRet, $sRet = "", $iErr = 0, $tDat = DllStructCreate("byte[" & $iLen + 1 & "]"), $tBuf
DllStructSetData($tDat, 1, $vData)
$aRet = DllCall("advapi32.dll", 'int', 'CryptAcquireContext', 'ptr*', 0, 'ptr', 0, 'ptr', 0, 'dword', 1, 'dword', 0xF0000000)
If Not @error And $aRet Then
$hContext = $aRet
$aRet = DllCall("advapi32.dll", 'int', 'CryptCreateHash', 'ptr', $hContext, 'dword', $iAlgID, 'ptr', 0, 'dword', 0, 'ptr*', 0)
If $aRet Then
$hHash = $aRet
$aRet = DllCall("advapi32.dll", 'int', 'CryptHashData', 'ptr', $hHash, 'ptr', DllStructGetPtr($tDat), 'dword', $iLen, 'dword', 0)
If $aRet Then
$aRet = DllCall("advapi32.dll", 'int', 'CryptGetHashParam', 'ptr', $hHash, 'dword', 2, 'ptr', 0, 'int*', 0, 'dword', 0)
$tBuf = DllStructCreate("byte[" & $aRet & "]")
DllCall("advapi32.dll", 'int', 'CryptGetHashParam', 'ptr', $hHash, 'dword', 2, 'ptr', DllStructGetPtr($tBuf), 'int*', $aRet, 'dword', 0)
$sRet = Hex(DllStructGetData($tBuf, 1))
Else
$iErr = 3
EndIf
DllCall("advapi32.dll", 'int', 'CryptDestroyHash', 'ptr', $hHash)
Else
$iErr = 2
EndIf
DllCall("advapi32.dll", 'int', 'CryptReleaseContext', 'ptr', $hContext, 'dword', 0)
Else
$iErr = 1
EndIf
Return SetError($iErr, 0, $sRet)
endif
EndFunc

liangxm 发表于 2009-4-7 15:02:43

3q !
~~~~
页: [1]
查看完整版本: 管理员权限被盗用的问题