一般木马都能根据用户配置自动生成服务端程序,也就是由一个程序生成另一个新的程序。看起来挺复杂,以前没试过,想了下其实不难。
思路是读写文件,就是将要生成的程序作为资源读进来。
事例:
这里使用winhex加载然后找到,title 和content的开始区域分别为0xEF8,0xF60(如下图所示),这就是为什么前面声明时用常量
有新思路欢迎留言~~
思路是读写文件,就是将要生成的程序作为资源读进来。
事例:
①生成待生成的程序test.exe:
//待生成的程序这里简单化为弹框,标题和内容由另一个程序制定生成新的程序。
#include<windows.h>
const char title[100]={'A'};
const char content[100]={'B'};
int main()
{
MessageBox(NULL,content,title,0);
}
②选择要修改的位置
这里使用winhex加载然后找到,title 和content的开始区域分别为0xEF8,0xF60(如下图所示),这就是为什么前面声明时用常量
③生成程序的程序
其实就是读进上面的内容然后修改参数位置再copy出新程序。简略代码如下:
#include<iostream>
#include<cstdlib>
#include<fstream>
using namespace std;
int main()
{
char title[100],content[100];
cin>>title>>content; //输入生成程序的弹窗标题和内容
fstream fdat;
fdat.open("test.exe"); //读取待生成程序资源,这里
if(fdat)
{
fdat.seekp(0xef8); //修改
fdat<<title;
fdat<<'\0';
fdat.seekp(0xf60);
fdat<<content;
fdat<<'\0';
fdat.close();
}
system("copy test.exe test1.exe"); //复制为新的程序test1.exe,即新生成的程序在同一目录下,运行就会看到自定义的标题和弹窗
}
这样用上面的程序就能自定义生成不同的弹窗程序,其他程序生成也是类推。
有新思路欢迎留言~~