.NET 中的動態編譯(生成exe檔案)
可能很多人都看過灰鴿子中的 配置伺服器端,點選後彈出一個視窗,選擇幾項之後,點生成,就可以生成木馬的伺服器端(一個exe檔案),只要這個exe檔案執行在誰的電腦上,那個電腦就成了肉雞。^_^ 不過我不會這招。
我今天是想做個能夠通過一個exe檔案生成另一個exe檔案的東東。
首先新建個winform應用程式,程式碼如下
Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
namespace Client
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//原始碼模板
string codeBase = @"
using System;
using System.Collections.Generic;
using System.Text;
namespace lhking
{
public class Class1
{
static void Main()
{
System.Windows.Forms.Application.Run(new Server.Form1());
}
}
}";
private void button1_Click(object sender, EventArgs e)
{
if (this.textBox1.Text.Length > 0)
{
string code = codeBase;
//編譯生成exe
CompileCode(code, System.IO.Path.Combine(Application.StartupPath, this.textBox1.Text + ".exe"));
}
else MessageBox.Show("檔名不能為空!");
}
private CompilerResults CompileCode(string SourceCode, string ExeuteFileName)
{
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters(new string[] { "System.dll", "Server.DLL", "System.Windows.Forms.dll" }, ExeuteFileName, false);
cp.CompilerOptions = "/target:winexe";
cp.GenerateExecutable = true;
CompilerResults cr = provider.CompileAssemblyFromSource(cp, SourceCode);
return cr;
}
}
然後新建個類庫,剛才的那個程式引用這個類庫,類庫裡新建個winform視窗。
這個類庫就是彈出個對話方塊
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("這是動態生成的exe檔案哦!");
}
這樣就完成了。
說明下缺點:這樣做,生成的那個exe檔案,如果要想執行,同目錄下必須有那個類庫。??
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-594315/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- go編譯靜態檔案到exeGo編譯
- Python將py檔案編譯為exe的方法Python編譯
- Matlab生成.exe格式檔案Matlab
- C編譯: 動態連線庫 (.so檔案)編譯
- 從cmake解決clion編譯生成的可執行檔案(.exe)不可執行的問題編譯
- 基於.net standard 的動態編譯實現編譯
- Maven根據pom檔案中的Profile標籤動態配置編譯選項Maven編譯
- MATLAB2017b庫編譯及生成exeMatlab編譯
- python2 反編譯pyinstaller打包的可執行exe檔案Python編譯
- Depends.exe檢視dll動態鏈檔案
- Python如何生成windows可執行的exe檔案PythonWindows
- 第19篇 Protocol Buffers 編譯器生成proto檔案Protocol編譯
- 取證中exe檔案的分析
- Python 編譯成 exePython編譯
- Gluon 編譯 JavaFx -> exe編譯Java
- PyCharm GUI介面開發和exe檔案生成PyCharmGUI
- dotnet core如何編譯exe編譯
- python如何編譯成exePython編譯
- MFC在一個工程中啟動其他工程的exe檔案
- Roslyn 編譯器Api妙用:動態生成類並實現介面ROS編譯API
- 編譯lua動態庫編譯
- 有關Linux的可執行程式——動態編譯、靜態編譯、readelfLinux行程編譯
- 容器中的 .net core應用,生成dump檔案並匯出
- matlab生成exe獨立執行檔案已破解(好用)Matlab
- 【譯】.NET 的新的動態檢測分析
- 如何獲取java執行時動態生成的class檔案?Java
- dll反編譯(修改引用檔案、修改程式碼)再生成dll編譯
- Python呼叫ansible API系列(四)動態生成hosts檔案PythonAPI
- 如何使用 Python 或 Bash動態生成 Jekyll 配置檔案Python
- 深入理解Java的動態編譯Java編譯
- [Python]批量編譯pyc檔案Python編譯
- .net 8 WPF釋出程式只生成exe
- vscode 配置c/c++環境,無法生成 *.exe檔案VSCodeC++
- Java動態編譯優化——提升編譯速度(N倍)Java編譯優化
- Flutter-一行註解直接編譯生成資源配置檔案Flutter編譯
- 自動生成Mybatis的Mapper檔案MyBatisAPP
- [譯] Swift 中的動態特性Swift
- 編譯生產pdb檔案的軟體編譯
- Android-ffmpeg編譯so檔案Android編譯