Anglais | 中文
Le plugin IDA basé sur le même modèle que ChatGPT, en utilisant le modèle GPT-3.5-Turbo publié par OpenAI, peut aider les analystes à analyser rapidement les fichiers binaires.
Les fonctionnalités actuellement prises en charge par WPECHATGPT incluent:
Le plugin WPECHATGPT utilise le modèle Text-DavinciCI-003 d'Openai formé sur GPT. Après la v2.0, utilisez le dernier modèle GPT-3.5-turbo d'OpenAI (comme le chatppt ).
Les résultats de l'analyse de Chatgpt pour référence uniquement , sinon nous, les analystes, seraient sans travail sur place. XD
| Version | Date | Commentaire |
|---|---|---|
| 1.0 | 2023-02-28 | Basé sur Gepetto. |
| 1.1 | 2023-03-02 | 1. Supprimer la fonction d'analyse du chiffrement et du décryptage. 2. Augmentez la fonction de la fonction de restauration Python. 3. Modifié quelques détails. |
| 1.2 | 2023-03-03 | 1. Ajout de la fonction de trouver des vulnérabilités binaires dans les fonctions. 2. Augmentez la fonction d'essayer de générer automatiquement l'EXP correspondant. 3. Modifié quelques détails. (Le téléchargement n'a pas été testé en raison du décalage du serveur OpenAI) |
| 2.0 | 2023-03-06 | 1. Complétez les tests des fonctions liées à la vulnérabilité de la version V1.2 . 2. Passez au dernier modèle GPT-3.5-Turbo publié par OpenAI. |
| 2.1 | 2023-03-07 | Corrigez le problème synchronisé d'Openai-API. (Voir la section sur les rapports d'erreur Openai-API ) |
| 2.3 | 2023-04-23 | Ajoutez le Auto-WPEGPT V0.1 pour prendre en charge l'analyse automatique des fichiers binaires. (Package AnyTree doit être ajouté à partir de cette version, utilisez les exigences.txt ou pip installer anyTree ) |
| 2.4 | 2023-11-10 | 1. Changé certains détails d'affichage. 2. Mettre à jour Auto-WPEGPT V0.2 . |
| 2.5 | 2024-08-07 | 1. Ajouter la prise en charge d'autres modèles, vous pouvez le définir en utilisant la variable du modèle . @tpsnt 2. Prise en charge de la nouvelle version du package Python OpenAI. (Besoin de mettre à jour votre package OpenAI) |
pip install -r ./requirements.txt
WPeChatGPT.py , ajoutez votre touche API à la variable openai.api_key , modifiez la variable zh_cn en false. (Chinois par défaut)WPeChatGPT.py et le dossier Auto-WPeGPT_WPeace dans le dossier des plugins d'IDA, et enfin redémarrez IDA pour l'utiliser. ! NOTE : vous devez définir l' environnement IDA sur Python3 , et vous devez utiliser le dernier package OpenAI Python après la version WPECHATGPT 2.0 .
Prend en charge l'utilisation de l'une des touches de clic droit, de barre de menu ou de raccourci dans IDA.
clé à chaud:
Function analysis = "Ctrl-Alt-G"
Rename function variables = "Ctrl-Alt-R"
Vulnerability finding = "Ctrl-Alt-E"
Faites un clic droit sur la fenêtre Pseudocode:


Comment utiliser:

Affichage de l'effet d'analyse des fonctions:

Affichage de l'effet de recherche de vulnérabilité:

Mettre à jour l'historique:
| Version | Date | Commentaire |
|---|---|---|
| 0.1 | 2023-04-23 | Libération initiale. |
| 0,2 | 2023-11-10 | 1. Améliorer la reconnaissance des chaînes valides. 2. Améliorer l'analyse des arbres d'appel de fonction. 3. Ajouter une reconnaissance pour les fonctions d'importation. |
Comment utiliser: Trouvez Auto-WPEGPT dans la barre de menu et cliquez dessus. Une fois la sortie terminée, vous pouvez trouver les résultats de l'analyse dans le dossier correspondant ( "Nom IDB WPE_ +" ).

La signification de chaque fichier dans le dossier de sortie:
GPT-Result.txt -> Auto-WPeGPT analysis results
funcTree.txt -> function call tree structure
mainFuncTree.txt -> main function tree structure
effectiveStrings.txt -> Suspicious strings in the binary
Afficher les résultats:

Après les tests, la version V0.1 a un meilleur effet d'analyse sur les fichiers avec moins de fonctions. En cas de fichiers binaires avec un grand nombre de fonctions, les jetons dépasseront la plage. Nous essaierons de l'améliorer dans la prochaine version.
À partir du 2 mars 2023, je rencontre souvent des erreurs d'API, et je pensais que c'était un problème d'instabilité du serveur (parce que j'ai des hauts et des bas ici), mais parce qu'il y a trop de commentaires que j'ai rencontrés des erreurs connexes, donc je suis d'abord allé à Openai pour vérifier le statut API et j'ai constaté que cela fonctionnait bien, alors j'ai trouvé que je pouvais d'abord être le problème du serveur, je pensais, alors j'ai cherché et que cela a exécuté des problèmes liés à Debug. Ce qui suit est la façon dont j'ai traité le problème de connexion API OpenAI:
Tout d'abord, le plugin s'est déroulé dans les conditions de scientifique en ligne .
pip uninstall urllib3
pip install urllib3==1.25.11
# Set your forward-proxy if necessary. (e.g. Clash = http://127.0.0.1:7890)
proxy = ""
# Set reverse-proxy URL if you need. (e.g. Azure OpenAI)
proxy_address = ""
Si vous rencontrez des problèmes ou si vous avez des questions lorsque vous utilisez le plugin, veuillez laisser un message ou m'envoyer un e-mail.
Le projet est basé sur GEPETTO et inspiré par celui-ci, vous pouvez visiter https://github.com/justicerage/gepetto pour en savoir plus sur la méthode originale.