用程式生成另一個程式
阿新 • • 發佈:2019-02-07
一般木馬都能根據使用者配置自動生成服務端程式,也就是由一個程式生成另一個新的程式。看起來挺複雜,以前沒試過,想了下其實不難。
思路是讀寫檔案,就是將要生成的程式作為資源讀進來。
事例:
這裡使用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,即新生成的程式在同一目錄下,執行就會看到自定義的標題和彈窗 }
有新思路歡迎留言~~