⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 追捕的oicq探测技术.txt

📁 学习(编程技巧_编程知识_程序代码),是学习编程不可多得的学习精验
💻 TXT
字号:
-追捕的OICQ探测技术-
 

--------------------------------------------------------------------------------
 
第八军团 时间:2003-12-6 20:08:56 
   
  

 追捕的OICQ探测技术 (追捕系列软件内幕二)[DELPHI]冯志宏 [撰稿]

追捕是怎样得到检测结果的呢?下面是具体实现的程序段:
MyStream := TMemoryStream.Create;
try NMUDP1.ReadStream(MyStream);
SetLength(TmpStr,NumberBytes);
MyStream.Read(TmpStr[1],NumberBytes);
finally MyStream.Free;
end;
j := Pos( #$02 +#$02 +#$00 +#$00 , TmpStr);
k := Pos( #$02 +#$03 +#$00 +#$00 , TmpStr);
m := Pos( #$02 +#$03 +#$0a +#$00 , TmpStr);
o := Pos( #$02 +#$03 +#$02 +#$00 , TmpStr);
if (j=1) or (k=1) or (m=1) or (o=1) then
begin
j := Pos( #$02 +#$02 +#$00 +#$00 + 'y', TmpStr);
k := Pos( #$02 +#$03 +#$00 +#$00 + 'y', TmpStr);
m := Pos( #$02 +#$03 +#$0a +#$00 + 'y', TmpStr);
o := Pos( #$02 +#$03 +#$02 +#$00 + 'y', TmpStr);
OicqVer := '未知';
if j=1 then OicqVer := '425';
if k=1 then OicqVer := '725';
if m=1 then OicqVer := '820';
if o=1 then OicqVer := '810';
if (j=1) or (k=1) or (m=1) or (o=1) then
begin
TmpS := '';
for j:=1 to length(TmpStr) do
begin
if TmpStr[j] in ['0'..'9'] then
tmpS := tmpS + TmpStr[j];
end;
if TmpS='0' then
Label2.Caption := 'OICQ处于关闭状态,版本:'+ OicqVer else Label2.Caption :='OICQ号码为'+ TmpS + ',版本:'+ OicqVer;
end;
j := Pos( #$02 +#$02 +#$00 +#$00 + 'x', TmpStr);
k := Pos( #$02 +#$03 +#$00 +#$00 + 'x', TmpStr);
m := Pos( #$02 +#$03 +#$0a +#$00 + 'x', TmpStr); o := Pos( #$02 +#$03 +#$02 +#$00 + 'x', TmpStr);
if (j=1) or (k=1) or (m=1) or (o=1) then
begin
J := 8;
TmpOicqNUm := '';
While TmpStr[J]<>#$1f do
begin
TmpOicqNum :=TmpOicqNum + TmpStr[J];
Inc(J);
end;
J := J + 6;
While TmpStr[J]<>#$1f do
begin
Inc(J);
end;
J := J + 1;
While TmpStr[J]<>#$1f do
begin
Inc(J);
end;
J := J + 1;
TmpOicqMsg := '';
While TmpStr[J]<>#$03 do
begin
TmpOicqMsg := TmpOicqMsg + TmpStr[J];
Inc(J);
end;
if TmpOicqMsg<>LastOicqMessage then
begin
LastOicqMessage := TmpOicqMsg; Messagebox(Form1.handle, PChar('OICQ用户' + TmpOicqNum + '对你的探测作出回应:' + #$0D + #$0A + TmpOicqMsg), '警告信息', MB_ICONWARNING +mb_ok); end; end; exit; end;

实际上目前所有的OICQ探测方法都一样,发送一个OICQ消息给对方,凭借OICQ 的返回信息来判断对方的OICQ号码,具体的DELPHI实现如下: NMUDP1是ICS控件包的UDP控件。
NMUDP1.ReportLevel := Status_Basic;
NMUDP1.RemoteHost := edit1.Text;
NMUDP1.RemotePort := 4000;
UdpTmpStr :=#$02 +#$03 +#$0a +#$00 +#$78 +#13 +#$A + '88888' +#$1f +#$30 +#$1f + #$33 + #$39 +#$1f +FormatDateTime('yyyy-mm-dd',now) +#$1f +FormatDateTime('hh:mm:ss',now) +#$1f + '你正在被某位朋友查询。他使用了追捕这个工具软件(http://www.zhuibu.com/)进行探测,此OICQ号码已经被反馈给对方。' + '信息所提示的OICQ号码为虚假号码,但可以即时回复。' + #$03;
if OicqCheck.Checked then
begin
for SendUdpNum:=1 to 10 do
begin MyStream := TMemoryStream.Create;
try MyStream.Write(UdpTmpStr[1], Length(UdpTmpStr)); NMUDP1.SendStream(MyStream);
finally MyStream.Free;
end;
end;
end; 
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -