正文

net send使其别人死机2006-12-13 23:24:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wolfelite/21556.html

分享到:

记得当时是看了几天黑客,了解了黑客基本的网络常用命令,,其中这个net send 我倒觉得有点意思,不需要对方的许可,你不收都得收,另外在看windows2000的批理命令中的for可以连续执行某个条命令,A,,,历害,当时我就有一个想法,如果说我用for连续发他个几万次的消息过去,他会点了再点点了再就是难得点完确定,呵呵,,,,心想中
    一天在学校没事就耍吓这些常用的命令,,,,打一条net send /?看帮助,耶,还有一个domain哒嘛,,,,这么说一次可以向一个域的机子发信息了哦,,,,呵呵,,,更幸的是,,,那个FOR的/L参数的配合,,哈我看你们都遭映吧,还不气死你们,,,
    看看我一直在想的事就要成功的表演一吓了,,
       我就用一条
        for /l %i in(1,1,999999) do net send /domain:121gp %i%illlaskf%i%i

   哈哈,看看这么简单的一条命令,却是要连续向整个域里面的机子发送999999次信息,看看不点才怪哈哈哈,,,

    我说一吓,那个FOR是循环的命令,,是专用在批处理文件里的,/L就是代失下去,也就是说1,2,3,4,5,6,,,,这样不断的执行下去,,,具体执行多少次就由in(1,1,999999)这个IN里面的最后一个参数决定,注意这个IN后的括号"("要在一起,不要有空格哟,否则就要出错,IN里面有三个参数,第一个是初始值,第二是每次加多少的,最后一个是最大数,当变量i加到这个值就会停止。。。
   具体也可以在CMD下输入for /?看帮助
   当时那个教室还在上课,,我发了这条命令后就锁定机子走人,,,不幸,一会,一个女教室来了,,在我后面,,我还在为刚才的那命令开心得想会怎么样?   不经意的又在另一个教室再发了一次,,,这时那个女老师走过来说,,,你还多发几条嘛?...............
  我晕,,,漏线了,,,不过她还好,没有向校长说,,,只是警告了一次,。。不一会班主任知道了,,,,也来询问刚才是你在发?
   我。。。。。。。。无语了
         想起的话,就是一教室的机子都在不停的"嘟嘟.."的响,,那场院面可真是热呼哟。。呵呵         同学们都在广播中,,突然所有的机子都叫起来了,,哈哈,,,俞想愈有意思。。。


implement net send?

主要是要向局域网内的机器发送信息。


function NetSend(dest, Source, Msg: string): Longint; overload;

type

 TNetMessageBufferSendFunction = function(servername, msgname, fromname: PWideChar;

  buf: PWideChar; buflen: Cardinal): Longint;

 stdcall;

var

 NetMessageBufferSend: TNetMessageBufferSendFunction;

 SourceWideChar: PWideChar;

 DestWideChar: PWideChar;

 MessagetextWideChar: PWideChar;

 Handle: THandle;

begin

 Handle := LoadLibrary('NETAPI32.DLL');

 if Handle = 0 then

 begin

  Result := GetLastError;

  Exit;

 end;

  @NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend');

 if @NetMessageBufferSend = nil then

 begin

  Result := GetLastError;

  Exit;

 end;


 MessagetextWideChar := nil;

 SourceWideChar   := nil;

 DestWideChar    := nil;


 try

  GetMem(MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);

  GetMem(DestWideChar, 20 * SizeOf(WideChar) + 1);

  StringToWideChar(Msg, MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);

  StringToWideChar(Dest, DestWideChar, 20 * SizeOf(WideChar) + 1);


  if Source = '' then

   Result := NetMessageBufferSend(nil, DestWideChar, nil,

    MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1)

  else

  begin

   GetMem(SourceWideChar, 20 * SizeOf(WideChar) + 1);

   StringToWideChar(Source, SourceWideChar, 20 * SizeOf(WideChar) + 1);

   Result := NetMessageBufferSend(nil, DestWideChar, SourceWideChar,

    MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);

   FreeMem(SourceWideChar);

  end;

 finally

  FreeMem(MessagetextWideChar);

  FreeLibrary(Handle);

 end;

end;


function NetSend(Dest, Msg: string): Longint; overload;

begin

 Result := NetSend(Dest, '', Msg);

end;


function NetSend(Msg: string): Longint; overload;

begin

 Result := NetSend('', '', Msg);

end;


// Example:


procedure TForm1.Button1Click(Sender: TObject);

const

 NERR_BASE = 2100;

 NERR_NameNotFound = NERR_BASE + 173;

 NERR_NetworkError = NERR_BASE + 36;

 NERR_Success = 0;

var

 Res: Longint;

 sMsg: string;

begin

 Res := NetSend('LoginName', 'Your Message...');

 case Res of

  ERROR_ACCESS_DENIED: sMsg := 'user does not have access to the requested information.';

  ERROR_INVALID_PARAMETER: sMsg := 'The specified parameter is invalid.';

  ERROR_NOT_SUPPORTED: sMsg := 'This network request is not supported.';

  NERR_NameNotFound: sMsg := 'The user name could not be found.';

  NERR_NetworkError: sMsg := 'A general failure occurred in the network hardware.';

  NERR_Success: sMsg := 'Message sent!';

 end;

 ShowMessage(sMsg);

end;

 

阅读(2149) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册