Outils divers

Bonjour,

J'aimerai poster un outil (non terminé) pour desobfusquer du code VBA (il recherche les mots de + de 30 caractère et il les raccourcis). Je ne sais plus à quelle erreur je m'en été arreté. Le but étant de voir si quelqu'un voudrait en discuter ou bien participer au truc. Comme vous voulez !

Sub RemplacementMotDansProcedure_essai()
    'Activer l'édition des macros = Fichier / Option /
        'Centre de gestion de la confidentialité /
        'Paramètre du centre de gestion de la confidentialité /
        'Paramètre des macros / Accès approuvé au modèle d'objet du projet VBA
    'Nécéssite d'activer la référence
    '"Visual basic For Application Extensibility 5.3"
    '
    Dim Ancien As String, Nouveau As String, Cible As String
    Dim VBComp As VBComponent
    Dim i As Integer
    Dim Wb As Workbook
    Dim tableau(100) As Variant, tabtemp(100) As Variant

 a = 0

    Set Wb = Workbooks("NomClasseur.xls")

'    Ancien = "Feuil1"
'    Nouveau = "Feuil3"
 For Each VBComp In Wb.VBProject.VBComponents
        For i = 1 To VBComp.CodeModule.CountOfLines
            Cible = VBComp.CodeModule.Lines(i, 1)

'<---- Ecrire la ligne de code dans tableau() et separez le code avec les " "
            x = InStr(1, Cible, " ")
            tableau(a) = Mid(Cible, 1, x - 1)

            For b = x To Len(Cible)

            x1 = InStr(x + 1, Cible, " ")
            If x1 <> 0 Then
            a = a + 1
            tableau(a) = Mid(Cible, x, x1 - x)
            x = x1
            End If

            Next b
            b = b - 1
            a = a + 1
            tableau(a) = Right(Cible, Len(Cible) - x)
'------>
'------>

'<---- Ecrire la ligne de code dans tableau() et separez le code avec les " "
            Cible = ""
            g = 0
            For e = LBound(tableau) To a
            If Len(tableau(e)) > 30 Then
                For f = 1 To Len(tableau(e))
                '''''''''Caractère "."
                If Mid(tableau(e), f, 1) = "." Then
                tabtemp(g) = Mid(tableau(e), 1, f - 1)
                g = g + 1
                tabtemp(g) = "."
                g = g + 1
                tabtemp(g) = Mid(tableau(e), f + 1)
                g = g + 1
                End If
                '''''''''Caractère " "
                If Mid(tableau(e), f, 1) = " " Then
                tabtemp(g) = Mid(tableau(e), 1, f - 1)
                g = g + 1
                tabtemp(g) = " "
                g = g + 1
                tabtemp(g) = Mid(tableau(e), f + 1)
                g = g + 1
                End If
                '''''''''Caractère "("
                If Mid(tableau(e), f, 1) = "(" Then
                tabtemp(g) = Mid(tableau(e), 1, f - 1)
                g = g + 1
                tabtemp(g) = "("
                g = g + 1
                tabtemp(g) = Mid(tableau(e), f + 1)
                g = g + 1
                End If
                '''''''''Caractère ")"
                If Mid(tableau(e), f, 1) = ")" Then
                tabtemp(g) = Mid(tableau(e), 1, f - 1)
                g = g + 1
                tabtemp(g) = ")"
                g = g + 1
                tabtemp(g) = Mid(tableau(e), f + 1)
                g = g + 1
                End If
                Next f
            End If
            Cible = Cible + tableau(e) + " "
            Next e

'------>
'------>
            Cible = Replace(Cible, Ancien, Nouveau)
            VBComp.CodeModule.ReplaceLine i, Cible
        Next i
    Next VBComp

    For Each VBComp In Wb.VBProject.VBComponents
        For i = 1 To VBComp.CodeModule.CountOfLines
            Cible = VBComp.CodeModule.Lines(i, 1)
            Cible = Replace(Cible, Ancien, Nouveau)
            VBComp.CodeModule.ReplaceLine i, Cible
        Next i
    Next VBComp
End Sub
Rechercher des sujets similaires à "outils divers"