1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
| Imports System
Imports System.Text
Imports System.IO
Imports System.Threading
Imports System.CodeDom.Compiler
Imports Microsoft.CSharp
Imports System.Collections.Generic
Public Class Form1
Dim batchpath As String = Nothing
Dim iconpath As String = Nothing
Dim bindfilepath As String = Nothing
Dim bindfilename As String = Nothing
Dim outputfile As String = Nothing
Dim src As String = My.Resources.stub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
TextBox2.Enabled = False
TextBox3.Enabled = False
End Sub
Private Sub Compile(ByVal Exename As String, ByVal SourceCode As String, ByVal Icon As String)
Dim compiler As CodeDomProvider = CodeDomProvider.CreateProvider("VisualBasic")
Dim param As New CompilerParameters
Dim results As CompilerResults = Nothing
param.GenerateExecutable = True
param.OutputAssembly = Exename
param.ReferencedAssemblies.Add("System.dll")
param.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll")
param.CompilerOptions = " /target:winexe"
param.TreatWarningsAsErrors = False
If (Icon = Nothing) Then
'do nothing
Else
File.Copy(Icon, "icon.ico")
param.CompilerOptions += " /win32icon:" & "icon.ico"
End If
results = compiler.CompileAssemblyFromSource(param, SourceCode)
If (results.Errors.Count <> 0) Then
MsgBox("Some Error Occured During Code Compiletion, Try Again!!", MsgBoxStyle.Critical)
For Each E As CompilerError In results.Errors
MessageBox.Show(E.ErrorText)
Next
End If
If (Icon = Nothing) Then
'do nothing
Else
File.Delete("icon.ico")
End If
End Sub
Function secure(ByVal data As Byte()) As Byte()
Using SA As New System.Security.Cryptography.RijndaelManaged
SA.IV = New Byte() {1, 9, 2, 8, 3, 7, 4, 5, 6, 0, 1, 4, 3, 0, 0, 7}
SA.Key = New Byte() {7, 0, 0, 3, 4, 1, 0, 6, 5, 4, 7, 3, 8, 2, 9, 1}
Return SA.CreateEncryptor.TransformFinalBlock(data, 0, data.Length)
End Using
End Function
Sub Replace(ByRef main As String, ByVal old As String, ByVal [new] As String)
main = main.Replace(old, [new])
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim src As String = Nothing
Dim Compressor As Boolean = False
' Configuring iconpath for second use
If CheckBox1.Checked = False Then
iconpath = Nothing
End If
If TextBox1.Text = "Click Here to Browse the Batch File" Then
MsgBox("Select A Batch File First .!!", MsgBoxStyle.Critical, "Error ..!!")
Exit Sub
End If
If CheckBox1.Checked = True Then
If TextBox2.Text = "Click Here to Browse Icon" Then
MsgBox("Select An Icon File First .!!", MsgBoxStyle.Critical, "Error ..!!")
Exit Sub
Else
'do nothing
End If
End If
If CheckBox2.Checked = True Then
If TextBox3.Text = "Click Here to Browse File" Then
MsgBox("Please Select A File To Bind First .!!", MsgBoxStyle.Critical, "Error ..!!")
Exit Sub
Else
' do nothing
End If
End If
Using s As New SaveFileDialog()
s.Title = "Save File ...!!"
s.Filter = "Executable |*.exe"
If (s.ShowDialog = Windows.Forms.DialogResult.OK) Then
outputfile = s.FileName
src = My.Resources.stub
If CheckBox3.Checked = True Then
Replace(src, "Dim hiddenmode As Boolean = False", "Dim hiddenmode As Boolean = True")
End If
If CheckBox2.Checked = True Then
Replace(src, "'[BDPROC]", Nothing)
End If
Label1.Text = "Creating Stub"
Try
' !!! Make call to compile stub File !!!
Label1.Text = "Compiling Stub"
Compile(outputfile, src, iconpath)
' Writing Files into stub
Dim sp As String = "[SPLITTING_POINT]"
Dim batchf As Byte() = secure(My.Computer.FileSystem.ReadAllBytes(batchpath))
Label1.Text = "Reading Batch File"
If CheckBox2.Checked = True Then
Label1.Text = "Reading Binded File"
Dim bindf As Byte() = secure(My.Computer.FileSystem.ReadAllBytes(bindfilepath))
Label1.Text = "Writing Files To Stub"
System.IO.File.AppendAllText(outputfile, sp & Convert.ToBase64String(batchf) & sp & bindfilename & sp & Convert.ToBase64String(bindf))
Else
Label1.Text = "Writing File To Stub"
System.IO.File.AppendAllText(outputfile, sp & Convert.ToBase64String(batchf))
End If
Catch ex As Exception
Label1.Text = "Error !!"
MsgBox("Some !Error Occured During Compilation ...?", MsgBoxStyle.Critical, "Error..!!")
Exit Sub
End Try
Label1.Text = "[#] Done..!!"
MsgBox("SuccessFully Created", MsgBoxStyle.Information, "Success !")
End If
End Using
End Sub
Private Sub TextBox1_Click(sender As Object, e As EventArgs) Handles TextBox1.Click
Label1.Text = "Status ..."
Using O As New OpenFileDialog()
O.Title = "Select Batch File.."
O.Filter = "Batch File|*.bat"
If O.ShowDialog = Windows.Forms.DialogResult.OK Then
batchpath = O.FileName
TextBox1.Text = O.FileName
End If
End Using
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
TextBox2.Enabled = True
Else
TextBox2.Enabled = False
End If
End Sub
Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then
TextBox3.Enabled = True
Else
TextBox3.Enabled = False
End If
End Sub
Private Function components() As Object
Throw New NotImplementedException
End Function
Private Sub TextBox2_Click(sender As Object, e As EventArgs) Handles TextBox2.Click
Using O As New OpenFileDialog()
O.Title = "Select Icon File.."
O.Filter = "Icon File|*.ico"
If O.ShowDialog = Windows.Forms.DialogResult.OK Then
iconpath = O.FileName
TextBox2.Text = O.SafeFileName
End If
End Using
End Sub
Private Sub TextBox3_Click(sender As Object, e As EventArgs) Handles TextBox3.Click
Using O As New OpenFileDialog()
O.Title = "Select File To Bind.."
O.Filter = "All Files|*.*"
If O.ShowDialog = Windows.Forms.DialogResult.OK Then
bindfilepath = O.FileName
bindfilename = O.SafeFileName
TextBox3.Text = O.SafeFileName
End If
End Using
End Sub
End Class |
Partager