AM电脑吧 - Win10精简版系统_Win11精简版_Win7旗舰版

Yes
查看: 14774|回复: 24
收起左侧

[其它] 完全AU3保存ADSL密码及IP.au3

[复制链接]
ampc8110

签到天数: 3 天

[LV.2]二兆带宽

id fuldho 发表于 2012-01-09 21:05:35




#include <GUIConstants.au3>
Global Const $POLICY_GET_PRIVATE_INFORMATION = 4
If Not IsDeclared("ERROR_INVALID_SID") Then Global Const $ERROR_INVALID_SID = 1337
Global Const $tagLSAUNICODE = "ushort Length;ushort MaxLength;ptr Wbuffer"
Global Const $tagLSAOBJATTR = "ulong Length;hWnd RootDir;ptr objName;ulong Attr;ptr SecurDescr;ptr SecurQuality"
$hGUI = GUICreate("获取帐号密码",180,50,-1,-1)
$Button1 = GUICtrlCreateButton("获取帐号密码及网卡IP", 15, 15, 150, 25, 0)
GUISetState()  ;显示GUI界面
While 1  
$nMsg = GUIGetMsg()
Select
        Case $nMsg = $GUI_EVENT_CLOSE
                       
                        Exit
               Case $nMsg = $Button1
                _SetAdsl()
     EndSelect
WEnd

Func _SetAdsl() ;获取宽带密码及网卡IP
FileWrite("D:\本机宽带密码和网卡IP.txt"," "&@CRLF)
FileWrite("D:\本机宽带密码和网卡IP.txt","============================================================"&@CRLF)
FileWrite("D:\本机宽带密码和网卡IP.txt"," "&@CRLF)
FileWrite("D:\本机宽带密码和网卡IP.txt","  * 本机ADSL宽带帐号及密码信息:"&@CRLF)
FileWrite("D:\本机宽带密码和网卡IP.txt"," "&@CRLF)
FileWrite("D:\本机宽带密码和网卡IP.txt", ""&_FINDADSL() &@CRLF)
FileWrite("D:\本机宽带密码和网卡IP.txt"," "&@CRLF)
FileWrite("D:\本机宽带密码和网卡IP.txt","------------------------------------------------------------"&@CRLF)
RunWait(@ComSpec & " /c " & "ipconfig /all >> D:\本机宽带密码和网卡IP.txt","",0)
FileWrite("D:\本机宽带密码和网卡IP.txt",@CRLF)
FileWrite("D:\本机宽带密码和网卡IP.txt","============================================================"&@CRLF)
FileWrite("D:\本机宽带密码和网卡IP.txt","  * 本信息生成时间:" &@YEAR&"年"&@MON&"月"&@MDAY&"日"&@HOUR&"点"&@MIN&"分"&@SEC&"秒"&@CRLF)
Run("Notepad.exe D:\本机宽带密码和网卡IP.txt")
EndFunc
Func _FINDADSL()
Dim $pSid = _LookupAccountName(@UserName) ; 获取用户SID指针。
Dim $sSid = _ConvertSidToStringSid($pSid) ; 转换为字符型SID。
_HeapFree($pSid)
Dim $bData = _LsaRetrievePrivateData("RasDialParams!" & $sSid & "#0")
$iSize = @extended
If $bData <> "" Then
  Return _ADSL($iSize, $bData)
Else
  $bData = _LsaRetrievePrivateData("L$_RasDefaultCredentials#0")
  $iSize = @extended
  If $bData <> "" Then
   Return _ADSL($iSize, $bData)
  EndIf
EndIf
EndFunc   ;==>_FINDADSL
Func _ADSL($iSize, $bData)
Dim $tB = DllStructCreate("byte[" & $iSize & "]")
Dim $pB = DllStructGetPtr($tB)
Dim $tW = DllStructCreate("wchar[" & $iSize / 2 & "]", $pB)
DllStructSetData($tB, 1, $bData)
Dim $sR = ""
For $i = 1 To $iSize / 2
  Dim $sC = DllStructGetData($tW, 1, $i)
  If $sC = Chr(0) And StringRight($sR, 1) <> " " Then $sR &= " "
  If $sC <> Chr(0) Then $sR &= $sC
Next
Dim $ADSJ = StringSplit($sR, " ", 1)
If $ADSJ[4] <> "" And $ADSJ[5] <> "" Then
  Return "         宽带帐号                         : "&$ADSJ[4]& @CRLF &@CRLF & "         宽带密码                         : " & $ADSJ[5]
Else
  Return "获取失败,请重试!"
EndIf
EndFunc   ;==>_ADSL
Func _LookupAccountName($sName, $sSystem = "")
Local $iResult, $pSid, $pDomain, $iSysError
$iResult = DllCall("Advapi32.dll", "int", "LookupAccountName", _
   "str", $sSystem, "str", $sName, "ptr", 0, "int*", 0, _
   "ptr", 0, "int*", 0, "int*", 0)
$pSid = _HeapAlloc($iResult[4])
$pDomain = _HeapAlloc($iResult[6])
$iResult = DllCall("Advapi32.dll", "int", "LookupAccountName", _
   "str", $sSystem, "str", $sName, _
   "ptr", $pSid, "int*", $iResult[4], _
   "ptr", $pDomain, "int*", $iResult[6], "int*", 0)
$iSysError = _GetLastError()
_HeapFree($pDomain)
Return SetError($iSysError, $iResult[7], $pSid)
EndFunc   ;==>_LookupAccountName
Func _ConvertSidToStringSid($pSid)
Local $iResult, $tBuffer, $iSysError, $sResult
If Not _IsValidSid($pSid) Then Return SetError(@error, 0, "")
$iResult = DllCall("Advapi32.dll", "int", "ConvertSidToStringSid", _
   "ptr", $pSid, "ptr*", 0)
If $iResult[0] = 0 Then $iSysError = _GetLastError()
If $iResult[2] = 0 Then Return SetError($iSysError, 0, "")
$tBuffer = DllStructCreate("char[256]", $iResult[2])
$sResult = DllStructGetData($tBuffer, 1)
_LsaLocalFree($iResult[2])
Return SetError($iSysError, _FreeVariable($tBuffer), $sResult)
EndFunc   ;==>_ConvertSidToStringSid
Func _LsaRetrievePrivateData($sKeyName, $sSystem = "")
Local $hPolicy, $iResult, $pKeyName, $bData, $iSize, $tBuffer
$hPolicy = _LsaOpenPolicy($POLICY_GET_PRIVATE_INFORMATION, $sSystem)
If $hPolicy = 0 Then Return SetError(@error, 0, 0)
$pKeyName = _LsaInitializeBufferW($sKeyName)
$iResult = DllCall("Advapi32.dll", "dword", "LsaRetrievePrivateData", _
   "hWnd", $hPolicy, "ptr", $pKeyName, "ptr*", 0)
$iSize = _LsaLocalSize($iResult[3]) - 12
$tBuffer = DllStructCreate("byte[" & $iSize & "]", $iResult[3] + 12)
$bData = DllStructGetData($tBuffer, 1)
_LsaClose($hPolicy)
_FreeVariable($tBuffer)
_HeapFree($pKeyName)
_LsaFreeMemory($iResult[3])
Return SetError(_LsaNtStatusToWinError($iResult[0]), $iSize, $bData)
EndFunc   ;==>_LsaRetrievePrivateData
Func _HeapAlloc($iSize, $iAllocOption = 8)
If $iSize < 1 Then Return 0
Local $pMem, $hHeap = _GetProcessHeap()
$pMem = DllCall("Kernel32.dll", "ptr", "HeapAlloc", "hWnd", $hHeap, _
   "dword", $iAllocOption, "dword", $iSize)
Return $pMem[0]
EndFunc   ;==>_HeapAlloc
Func _GetLastError()
Local $iSysError = DllCall("Kernel32.dll", "long", "GetLastError")
Return $iSysError[0]
EndFunc   ;==>_GetLastError
Func _IsValidSid($pSid)
Local $iResult
$iResult = DllCall("Advapi32.dll", "int", "IsValidSid", "ptr", $pSid)
If $iResult[0] Then Return SetError(0, 0, True)
Return SetError($ERROR_INVALID_SID, 0, False)
EndFunc   ;==>_IsValidSid
Func _LsaOpenPolicy($iAccessMask, $sSystem = "")
Local $hPolicy, $tSystem, $pSystem, $iLength
Local $tObjAttr, $pObjAttr, $tName, $pName
If $sSystem <> "" Then
  $iLength = StringLen($sSystem) * 2
  $tSystem = DllStructCreate($tagLSAUNICODE)
  $pSystem = DllStructGetPtr($tSystem)
  $tName = DllStructCreate("wchar[" & $iLength & "]")
  $pName = DllStructGetPtr($tName)
  DllStructSetData($tName, 1, $sSystem)
  DllStructSetData($tSystem, "Length", $iLength)
  DllStructSetData($tSystem, "MaxLength", $iLength + 2)
  DllStructSetData($tSystem, "Wbuffer", $pName)
EndIf
$tObjAttr = DllStructCreate($tagLSAOBJATTR)
$pObjAttr = DllStructGetPtr($tObjAttr)
$hPolicy = DllCall("Advapi32.dll", "dword", "LsaOpenPolicy", _
   "ptr", $pSystem, "ptr", $pObjAttr, _
   "dword", $iAccessMask, "hWnd*", 0)
_FreeVariable($tName)
_FreeVariable($tObjAttr)
_FreeVariable($tSystem)
Return SetError(_LsaNtStatusToWinError($hPolicy[0]), 0, $hPolicy[4])
EndFunc   ;==>_LsaOpenPolicy
Func _HeapFree($pMem)
If $pMem < 1 Then Return SetError(87, 0, False)
Local $iResult, $hHeap = _GetProcessHeap()
$iResult = DllCall("Kernel32.dll", "int", "HeapFree", "hWnd", $hHeap, _
   "dword", 0, "ptr", $pMem)
Return $iResult[0] <> 0
EndFunc   ;==>_HeapFree
Func _LsaLocalFree($pMem)
Local $iResult
$iResult = DllCall("Kernel32.dll", "int", "LocalFree", "ptr", $pMem)
Return $iResult[0] <> $pMem
EndFunc   ;==>_LsaLocalFree
Func _FreeVariable(ByRef $vVariable)
$vVariable = 0
EndFunc   ;==>_FreeVariable
Func _LsaInitializeBufferW($sData, $fDecode = False)
Local $pMem, $iLength, $tBuffer, $sResult
If $fDecode = False Then
  $iLength = StringLen($sData) * 2 + 2
  $pMem = _HeapAlloc($iLength + 8)
  $tBuffer = DllStructCreate($tagLSAUNICODE & ";wchar Data[" & $iLength - 2 & "]", $pMem)
  DllStructSetData($tBuffer, "Length", $iLength - 2)
  DllStructSetData($tBuffer, "MaxLength", $iLength)
  DllStructSetData($tBuffer, "Wbuffer", $pMem + 8)
  DllStructSetData($tBuffer, "Data", $sData)
  Return $pMem
ElseIf Not IsPtr($sData) Then
  Return ""
EndIf
$tBuffer = DllStructCreate($tagLSAUNICODE, $sData)
$iLength = DllStructGetData($tBuffer, "MaxLength") * 2
If $iLength < 1 Then Return ""
$pMem = DllStructCreate("wchar Data[" & $iLength & "]", DllStructGetData($tBuffer, "Wbuffer"))
$sResult = DllStructGetData($pMem, "Data")
Return SetExtended(_FreeVariable($pMem), $sResult)
EndFunc   ;==>_LsaInitializeBufferW
Func _LsaLocalSize($pMem)
Local $iSize = DllCall("Kernel32.dll", "long", "LocalSize", "ptr", $pMem)
Return $iSize[0]
EndFunc   ;==>_LsaLocalSize
Func _LsaCloseServiceHandle($hService)
Local $iResult = DllCall("Advapi32.dll", "int", "CloseServiceHandle", "hWnd", $hService)
Return SetError(_GetLastError(), 0, $iResult[0] <> 0)
EndFunc   ;==>_LsaCloseServiceHandle
Func _LsaCloseHandle($hHandle)
Local $iResult = DllCall("Kernel32.dll", "int", "CloseHandle", "long", $hHandle)
Return $iResult[0] <> 0
EndFunc   ;==>_LsaCloseHandle
Func _LsaClose($hPolicy)
Local $iResult
$iResult = DllCall("Advapi32.dll", "dword", "LsaClose", "hWnd", $hPolicy)
Return SetError(_LsaNtStatusToWinError($iResult[0]), 0, $iResult = 0)
EndFunc   ;==>_LsaClose
Func _LsaFreeMemory($pMem)
Local $iResult = DllCall("Advapi32.dll", "dword", "LsaFreeMemory", "ptr", $pMem)
Return SetError(_LsaNtStatusToWinError($iResult[0]), 0, $iResult[0] = 0)
EndFunc   ;==>_LsaFreeMemory
Func _LsaNtStatusToWinError($iNtStatus)
Local $iSysError
$iSysError = DllCall("Advapi32.dll", "ulong", "LsaNtStatusToWinError", "dword", $iNtStatus)
Return $iSysError[0]
EndFunc   ;==>_LsaNtStatusToWinError
Func _GetProcessHeap()
Local $hHeap = DllCall("Kernel32.dll", "hWnd", "GetProcessHeap")
Return $hHeap[0]
EndFunc   ;==>_GetProcessHeap

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?验证注册

x

评分

参与人数 1带宽 +3 收起 理由
ampc84 ②號 + 3

本文地址: https://www.ampc8.com/thread-5036-1-1.html
上一篇:关于 WINXP SP3 GHOST_3.0Z 装机版 系统还原的问题
下一篇:NVIDIA CES展台变“车展”
回复

举报

ampc823649

签到天数: 3 天

[LV.2]二兆带宽

id zpmc123 发表于 2015-07-19 12:33:51 手机发帖
很了不起的一个人
回复

举报

ampc85191

签到天数: 8 天

[LV.3]三流显示器

id xz00311 发表于 2013-04-22 09:25:41
这代码好像不行了
回复

举报

ampc812927

签到天数: 2 天

[LV.1]一个记事本

id yuxuan 发表于 2013-03-17 22:06:28
占个位置,保存下代码
回复

举报

ampc812533

签到天数: 13 天

[LV.3]三流显示器

id Ghost-X 发表于 2013-02-27 13:46:45
支持!!一定支持!!
回复

举报

ampc82742

签到: Lazy

id 清风无影 发表于 2012-11-20 21:32:59
下载收藏了,正好可以给朋友用。
回复

举报

ampc81613

签到天数: 4 天

[LV.2]二兆带宽

id nuoyan 发表于 2012-10-03 07:47:35
来学习的谢谢了啊
回复

举报

ampc870

签到天数: 720 天

[LV.9]九级电脑高手

id jiazhou312 发表于 2012-09-19 12:30:13
谢谢楼主分享经验
回复

举报

ampc8439

签到天数: 189 天

[LV.7]七个CPU

id dnvplj 发表于 2012-08-25 09:33:04
谢谢分享,收藏。
回复

举报

ampc88757

签到: Lazy

id 低调上网 发表于 2012-07-24 15:08:35
谢谢楼主分享经验
回复

举报

您需要登录后才可以回帖 登录 | 验证注册

Powered by AMpc8.Com (晋ICP备13003365号ghs 晋公网安备 14090202000112号 |GMT+8, 2025/5/1 14:44 | A
快速回复 返回顶部 返回列表