BYTES DE UM EXECUTAVEL
O programa vai armazenar os bytes de um outro aplicativo.exe e colocar um botão como por exemplo [Ô]Executar[Ô] e ao clicar nele, o programa com os bytes do aplicativo.exe executa ele diretamente na memória, isso é possÃvel?
Agradeço desde já os que ajudarem ou tentarem ajudar ^^
Citação::
ñ entendi muito bem sua pergunta? vc quer q retorne o tamanho do aplicativo em bytes?
Não amigo, o que preciso é pegar os bytes de um programa, não entendo muito dessa parte, mais é que preciso que meu programa possa armazenar os bytes de um programa para executar ele depois apartir desses bytes, exemplo:
Digamos que quero armazenar os Bytes da Calculadora calc.exe ai depois com os byts no programa clicando no botão [Ô]Executar[Ô] do programa, ele execute a calculadora, mais não pelo calc.exe e sim pelos bytes armazenados no programa, entende?
Obrigado por esclarecer mais a minha dúvida ^ ^
coloque um textbox e um botao para procurar o arquivo
coloque no evento click do botao
Dim arquivo As New OpenFileDialog
With arquivo
.FileName = [Ô]*.*[Ô]
.Title = [Ô]escolha o arquivo[Ô]
.Filter = [Ô]all files (*.*) | *.*[Ô]
.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
If .ShowDialog = Windows.Forms.DialogResult.OK Then
f = .SafeFileName
TextBox1.Text = .FileName
End If
End With
depois em outro botao vc coloca
Dim caminho as string
Dim file As FileInfo = New FileInfo(caminho)
[ô]pela mensagem fica assim para saber o tamanho do arquivo em bytes
MsgBox(file.Length)
[ô]ñ sei se funciona
process.start(file.Length)
Citação::
bom ñ sei muito se ajuda
coloque um textbox e um botao para procurar o arquivo
coloque no evento click do botao
Dim arquivo As New OpenFileDialog
With arquivo
.FileName = [Ô]*.*[Ô]
.Title = [Ô]escolha o arquivo[Ô]
.Filter = [Ô]all files (*.*) | *.*[Ô]
.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
If .ShowDialog = Windows.Forms.DialogResult.OK Then
f = .SafeFileName
TextBox1.Text = .FileName
End If
End With
depois em outro botao vc coloca
Dim caminho as string
Dim file As FileInfo = New FileInfo(caminho)
[ô]pela mensagem fica assim para saber o tamanho do arquivo em bytes
MsgBox(file.Length)
[ô]ñ sei se funciona
process.start(file.Length)
Obrigado por estar tentando me ajudar amigo, mais isso ai não é bem o que eu quero não, porque ele não esta armazenando os bytes do arquivo, se você soubesse dessa forma mesmo ai pode ser, mais se conseguisse salvar os bytes do arquivo selecionado com o 1° botão e no 2° botão, executar esse arquivo que vai ser um .exe na memória seria exatamente o que eu preciso que não estou conseguindo, mais uma vez muito obrigado por estar tentando me ajudar ^ ^
Citação::
Hmmm, entendi. Você quer fazer um programa, tipo um joguinho, e ao rodar, ele executa uma outra coisa, tipo um instalador de malware, isso?
Não é instalar, e não é pra vÃrus amigo, na verdade eu quero é proteger meu executável do jogo, se der de executar o programa com os bytes dele direto na memoria, não tem como o cara alterar nada no meu .exe entende?
Se soubesse como me ajudar com isso ficaria te devendo muito amigo!
coloque em um timer co intervalo de 3000 (3s)
Shell([Ô]\seuexecutavel.exe[Ô])
tem q estar na mesma pasta bin debug
onde encontra o executavel do vb.net
ou coloque o local do executavel entende
A execução de um programa, não é simplesmente dados em memória, ainda mais se for um programa em uma linguagem de alto nÃvel como o VB ou .NET
Quando o executável é [Ô]rodado[Ô], primeiramente ocorre o carregamento de runtimes/framework para que o windows possa [Ô]entender[Ô] o que o programa faz. Depois disso, o ciclo de execução começa, mas além do seu programa, existe em memória diversas DLL das quais seu programa depende para poder rodar corretamente. Então à menos que você faça seu programa totalmente em código binário e independente de DLL e framework o que você quer não é tecnicamente possÃvel de ser feito. Mas façamos o seguinte, explica direitinho o que você quer fazer que talvez haja uma alternativa.
Citação::
Bem, vamos ver se consigo explicar:
A execução de um programa, não é simplesmente dados em memória, ainda mais se for um programa em uma linguagem de alto nÃvel como o VB ou .NET
Quando o executável é [Ô]rodado[Ô], primeiramente ocorre o carregamento de runtimes/framework para que o windows possa [Ô]entender[Ô] o que o programa faz. Depois disso, o ciclo de execução começa, mas além do seu programa, existe em memória diversas DLL das quais seu programa depende para poder rodar corretamente. Então à menos que você faça seu programa totalmente em código binário e independente de DLL e framework o que você quer não é tecnicamente possÃvel de ser feito. Mas façamos o seguinte, explica direitinho o que você quer fazer que talvez haja uma alternativa.
Ok, vamos por partes então amigo!
1° parte: Tenho um programa em VB.NET que é pra ser apenas um [Ô]loading[Ô] (vou chamar de loading.exe) que executa meu programa principal que é o .exe do jogo que vou chamar de jogo.exe
2° parte: loading.exe com bytes do jogo.exe execute o jogo.exe direto em memoria!
3° parte: executando o jogo.exe direto em memoria apartir dos bytes dele, não seria necessário o jogo.exe que assim alguém mal intencionado não poderá alterar nada nele e nem copialo para executar sem antes o loading.exe
Caso não tenha entendido amigo, só me pergunta a parte que não entendeu que te explico mais detalhado se puder ^ ^
Citação:2° parte: loading.exe com bytes do jogo.exe execute o jogo.exe direto em memoria!
é, acho que não consegui explicar direito, veja bem a explicação...