轉載自 葬祭在骷髏最終編輯 LJ_SunTB原理及使用方法: 代碼:
start "" "C:/Program Files/Tencent/QQ/qq.exe" /start QQUIN:843875648 PWDHASH:4Z1c1a8DeNoF9j+JHHRnrw== /stat:40引用:
10:上線登陸
40:隱身登陸
41:上線登陸
QQUIN和PWDHASH必須使用大寫字母
原理:QQ在傳輸密碼的時候,先做一次MD5加密,再做一次BASE64變換,這樣可以得到正常的文本信息以便網絡傳輸。找一個MD5在線查詢的網站(比如http://www.xmd5.org/),輸入QQ密碼的明文,轉換得到MD5加密的結果,再找一個BASE64在線查詢的網站(比如http://www.waishi.net/ip/tools/base64.htm),輸入剛才得到的MD5加密的結果,轉換得到HASH編碼即可。
使用VBS的SendKeys方法自動登錄,因無法保證獲取正確的交單,存在風險,因此不予考慮。經測試,目前無法用這個方法登陸最新的QQ2009正式版,可能是新版的QQ未開啟這個命令行接口吧,只能繼續期待以后的版本了。
自動獲取QQ路徑的幾種方法:讀注冊表、全盤搜索、獲取進程信息等: 代碼:
復制代碼 代碼如下:
@echo off
rem 使用WMIC獲取進程信息中的QQ路徑
for /f "tokens=2 delims==" %%a in ('wmic process where "name='qq.exe'" get executablepath /value') do (
set QQPath=%%a
)
echo %QQPath%
pause代碼:
復制代碼 代碼如下:
@echo off
rem 使用WMIC全盤搜索獲取QQ路徑
for /f "skip=1 delims=" %%a in ('wmic datafile where "filename='qq' and extension='exe'" get name') do (
set QQPath=%%a
)
echo %QQPath%
pause代碼:
復制代碼 代碼如下:
@echo off
rem 使用reg命令讀注冊表獲取QQ路徑
for /f "tokens=2*" %%a in ('reg query HKEY_LOCAL_MACHINE/Software/Tencent/QQ /v Install^|findstr "Install"') do (
set QQPath=%%b
)
echo %QQPath%
pause代碼:
復制代碼 代碼如下:
@echo off
rem 使用reg export命令到處注冊表項再搜索獲取QQ路徑以避免reg query可能存在的吃中文字符的問題
reg export "HKEY_LOCAL_MACHINE/SOFTWARE/Tencent/QQ" "%temp%/qq.txt">nul
for /f "tokens=2 delims==" %%a in ('type "%temp%/qq.txt"^|findstr /i "Install"') do (
rem 可以用 %%~fa 直接把字符串中的//變成/
set QQPath=%%~a
)
set QQPath=%QQPath://=/%
echo %QQPath%
pause代碼:
復制代碼 代碼如下:
@echo off
rem 調用VBS讀注冊表獲取QQ路徑
>"%temp%/my.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
>>"%temp%/my.vbs" echo WScript.Echo WshShell.RegRead("HKEY_LOCAL_MACHINE/SOFTWARE/Tencent/QQ/Install")
for /f "delims=" %%a in ('cscript /nologo "%temp%/my.vbs"') do (
set QQPath=%%a
)
echo %QQPath%
pause代碼:
復制代碼 代碼如下:
@echo off
rem 全盤搜索獲取QQ路徑
set fName=qq.exe
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist %%a:/nul (
pushd %%a:/
for /r %%b in (%fName%?) do (
if /i "%%~nxb" equ "%fName%" (
set fPath=%%b
goto :show
)
)
popd
)
)
:show
echo %fPath%
pause