Mode d'emploi de VBKiller
Killer est un outil d'analyse inverse assisté par VB. Tout d'abord, permettez-moi de préciser que cela ne peut pas vous aider à décompiler un programme VB en code source VB. Il ne peut que rendre le désassemblage d'un programme VB plus proche du code VB.
Utilisé avec IDA, vous pouvez créer presque toutes les structures de classes, tables de méthodes, corps de fonctions des programmes VB et créer des structures de tables de méthodes, vous pouvez identifier le CLSID du COM référencé dans le programme VB et utiliser ProgID pour le nommer ; tout programme COM (non VB peut également compiler des tables de méthodes et des corps de fonctions, et créer des structures de tables de méthodes. Ces structures peuvent être utilisées dans le programme VB à analyser. Après ces processus, le programme VB à analyser a formé un certain nombre de classes et de méthodes très standardisées dans IDA, et il n'est pas loin de l'ingénierie inverse du code source.
Comment l'utiliser :
Cliquez sur le bouton Parcourir pour sélectionner un programme COM, DLL ou Exe ou ocx. S'il ne s'agit pas d'un programme VB, cochez la case "Programme non VB" et cliquez pour afficher. La case de gauche répertorie toutes les interfaces COM du programme sélectionné. Si vous souhaitez également voir les classes et les énumérations, vous pouvez sélectionner "Afficher toutes les classes sauf les interfaces". Cliquez sur n'importe quelle interface, et toutes les méthodes de l'interface seront affichées à droite, y compris l'adresse dans la table des méthodes et l'adresse réelle du corps de la méthode. Si vous souhaitez afficher les sept premières méthodes de base, vous devez sélectionner « Afficher les méthodes des interfaces de base ». S'il s'agit d'un programme non VB, il y a l'adresse de base de l'image et l'adresse de base virtuelle à droite. L'adresse de base de l'image est l'ImageBase du programme et l'adresse de base virtuelle est l'adresse de départ allouée à l'espace mémoire du programme. calcule probablement cette adresse par défaut. Si elle est incorrecte, elle doit être modifiée manuellement, car l'adresse de la table de méthodes obtenue par le programme est dans l'espace d'exécution, et ces deux adresses de base doivent être connues pour être converties en adresse dans l'espace d'exécution. fichier statique, il est donc très important et ne peut pas être rempli, sinon une erreur sera reconnue. Cliquez sur Générer un IDC pour générer le fichier IDC correspondant à l'interface actuellement sélectionnée. Les classes et les énumérations ne peuvent pas générer cet IDC dans IDA et l'adresse de méthode correspondante peut être automatiquement identifiée et traitée. Cliquez sur Générer tout pour générer des fichiers IDC pour toutes les interfaces (placez-les dans le même fichier). Sélectionnez "Générer la structure" et utilisez deux boutons de génération pour générer le script de création de structure correspondant à ce COM. Chargez cette structure IDC dans IDA et un lot de structures correspondantes sera généré dans IDA, telles que : L'un des programmes analysés utilise des opérations de base de données. et les opérations de chiffrement et de déchiffrement. Généralement, les scripts de structure d'ADO et de CAPICOM doivent être chargés.
VBKiller a également une fonction d'analyse et d'identification des COM qui n'ont pas encore été terminés.
Dans le même répertoire, il existe plusieurs autres fichiers c.
Parmi eux, header.c est inclus dans le fichier IDC ci-dessus. Il s'agit d'un fichier de fonction publique ;
vb.c est une version modifiée de vb.idc qui circule sur Internet. Elle n'a pas beaucoup changé. On a l'impression que de nombreux endroits ne fonctionnent pas. Ce script peut être utilisé pour établir la structure de classe et la table d'événements du programme VB ;
vboop.c est un script spécialement conçu pour aider à analyser les fonctions orientées objet de VB.
La méthode Do_BasicOOP à l'intérieur est principalement basée sur la table d'événements établie dans vb.c, traitant le corps de fonction correspondant. Si la fonction n'est pas créée, créez la fonction, renommez la fonction pour qu'elle soit cohérente avec le nom de la table d'événements et créez. chaque classe en même temps. La structure de la table de méthodes sera analysée plus tard.
ParseAPI est utilisé pour traiter les fonctions internes de VB. Il analysera les références croisées de toutes les fonctions spécifiées, ajoutera des commentaires répétables à la fonction, tentera d'identifier les paramètres et ajoutera des commentaires à chaque paramètre. Si le paramètre est un registre, effectuez une recherche plus approfondie. La source des données du registre, avec commentaires. Les fonctions numérisées et les commentaires sont spécifiés dans le code. Actuellement, la plupart des fonctions sont spécifiées. Vous pouvez ajouter de nouvelles fonctions selon vos besoins.
La méthode ParseNew est utilisée pour analyser toutes les références croisées _vbaNew et _vbaNew2 et essayer d'identifier le CLSID correspondant. S'il peut être identifié, il sera modifié par le nom du programme correspondant pour une visualisation facile. La reconnaissance est implémentée de manière intégrée. Il n'y en a pas beaucoup à l'heure actuelle. Vous pouvez ajouter la vôtre si nécessaire. L'analyse consiste à ce que si un CLSID non reconnu est trouvé, le programme écrira le CLSID dans UnKnown.txt dans le même répertoire. Après l'avoir analysé, vous pouvez vérifier le fichier. Si un CLSID non reconnu est trouvé, accédez au registre. CLSID, et après avoir obtenu le nom du programme, ajoutez-le à l'endroit correspondant dans le programme.