木马编程DIY (Delphi版) - 第1篇 功能实现

2016-08-22 10:17:49来源:http://suguiyang.blog.51cto.com/1035725/272182作者:su_guiyang人点击


1. 锁定鼠标:
这个功能很简单只要一个ClipCursor()就可以搞定了。program Project1;
{$APPTYPE CONSOLE}
uses Windows;
var
r0, r1: TRect;
begin
WriteLn('别害怕!15秒后你的鼠标就可以使用了! ^_^');
GetClipCursor(r0); //获取当前鼠标的活动范围
// 设置新的鼠标活动范围
r1.Left := 0;
r1.Top := 0;
r1.Right := 1;
r1.Bottom := 1;
ClipCursor(@r1);
// 暂停15秒
Sleep(15000);
// 回复原来的鼠标活动范围
ClipCursor(@r0);
end.
2. 锁定键盘:
锁键盘一般用钩子实现,所以难度稍大,不过下面这个程序当简单,而且连钩子所需要DLL也省了。program Project1;
{$APPTYPE CONSOLE}
uses Windows;
// 处理按键消息的过程函数
function KeyHook(code: integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
Result := 1;// 返回1可使键盘停止响应
end;
var
s: string;
begin
s := '程序将在15秒之后返回' + #13#10 +
'嘿嘿15秒内你的键盘是无法工作的哦!';
WriteLn(s);
// 安装键盘钩子
SetWindowsHookEx(WH_KEYBOARD, @KeyHook, hInstance, 0);
Sleep(15000);
end.
因为是Console程序,所以随着程序的结束钩子也就OVER了,所以我并没有卸载钩子。
钩子果然是强大,学会使用钩子你的水平就不一般了^_^。
3. 关闭显视器:
这个也是相当简单的。program Project1;
{$APPTYPE CONSOLE}
uses Windows, Messages;
begin
// 关闭显示器
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
Sleep(10000);
// 打开显示器
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
end.
要是你够毒的话可以让它自动运行,开机就黑屏,任你杀毒水平再高,嘿嘿,没有显示器看你怎么杀……
4. 关闭所有窗口:
只需这一句就行了。PostMessage(HWND_BROADCAST, WM_CLOSE, 0, 0);
5. 锁定光驱:
其实说让“光驱跳舞”更合适,以下的程序可以打开并关闭光驱。program Project1;
{$APPTYPE CONSOLE}
uses MMSystem;
begin
// 打开
mciSendString('Set cdaudio door open wait', nil, 0, 0);
// 关闭
mciSendString('Set cdaudio door closed wait', nil, 0, 0);
end.
如果你弄个死循环,就可以让他的光驱好好活动活动了^_^
6. 制造噪音:
大多时候我们要隐藏自己,但有时候我们就需要给对方放点音乐,小小的“提示”一下,以证明我们的存在。program Project1;
{$APPTYPE CONSOLE}
uses Windows;
var
i, j: Integer;
begin
for j := 450 to 499 do
begin
for i := 1000 to 1109 do
begin
Beep(i, 30);
Sleep(100);
end;
end;
end.
关键就是一个Beep(),第一个参数为赫兹第二个为音长你可以自己试一下,弄点好听的。
7.隐藏桌面:
其实桌面与任务栏也是一种窗口,我们可以通过FindWindow来查找它们的句柄,然后通过ShowWindow()来隐藏或显视,其中桌面类名为ProgMan,而任务栏类名为Shell_TrayWnd。program Project1;
{$APPTYPE CONSOLE}
uses Windows;
var
DesktopHand, TrayWndHand: THandle;
begin
DesktopHand := FindWindow('ProgMan', nil);
TrayWndHand := FindWindow('Shell_TrayWnd', nil);
ShowWindow(TrayWndHand, SW_HIDE);// 隐藏任务栏
ShowWindow(DesktopHand, SW_HIDE);// 隐藏桌面
Write('15秒后会自动出现桌面 请等待');
Sleep(15000);
ShowWindow(DesktopHand, SW_SHOW);// 显示桌面
ShowWindow(TrayWndHand, SW_SHOW);// 显示任务栏
end.

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台