Lo primero añadimos estas 3 funciones a nuestro crypter
Código: Seleccionar todo
Public Function GetNullBytes(lNum) As String
Dim sBuf As String
Dim i As Integer
For i = 1 To lNum
sBuf = sBuf & Chr(0)
Next
GetNullBytes = sBuf
End Function
Public Function ReadEOFData(sFilePath As String) As String
On Error GoTo Err:
Dim sFileBuf As String, sEOFBuf As String, sChar As String
Dim lFF As Long, lPos As Long, lPos2 As Long, lCount As Long
If Dir(sFilePath) = "" Then GoTo Err:
lFF = FreeFile
Open sFilePath For Binary As #lFF
sFileBuf = Space(LOF(lFF))
Get #lFF, , sFileBuf
Close #lFF
lPos = InStr(1, StrReverse(sFileBuf), GetNullBytes(30))
sEOFBuf = (Mid(StrReverse(sFileBuf), 1, lPos - 1))
ReadEOFData = StrReverse(sEOFBuf)
If ReadEOFData = "" Then
MsgBox "EOF data no detectada!", vbInformation
Else
MsgBox "EOF data detectada!", vbInformation
End If
Exit Function
Err:
ReadEOFData = vbNullString
End Function
Sub WriteEOFData(sFilePath As String, sEOFData As String)
Dim sFileBuf As String
Dim lFF As Long
On Error Resume Next
If Dir(sFilePath) = "" Then Exit Sub
lFF = FreeFile
Open sFilePath For Binary As #lFF
sFileBuf = Space(LOF(lFF))
Get #lFF, , sFileBuf
Close #lFF
Kill sFilePath
lFF = FreeFile
Open sFilePath For Binary As #lFF
Put #lFF, , sFileBuf & sEOFData
Close #lFF
End Sub
De k forma?
Pos por ejemplo en el boton de Crypt de un server luego de esto k se suele poner por si el user no ha seleccionado neustro server del BF:
Código: Seleccionar todo
If textitem.Text = "" Or txtitem.Text = "Seleccione el archivo" Then
MsgBox "Seleccione un archivo", vbExclamation, Me.Caption
Exit Sub
Else
Bueno pos lo k hacemos a continuacion es leer el EOF y guardarlo en una variable para luego poder usarlo con el write
Antes de poner directamente como es para k lo kopieis sin mas voy a intetar explicaros lo k yo se
Vamos a leer la funcion de ReadEOFData
"Public Function ReadEOFData(sFilePath As String) As String"
Lo k esta entre parentesis () son las instrucciones k espera recibir y "As string" k tiene k ser una cadena de caracteres, para no enrollarnos espera recibir el archivo al k leer la EOF data (obvio no??)
Pos amso a ello debajo de akello k akabo de poner arriba vamos a poner una varible k sea
Código: Seleccionar todo
TheEOF = ReadEOFData(textitem.Text)
(poner el "$" es lo mismo k poner As String, yo lo uso mas k es mas corto, al = k "As Integer es un "%"" As long un "&" bueno y asi...)Dim TheEOF$
Vale ya tenemos el EOF del nuestro server BF copiado en memoria como "TheEOF" (para eso sirven las varibles)
K nos keda?? pos si has pensado en escribirlo en nuestro server crypteado has hacertado y asi de afcil es:
Al fianal del "Private Sub cmdCrypt_Click()" el cmdCrypt es mi boton de cryptear el write yo lo tengo antes del
Código: Seleccionar todo
MsgBox "Encryptacion realizada con exito!!", vbInformation, Me.Caption
Código: Seleccionar todo
Sub WriteEOFData(sFilePath As String, sEOFData As String)
Como lo ponemos¿ asi:
Código: Seleccionar todo
Call WriteEOFData(CommonDialog1.FileName, TheEOF)
Código: Seleccionar todo
With CommonDialog1
.DialogTitle = "Select Output"
.DefaultExt = "exe"
.Filter = "Executables (*.exe)|*.exe|All Files (*.*)|*.*"
.ShowSave
End With
Y TheEOF ?? pos si la variable en la k habiamso guardado antes el eof de nuestro server
Bueno pos eso es todo espero k haya servido de ayuda ( hay esta lo basico) si teneis alguan duda podeis pregutar lo k kerais