Page 1 sur 1
[R] Algorithme pour Windows 7
Posté : ven. 27 déc. 2013 22:13
par Hackode
Bonsoir à tous et à toutes,
Je voulais savoir via ce poste les algorithmes de chiffrage (cryptage/décryptage ne veulent rien dire) en langage AutoIt existants pour que mon ordinateur qui tourne sous Windows 7 puisse exécuter des fichiers au format .exe cryptés. Car j'ai testé l'include : #include <Crypt.au3>
Avant de crypter le fichier au format .exe je peux l'exécuter sans trop de mal, mais lorsque je le crypte et que je tente de l'exécuter, un message d'erreur apparaît :
Que je crypte en 3DES|AES (128bit)|AES (192bit)|AES (256bit)|DES|RC2|RC4 le résultat est le même, j'ai toujours le même message d'erreur (voir ci-dessus).
Quelqu'un aurait-il une idée d'ou pourrait venir mon problème? Je tiens à préciser que ce code vient tout droit de la documentation.
Voici le code pour ceux qui aurait oublier :
► Afficher le texte
Code : Tout sélectionner
#include <Crypt.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
Local $bAlgorithm = $CALG_RC4
Local $sFilePath = ""
GUICreate("File Encrypter", 425, 100)
Local $iSourceInput = GUICtrlCreateInput("", 5, 5, 200, 20)
Local $iSourceBrowse = GUICtrlCreateButton("...", 210, 5, 35, 20)
Local $iDestinationInput = GUICtrlCreateInput("", 5, 30, 200, 20)
Local $iDestinationBrowse = GUICtrlCreateButton("...", 210, 30, 35, 20)
GUICtrlCreateLabel("Password:", 5, 60, 200, 20)
Local $iPasswordInput = GUICtrlCreateInput("", 5, 75, 200, 20)
Local $iCombo = GUICtrlCreateCombo("", 210, 75, 100, 20, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "3DES|AES (128bit)|AES (192bit)|AES (256bit)|DES|RC2|RC4", "RC4")
Local $iEncrypt = GUICtrlCreateButton("Encrypt", 355, 70, 65, 25)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $iSourceBrowse
$sFilePath = FileOpenDialog("Select a file to encrypt.", "", "All files (*.*)") ; Select a file to encrypt.
If @error Then
ContinueLoop
EndIf
GUICtrlSetData($iSourceInput, $sFilePath) ; Set the inputbox with the filepath.
Case $iDestinationBrowse
$sFilePath = FileSaveDialog("Save the file as ...", "", "All files (*.*)") ; Select a file to save the encrypted data to.
If @error Then
ContinueLoop
EndIf
GUICtrlSetData($iDestinationInput, $sFilePath) ; Set the inputbox with the filepath.
Case $iCombo ; Check when the combobox is selected and retrieve the correct algorithm.
Switch GUICtrlRead($iCombo) ; Read the combobox selection.
Case "3DES"
$bAlgorithm = $CALG_3DES
Case "AES (128bit)"
If @OSVersion = "WIN_2000" Then
MsgBox(16, "Error", "Sorry, this algorithm is not available on Windows 2000.") ; Show an error if the system is Windows 2000.
ContinueLoop
EndIf
$bAlgorithm = $CALG_AES_128
Case "AES (192bit)"
If @OSVersion = "WIN_2000" Then
MsgBox(16, "Error", "Sorry, this algorithm is not available on Windows 2000.")
ContinueLoop
EndIf
$bAlgorithm = $CALG_AES_192
Case "AES (256bit)"
If @OSVersion = "WIN_2000" Then
MsgBox(16, "Error", "Sorry, this algorithm is not available on Windows 2000.")
ContinueLoop
EndIf
$bAlgorithm = $CALG_AES_256
Case "DES"
$bAlgorithm = $CALG_DES
Case "RC2"
$bAlgorithm = $CALG_RC2
Case "RC4"
$bAlgorithm = $CALG_RC4
EndSwitch
Case $iEncrypt
Local $sSourceRead = GUICtrlRead($iSourceInput) ; Read the source filepath input.
Local $sDestinationRead = GUICtrlRead($iDestinationInput) ; Read the destination filepath input.
Local $sPasswordRead = GUICtrlRead($iPasswordInput) ; Read the password input.
If StringStripWS($sSourceRead, 8) <> "" And StringStripWS($sDestinationRead, 8) <> "" And StringStripWS($sPasswordRead, 8) <> "" And FileExists($sSourceRead) Then ; Check there is a file available to encrypt and a password has been set.
Local $iSuccess = _Crypt_EncryptFile($sSourceRead, $sDestinationRead, $sPasswordRead, $bAlgorithm) ; Encrypt the file.
If $iSuccess Then
MsgBox(0, "Success", "Operation succeeded.")
Else
Switch @error
Case 1
MsgBox(16, "Error", "Failed to create the key.")
Case 2
MsgBox(16, "Error", "Couldn't open the source file.")
Case 3
MsgBox(16, "Error", "Couldn't open the destination file.")
Case 4 Or 5
MsgBox(16, "Error", "Encryption error.")
EndSwitch
EndIf
Else
MsgBox(16, "Error", "Please ensure the relevant information has been entered correctly.")
EndIf
EndSwitch
WEnd
Maintenant je cherche à savoir comment régler ce problème d'incompatibilité ou alors trouver un code avec un algorithme capable de crypter mon fichier afin que je puisse l'exécuter crypté et non-crypté.
Je peux fournir des informations quant à mon ordinateur si ça peut-être utile.
Re: [..] Algorithme pour Windows 7
Posté : ven. 27 déc. 2013 22:40
par jguinch
Je ne suis pas expert là-dedans, mais si tu chiffres un exécutable, il n'est à mon avis plus exécutable dans l'état...
Il faudra forcément le déchiffrer pour pouvoir l'exécuter
Re: [..] Algorithme pour Windows 7
Posté : sam. 28 déc. 2013 01:03
par jchd
La parole de jguinch est d'or.
Hackode,
Quel est le but de ce désir de chiffrement ?
Re: [..] Algorithme pour Windows 7
Posté : sam. 28 déc. 2013 11:26
par TT22
jchd a écrit :Quel est le but de ce désir de chiffrement ?
Si le but est de protéger la source d'un exécutable écrit en AutoIt, le mieux est d'utiliser l'obfuscateur de scripts.
Sinon pour protéger un exécutable tu peux créer un zip auto-extractible protégé par un mot de passe que va extraire le fichier exe puis le lancer.
Mais n'oublie pas qui pour lancer un exécutable il faudra l'écrire décrypté sur le disque-dur et il sera donc possible de le récupérer à ce moment.
Re: [..] Algorithme pour Windows 7
Posté : sam. 28 déc. 2013 13:34
par jchd
TT22 a écrit :Si le but est de protéger la source d'un exécutable écrit en AutoIt, le mieux est d'utiliser l'obfuscateur de scripts.
Non, l'obfuscation ne sert pas à protéger quoi que ce soit.
Mais n'oublie pas qui pour lancer un exécutable il faudra l'écrire décrypté sur le disque-dur
Non plus.
Re: [..] Algorithme pour Windows 7
Posté : sam. 28 déc. 2013 14:06
par TT22
jchd a écrit :Non, l'obfuscation ne sert pas à protéger quoi que ce soit.
Je me suis mal exprimé.
Je voulais dire qu'il est plus compliqué de retrouver le code source original après une obfuscation.
jchd a écrit :TT22 a écrit :Mais n'oublie pas qui pour lancer un exécutable il faudra l'écrire décrypté sur le disque-dur
Non plus.
Comment ?
Re: [..] Algorithme pour Windows 7
Posté : sam. 28 déc. 2013 14:40
par jchd
On peut lancer l'exécution d'un quelconque bout de code venant de Jupiter (comprencre pas un bout de code exécutable sous l'un formats reconnus chargé depuis le disque) en court-circuitant le lanceur du système. Le forum US (au moins) regorge d'exemples. Ceci dit, la majorité de ces bidouillages ne sont pas blanc-bleus...
Re: [..] Algorithme pour Windows 7
Posté : dim. 29 déc. 2013 13:46
par lesolutionneur
Il cherche peut-être à faire un packer/unpacker style UPX.
En tout cas, ce n'est pas en encryptant l'exécutable de cette manière que ça fonctionnera : là tout est encrypté, le header PE compris donc Windows ne peut pas en tirer les informations nécessaires.
Le principe d'un packer, c'est de changer le entry point vers un algorithme qui décrypte le programme, généralement en mémoire vive puis fait un jump sur le entry point originel.
Ça permet de lutter contre les rétro-ingénieurs en herbe qui ne peuvent alors pas utiliser un désassemblage/une décompilation statique.
Une autre utilité est de rendre un virus méconnaissable par les Antivirus, mais ce n'est pas ce que tu cherches à faire, je présume ?
PS : le titre du sujet contient 4 mots génériques qui ne donnent aucune information sur ton problème, pense à changer le titre
PSS : "chiffrage" n'a aucun sens non plus, lis le mot de manière littérale : qu'est-ce qui se passe quand on chiffre des chiffres ? Rien du tout !
Re: [..] Algorithme pour Windows 7
Posté : dim. 29 déc. 2013 14:23
par Hackode
lesolutionneur a écrit :Il cherche peut-être à faire un packer/unpacker style UPX.
En tout cas, ce n'est pas en encryptant l'exécutable de cette manière que ça fonctionnera : là tout est encrypté, le header PE compris donc Windows ne peut pas en tirer les informations nécessaires.
Le principe d'un packer, c'est de changer le entry point vers un algorithme qui décrypte le programme, généralement en mémoire vive puis fait un jump sur le entry point originel.
Ça permet de lutter contre les rétro-ingénieurs en herbe qui ne peuvent alors pas utiliser un désassemblage/une décompilation statique.
Une autre utilité est de rendre un virus méconnaissable par les Anti-virus, mais ce n'est pas ce que tu cherches à faire, je présume ?
PS : le titre du sujet contient 4 mots génériques qui ne donnent aucune information sur ton problème, pense à changer le titre
PSS : "chiffrage" n'a aucun sens non plus, lis le mot de manière littérale : qu'est-ce qui se passe quand on chiffre des chiffres ? Rien du tout !
Merci à tous pour vos réponses, j'y vois déjà plus clair maintenant, je cherche à réaliser un Crypteur qui aurait pour but de Crypter une Application Console en Visual Basic.
Lorsque je lance mon Application Console, celle-ci Crypte un fichier au format .txt contenant des informations personnelles en utilisant le mode de chiffrage DES. En ressort un nouveau fichier au format .txt avec les informations personnelles Cryptées. A tout moment je peux Décrypter le fichier au format .txt Crypté avec une autre Application Console.
Le problème est que mes Applications Consoles sont détectées par mon Anti-virus (Avira) ; Je souhaite donc créer un Crypteur et Crypter mes Applications Consoles afin de ne plus être en permanence embêté par mon Anti-virus.
Maintenant ici, le problème c'est que lorsque je tente #include <Crypt.au3> dans mon code ; Un message d'erreur apparaît lorsque je tente de lancer le programme. (Voir screen plus haut).
Quelqu'un aurait-il une idée? Merci d'avance.
@Lesolutionneur : "Cryptage" n'est toujours pas accepté par l’académie Française. Il est couramment utilisé dans la langue Française, mais il est très mal vu. Il est dit que le mot à utiliser serait par conséquent "Chiffrage" Mais si tu veux savoir mon avis, c'est du pareil au même, on se comprend.
Re: [..] Algorithme pour Windows 7
Posté : dim. 29 déc. 2013 15:36
par jchd
Les termes corrects, en hexagonal, sont "chiffrer", "déchiffrer" et "chiffrement". C'est l'art du Chiffre.
Mis à part "crypte", "cryptographie" et "cryptique", "crypter", "décrypter", "cryptage" et autres sont d'atroces néologismes.
Maintenant tes demandes ne sont pas claires. Tu parlais de chiffrer un exécutable d'un bloc (ce qui ne peut que le rendre non exécutable, comme dit précédemment), maintenant tu parles de chiffrer un fichier texte de données personnelles avec des applications tierces que tu veut elles-mêmes chiffrer ?
Peu importe le nombre de couches que tu emploieras, si la ou les clés sont en dur dans le code, la sécurité de cette usine à gaz sera essentiellement nulle.
Re: [R] Algorithme pour Windows 7
Posté : mar. 07 janv. 2014 23:57
par lesolutionneur
Hackode, ta requête est confuse...
Pourrais-tu reformuler ta demande en explicitant ce que tu cherches à faire ? (donne-nous un pseudo-code de ce que souhaites réaliser)
Sache que les informations à propos de ton application VB sont inutiles, tout ce qu'on a besoin de connaître, c'est ce que tu veux faire en AutoIt (si ton application VB est compilée, alors considère que c'est un exécutable dans ton explication, on a pas besoin de connaître les détails de son fonctionnement ni même son utilité).