批处理自动登录QQ小结及相关讨论

所属分类: 脚本专栏 / DOS/BAT 阅读数: 686
收藏 0 赞 0 分享
转载自 葬祭在骷髅最终编辑 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
更多精彩内容其他人还在看

Cls 清除命令提示符窗口

Cls 清除命令提示符窗口
收藏 0 赞 0 分享

Cmd 启动命令解释器 Cmd.exe 的新实例

Cmd 启动命令解释器 Cmd.exe 的新实例
收藏 0 赞 0 分享

Cmstp 安装或删除“连接管理器”服务配置文件

Cmstp 安装或删除“连接管理器”服务配置文件
收藏 0 赞 0 分享

color 对于当前会话,更改命令提示窗口的前景和背景色

color 对于当前会话,更改命令提示窗口的前景和背景色
收藏 0 赞 0 分享

配置命令提示符的方法

配置命令提示符的方法
收藏 0 赞 0 分享

Comp 逐字节地比较两个文件或几组文件的内容

Comp 逐字节地比较两个文件或几组文件的内容
收藏 0 赞 0 分享

Compact 显示和更改 NTFS 分区上的文件或目录压缩

Compact 显示和更改 NTFS 分区上的文件或目录压缩
收藏 0 赞 0 分享

Del (erase) 删除指定文件

Del (erase) 删除指定文件
收藏 0 赞 0 分享

Convert  将 FAT 和 FAT32 卷转换为 NTFS

Convert  将 FAT 和 FAT32 卷转换为 NTFS
收藏 0 赞 0 分享

copy 将一个或多个文件从一个位置复制到其他位置

copy 将一个或多个文件从一个位置复制到其他位置
收藏 0 赞 0 分享
查看更多