用程序生成另一个程序

一般木马都能根据用户配置自动生成服务端程序,也就是由一个程序生成另一个新的程序。看起来挺复杂,以前没试过,想了下其实不难。 
思路是读写文件,就是将要生成的程序作为资源读进来。
事例:

①生成待生成的程序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,即新生成的程序在同一目录下,运行就会看到自定义的标题和弹窗
}
这样用上面的程序就能自定义生成不同的弹窗程序,其他程序生成也是类推。
有新思路欢迎留言~~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值