PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [vb.net] binder [hilfe]



inmate
27.05.2009, 17:47
Hallo , also ich wollte mal versuchen ein binder zu machen doch irgenwie klappt das nicht. ich habe aber auch keine vorstellung davon wie das gehen könnte.
Mein code:
Public Class Form1


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
With OpenFileDialog1
.FileName = "file1.exe"
.ShowDialog()
TextBox1.Text = OpenFileDialog1.FileName
End With
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
With OpenFileDialog2
.FileName = "file2.exe"
.ShowDialog()
TextBox2.Text = OpenFileDialog2.FileName
End With
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

With SaveFileDialog1
.FileName = "bindet.exe"
.ShowDialog()
End With

Dim file1 As String = OpenFileDialog1.FileName
Dim file2 As String = OpenFileDialog2.FileName
Dim file3 As String = SaveFileDialog1.FileName
FileOpen(1, file3, OpenMode.Binary)
FilePut(1, file2 & file1, LOF(1) + 1)
FileClose(1)


End Sub
End Class
was genau ist daran falsch ?


mfG

inmate

Sawyer
27.05.2009, 18:00
Dim file1 As String = OpenFileDialog1.FileName
Dim file2 As String = OpenFileDialog2.FileName
Dim file3 As String = SaveFileDialog1.FileName
FileOpen(1, file3, OpenMode.Binary)
FilePut(1, file2 & file1, LOF(1) + 1)
FileClose(1)also so kann es auch nicht gehen , da du nur die Datei Pfade und nicht die Datei Selbst einließt
du musst jede Datei mittels FileStream in ein ByteArray Schreiben

und die Bytearrays dann an die Datei hängen (nur solltest du noch ein paar Zeichen wie <|> dazwischenschreiben , sonst kannst du die Dateien nicht wieder separat irgendwohin schreiben^^

beim Server wieder voneinander splitten

außerdem solltest du nicht mit FilePut arbeiten (ja das mach ich in meinen builder tut auch so , aber das ist veraltet^^)
benutze lieber den FileStream Zum Lesen und Schreiben

MfG

inmate
27.05.2009, 19:36
achsoo ok na dann werde ichs mal versuchen :)

edit:

meinst du so ^^ :

Dim filestream1 As FileStream = 'der pfad der datei
Dim datei() As Byte = fileStream1

also als kleines beispiel.
und "datei" ist dann zB die erste file.

Sawyer
27.05.2009, 20:21
Dim filestream1 As FileStream = 'der pfad der datei
Dim datei() As Byte = fileStream1

also als kleines beispiel.
und "datei" ist dann zB die erste file

FileStream ist eine Funktion und keine variable!

wenn dann schon so:

Dim FileStream As New FileStream("Pfad", FileMode.Open, FileAccess.Read, FileShare.None)Die Parameter musst du natürlich anpassen, je nachdem ob du schreibst oder Lesen willst

Das andere Passt soweit ;)

MfG

inmate
27.05.2009, 21:24
Ok Danke :D hatte ich grade ganz vergessen :rolleyes:


naja wenns noch Probleme gibt schreibe ich´s hier rein :)

edit: problem^^

Imports System.IO
Imports System.IO.FileStream
Public Class Form1
Dim options As New Compatibility.VB6.FixedLengthString(100)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim file1 = New FileStream(My.Application.Info.DirectoryPath & "\" & TextBox1.Text, FileMode.Open, FileAccess.Read, FileShare.None)
Dim file2 = New FileStream(My.Application.Info.DirectoryPath & "\" & TextBox2.Text, FileMode.Open, FileAccess.Read, FileShare.None)
Dim filebyte1() As Byte = file1
Dim filebyte2() As Byte = file2

Dim stub As String = My.Application.Info.DirectoryPath & "\stub.exe"
Dim server As String = My.Application.Info.DirectoryPath & "\server.exe"

options.Value = file1 & "~" & file2

IO.File.Copy(stub, server)
FileOpen(1, (server), OpenMode.Binary)
FilePutObject(1, options.Value, LOF(1) + 1)
FileClose(1)

MsgBox("Die gebindete Datei wurde erfolgreich erstellt!", MsgBoxStyle.Information, "Erfolgreich")

End Sub
End Class



bei mir steht da das file1 & file2 nicht in ein 1 dimensionales array geladen werden können oder so ^^
und bei: options.value = file1 & "~" & file2 ' ist das unterstrichen

mfG

Sawyer
28.05.2009, 18:47
Du solltest die 2 Dateien die du eingelesen hast ja auch nicht in den fixed length string laden , sonder direkt an die Datei schreiben , mit dem erwähnten Zeichen

jedoch musst du beachten das du ein Start Zeichen an die Datei schreibst , damit du später die Position der Daten ermitteln kannst
dann kannst du die 2 Files in ein Array splitten , und irgendwo hinschreiben

beachte allerdings das du auch deine Server Daten schreiben musst , diese kannst du dann wie gewohnt wieder ans ende schreiben , beachte aber das du ein separates Splitt Zeichen zwischen deinen Einstellungen benutzt , sonst wird es nicht funktionieren

MfG

inmate
28.05.2009, 19:17
puhh erstmal danke für Antwort , aber ich denke ich bin doch noch nicht bereit dazu nen Binder zu schreiben ^^.

Naja egal muss ich halt noch n bisschen lernen :)


mfG

HawK
28.05.2009, 20:11
was macht son binder eig. ¿ :P gibtz dazu nen sticky oder so is das dasselbe wien Crypter ? oder wie darf man sich das vortstelln hab damit noch ned gearbeitet



MFG Falke

HandyRipper
28.05.2009, 20:23
was macht son binder eig. ¿ :P gibtz dazu nen sticky oder so is das dasselbe wien Crypter ? oder wie darf man sich das vortstelln hab damit noch ned gearbeitet



MFG Falke

Es bindet 2 oder mehr Files zu einer , so kann mann z.B. einen Server tarnen indem man ihn mit einem Bild o.Ä. bindet . Und dann bekommt man eine .exe die beim start die beiden Original Files droppt und diese startet.

Mfg.