Você tem esse seu aplicativo que cada vez que for executado terá que ter um novo nome. Você não mexe em nada no código dele para fazer isso.
Aí você terá um segundo aplicativo do tipo Console Application denominado Laucher.exe. Os atalhos (Da área de trabalho, menu iniciar e barra de tarefas) para apontar para o Laucher.exe, ao invés do seu aplicativo.
A pasta onde seu software for instalado vai ficar assim:
Namespace HL
Public Module Program
Public Sub Main()
Dim pastaDoAplicativo As String = AppDomain.CurrentDomain.BaseDirectory & "\Application"
Dim files As String() = Directory.GetFiles(pastaDoAplicativo, "*.exe")
If files.Count = 0 Then
Console.WriteLine("Aplicação não encontrada! Pressione uma tecla para sair")
Console.ReadKey()
Else
Dim applicativo As String = files(0)
Dim appInfo As New FileInfo(applicativo)
Dim novoNome As String = appInfo.Directory.FullName & "\" & Randomizer.RandomWord(15) & ".exe"
appInfo.MoveTo(novoNome)
System.Diagnostics.Process.Start(novoNome)
End If
End Sub
End Class
NotInheritable Class Randomizer
Private Sub New()
End Sub
Shared Sub New()
listRandom = New Random()
nextRandom = New Random()
nextRandomHistory = New ArrayList()
End Sub
Private Shared listRandom As Random
Private Shared nextRandom As Random
Private Shared nextRandomHistory As ArrayList
''' <summary>
''' Gera uma lista preencida com números organizados de forma aleatória
''' </summary>
''' <param name="min">O número de partida</param>
''' <param name="count">Quantidade de números</param>
''' <returns></returns>
Public Shared Function Random(min As Integer, count As Integer) As IList(Of Integer)
Dim list As IList(Of Integer) = Enumerable.Range(min, count).OrderBy(Function(r) listRandom.[Next]()).ToList()
Return list
End Function
''' <summary>
''' Gerar um número aleatório único
''' </summary>
''' <returns>Retorna um número aleatório único nesta instância do aplicativo</returns>
Public Shared Function [Next]() As Integer
Dim value As Integer = nextRandom.[Next]()
While True
If Not nextRandomHistory.Contains(value) Then
nextRandomHistory.Add(value)
Return value
End If
value = nextRandom.[Next]()
End While
End Function
''' <summary>
''' Gerar uma letra aleatória
''' </summary>
''' <returns></returns>
Public Shared Function RandomLetter() As Char
Return ChrW((New Integer() {nextRandom.[Next](65, 90), nextRandom.[Next](97, 122)})(nextRandom.[Next](0, 2)))
End Function
''' <summary>
''' Gerar um número de 0 a 9 aleatóriamente
''' </summary>
''' <returns></returns>
Public Shared Function RandomDigit() As Integer
Return nextRandom.[Next](0, 10)
End Function
''' <summary>
''' Gerar um caractere aleatório
''' </summary>
''' <returns></returns>
Public Shared Function RandomChar() As Char
Return ChrW(nextRandom.[Next](1, 256))
End Function
''' <summary>
''' Gerar uma palavra com letras aleatórias
''' </summary>
''' <param name="charCount">Quantidade de letras</param>
''' <returns></returns>
Public Shared Function RandomWord(charCount As Integer) As String
Dim str As New StringBuilder()
Dim previous As Char = ChrW(0)
For i As Integer = 1 To charCount
Dim rnd As Char = RandomLetter()
While True
If rnd <> previous Then
Exit While
End If
rnd = RandomLetter()
End While
str.Append(rnd)
previous = rnd
Next
Return str.ToString()
End Function
End Class
End Namespace
O atalho do executavel vai abrir esse "launcher" em console que vai gerar um novo nome para o processo do executavel (no caso o main.exe), ou seja, toda vez que for aberto o mesmo vai estar com um processo diferente
Pode ser util ou não, pode evitar um pouco no uso de hacks, pois muitos hacks listam o processo do game em uma ProcessList, ou em uma TextBox que pede o nome do processo do jogo, e toda vez será um nome diferente para o processo, dificulta um pouco mas né...
Pode ser que seja necessário uns ajustes no code, pois foi convertido de C# para .NET, fica ao trabalho de vocês...
11-04-2014, 09:55 PM
Yann Diias
mas aí é só a pessoa abrir direto o launcher..
12-04-2014, 03:11 AM
SCOFIELD
Então era para isto que você pediu ,
mas isso não vai servir sabe porque?
porque eu posso colocar uma textbox no hack e ver o nome do main que o random gerou e colocar na textbox bem simples :D