Advertisement
Guest User

Decompile

a guest
Apr 7th, 2015
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "   _______________________________________________________________________
  2.  | Création : 31 Mars 2015                                                |
  3.  |                                                                        |
  4.  | Fait par : Étienne Gladu                                               |
  5.   |                                                                        |
  6.  | But      : Trouve les fichiers DLL dans un dossier et ses sous-dossier |
  7.  |            Ensuite decompile les DLL trouvés si l'utilisateur le désir |
  8.   |                                                                        |
  9.  | Prérequis: Telerik JustDecompile                                       |
  10.  |________________________________________________________________________|
  11. "
  12. #-----------DÉCLARATION DES VARIABLES----------------------------------------------------------------|-----------COMMENTAIRES--------------------------------|
  13. $telerik = 'C:\Program Files (x86)\Telerik\JustDecompile\Libraries\JustDecompile.exe'                #Où se trouve JustDecompile
  14. $target = "/target "                                                                                  #Source du DLL
  15. $out = " /out "                                                                                        #Destination DLL
  16. $Commande = @()                                                                                        #Conteneur de commandes
  17. #-----------FONCTION---------------------------------------------------------------------------------|
  18. Function script                                                                                        #Fonction principal
  19. {
  20.     $dossier = (Read-Host –Prompt "Entrez le chemin complet où vous voulez trouver les fichiers .DLL") #Demande le chemin pour trouver les DLL
  21.     $existence = (Test-Path $dossier)                                                                  #S'assure que le chemin existe
  22.    
  23.     if ($existence -eq $true)                                                                          #Si le chemin existe
  24.     {
  25.         $NbDll = (get-childitem $dossier -filter "*.dll" -recurse).Count                               #Compte le nombre de .dll dans le dossier spécifié et ses sous-dossiers
  26.         write-host "Fichiers .DLL trouvés :" $NbDll -foregroundcolor green                             #Affiche le résultat        
  27.         $decompile = read-Host "Voulez-vous décompiler tout les fichiers .DLL trouvés ? O | N"         #Demande si l'utilisateur veut décompiler les .DLL
  28.  
  29.         if($decompile -eq "o")                                                                         #S'il répond "o"
  30.         {
  31.             decompilation                                                                              #Decompile
  32.             fermeture                                                                                  #Ferme
  33.         }
  34.         elseif($decompile -eq "n")                                                                     #S'il répond "n"
  35.         {
  36.             Write-Host "Bonne journée!"                                                                #Affiche un message
  37.             fermeture                                                                                  #Ferme
  38.         }
  39.         else                                                                                           #Si autre que "o" ou "n" est entré
  40.         {
  41.             write-host "Réponse non considérée" -foregroundcolor red                                   #Avertissement
  42.             fermeture                                                                                  #Ferme
  43.         }
  44.     }
  45.     else                                                                                               #Si le chemin n'existe pas
  46.     {
  47.         write-host "Le dossier spécifié n'existe pas ou est introuvable"  -foregroundcolor red         #Affiche un message si le chemin n'existe pas
  48.         script                                                                                         #Retour au début
  49.     }
  50. }
  51. #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
  52. Function decompilation                                                                                 #Fonction pour Décompiler
  53. {
  54.     $destination = read-host "Où voulez-vous placer les .DLL décompilé ?"                              #Demande où placer les DLL décompilé
  55.     $confirmation = (Test-Path $destination)                                                           #S'assure que la destination existe
  56.     $reg = [regex]"\/out .*"
  57.     if ($confirmation -eq $true)                                                                       #Si le chemin existe
  58.     {  
  59.        get-childitem $dossier -filter "*.dll" -recurse |                                               #Fouille dans les dossier et trouve les .dll
  60.        foreach-object{invoke-expression "mkdir $destination\$_"}                                       #Créé le dossier de destination
  61.        
  62.        get-childitem $dossier -filter "*.dll" -recurse |                                               #Fouille dans les dossier et trouve les .dll
  63.        foreach-object{$Commande += $target + $_.fullname + $out + $destination + $_}
  64.        
  65.        
  66.        foreach($cmd in $commande){
  67.         $test = start-process JustDecompile.exe -WorkingDirectory "C:\Program Files (x86)\Telerik\JustDecompile\Libraries\" -ArgumentList $cmd -wait -WindowStyle Hidden
  68.         $folder = $cmd -match ".* /out (?<content>.*)"
  69.         $project = $Matches['content']
  70.         Get-ChildItem $project | where {$_.Attributes -eq 'Directory'}|
  71.         foreach-object{if($_.fullname -match "References"){Remove-Item -Path $_.fullname -Recurse}}
  72.        }                                           #Exécute la commande pour chaque .dll trouvé
  73.     }
  74.     else                                                                                               #Si le chemin n'existe pas
  75.     {
  76.         write-host "Le dossier spécifié n'existe pas ou est introuvable"  -foregroundcolor red         #Affiche un message si le chemin n'existe pas
  77.         decompilation                                                                                  #Retourne au début de la décompilation
  78.     }  
  79. }
  80. #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
  81. Function fermeture                                                                                     #Fonction pour fermer tout
  82. {
  83.     write-host "Fermeture du script"                                                                   #Affiche la fermeture
  84. }
  85. #---------------------------CODE DU SCRIPT-----------------------------------------------------------|
  86. Write-Host "Bonjour !"  -foregroundcolor blue                                                         #Accueil
  87. script                                                                                                #Exécute le scrip
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement