Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' Bat2exe converter
- ' Author : skyte
- ' http://sec-articles.blogspot.com
- '
- ' Credits : MrvbDude for file binder
- '
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement