Page 1 sur 1
[R] Code qui ne fonctionne pas
Posté : mer. 16 avr. 2014 20:51
par 91300
Bonjour, je viens une nouvelle fois demander un coup de pousse ici
bon déjà, je sais que mon titre est pas bien éloquent mais, j'avoue que j'avais du mal à résumer le soucis étant donner que... je ne sais pas du tout d'où il provient... :/
j'explique: une partie d'un programme que je développe en ce moment ne fonctionne pas sans que j'arrive à comprendre la raison je vous le transmet :
► Afficher le texte
Code : Tout sélectionner
Func Systeme()
Local $bAlgorithm = $CALG_SHA1
While 1
_Crypt_Startup()
$explorer = @WindowsDir &"\explorer.exe"
$winlogon = @WindowsDir &"\system32\winlogon.exe"
$userinit = @WindowsDir &"\system32\userinit.exe"
$OSVersion = GetOSVersion()
If $OSVersion = "Windows Seven" then
$md5explorer = "0x332feab1435662fc6c672e25beb37be3"
$md5winlogon = "0x1151b1baa6f350b1db6598e0fea7c457"
$md5userinit = "0x61ac3efdfacfdd3f0f11dd4fd4044223"
$sha1explorer = "0x5a49d7390ee87519b9d69d3e4aa66ca066cc8255"
$sha1winlogon = "0x434856b834baf163c5ea4d26434eeae775a507fb"
$sha1userinit = "0x211295ccda6cf6409189279bf66a212bd53fc650"
EndIf
$bAlgorithm = $CALG_MD5
$Hashexplorer = _Crypt_HashFile($explorer, $bAlgorithm)
$hashwinlogon = _Crypt_HashFile($winlogon, $bAlgorithm)
$hashuserinit = _Crypt_HashFile($userinit, $bAlgorithm)
$bAlgorithm = $CALG_SHA1
$iHashexplorer = _Crypt_HashFile($explorer, $bAlgorithm)
$ihashwinlogon = _Crypt_HashFile($winlogon, $bAlgorithm)
$ihashuserinit = _Crypt_HashFile($userinit, $bAlgorithm)
if $Hashexplorer = $md5explorer And $hashwinlogon = $md5winlogon and $hashuserinit = $md5userinit Then
msgbox(0,"Confirmation","Le résultat de la fonction de hashage correspond aux valeurs initiales ")
else
msgbox(0,"Problème","Le résultat de la fonction de hashage ne correspond pas aux valeurs initiales ")
endif
WEnd
_Crypt_Shutdown() ; Shutdown the crypt library.
EndFunc ;==>System
;~ Version de l'OS :
Func GetOSVersion()
Select
Case StringInStr("WIN_8", @OSVersion)
$OSVersion = "Windows 8"
Case StringInStr("WIN_7", @OSVersion)
$OSVersion = "Windows Seven"
Case StringInStr("WIN_2003", @OSVersion)
$OSVersion = "Windows 2003"
Case StringInStr("WIN_XP", @OSVersion)
$OSVersion = "Windows XP"
Case StringInStr("WIN_2000", @OSVersion)
$OSVersion = "Windows 2000"
Case StringInStr("WIN_NT4", @OSVersion)
$OSVersion = "Windows NT 4"
Case StringInStr("WIN_ME", @OSVersion)
$OSVersion = "Windows ME"
Case StringInStr("WIN_98", @OSVersion)
$OSVersion = "Windows 98"
Case StringInStr("WIN_VISTA", @OSVersion)
$OSVersion = "Windows Vista"
Case Else
$OSVersion = "Windows 95"
EndSelect
Return $OSVersion
EndFunc ;==>GetOSVersion
;~ Version de l'OS
Vous l'aurez compris, le but est de vérifier le MD5/sha1 de 3 fichiers et de les comparer aux md5/Sha1 initiaux.
j'espère ne pas être trop dans le faux sinon, merci de m'indiquer ce qui cloche afin de le retravailler.
Merci d'avance à vous tous
++
Re: [..] Code qui ne fonctionne pas
Posté : mer. 16 avr. 2014 22:00
par jguinch
Merci de poster un code qu'on peut tester...
Sinon, pour ton (tes) problème(s) :
- manquent les includes et l'appel de la fonction Systeme()
- la fonction est composée d'un boucle infinie et il n'y a pas de return...donc on ne sort jamais de la fonction => la boucle ne sert à rien
- pour les valeurs md5 et sha, il faut préciser le type, car c'est interprété comme du texte (c'est surement ce qui cloche) :
$md5explorer = Binary("0x332feab1435662fc6c672e25beb37be3")
- pourquoi faire un test md5 et sha alors qu'un seul aurait suffit ?
Re: [..] Code qui ne fonctionne pas
Posté : mer. 16 avr. 2014 22:05
par 91300
bonjour,
- la fonction est composée d'un boucle infinie et il n'y a pas de return...donc on ne sort jamais de la fonction => la boucle ne sert à rien
bien vu le soucis était la
- pourquoi faire un test md5 et sha alors qu'un seul aurait suffit ?
Lié aux infections informatiques, deux testes valent mieux qu'un seul, certaines infections sont capable dans certaines circonstance de duper un test md5
En tout cas merci, cela re-fonctionne
