2013-07-15 4 views

Répondre

12

L'extension contient le code source - il vous suffit de le décompresser. Voir Giorgio's response here.

Le code source entier est publiquement disponible dans chaque chaque XPI.

Vous l'avez déjà sur votre disque dur, si vous êtes un utilisateur NoScript, vous pouvez également le télécharger ici.

Vous pouvez l'examiner et/ou le modifier en décompressant le XPI et le JAR à l'intérieur, et en le "reconstruisant" en le remettant à zéro.

C'est comme ça depuis toujours, depuis la toute première version.

+0

Je ne sais pas beaucoup sur .xpi. Merci) – Suhan

17

Le format Firefox XPI ne vous empêche pas d'extraire simplement le contenu du plugin pour examiner le code source.

Bien que je ne trouve pas de référentiel public canonique, il semble que quelqu'un ait systématiquement téléchargé et extrait tous les XPI disponibles et en ait créé un référentiel GitHub.

https://github.com/avian2/noscript

Si vous souhaitez le faire vous-même, les fichiers XPI sont juste standard Les fichiers ZIP, donc si vous voulez extraire un vous-même vous pouvez simplement pointer un programme d'extraction à elle.

Voici un exemple de le faire à partir de la ligne de commande:

mkdir noscript_source 
cd noscript_source 
curl -LO https://addons.mozilla.org/firefox/downloads/file/219550/noscript_security_suite-2.6.6.8-fx+fn+sm.xpi 
unzip noscript_security_suite-2.6.6.8-fx+fn+sm.xpi 

Cela donne une structure de répertoire qui ressemble à ceci:

. 
├── GPL.txt 
├── META-INF 
│ ├── manifest.mf 
│ ├── zigbert.rsa 
│ └── zigbert.sf 
├── NoScript_License.txt 
├── chrome 
│ └── noscript.jar 
├── chrome.manifest 
├── components 
│ └── noscriptService.js 
├── defaults 
│ └── preferences 
│  └── noscript.js 
├── install.rdf 
├── mozilla.cfg 
└── noscript_security_suite-2.6.6.8-fx+fn+sm.xpi 

Ensuite, le code principal est situé à l'intérieur chrome/noscript.jar. Vous pouvez extraire que pour obtenir le JavaScript qui fait l'essentiel du plugin:

cd chrome/ 
unzip noscript.jar 

Ce qui donnera le principal arbre source:

. 
├── content 
│ └── noscript 
│  ├── ABE.g 
│  ├── ABE.js 
│  ├── ABELexer.js 
│  ├── ABEParser.js 
│  ├── ASPIdiocy.js 
│  ├── ChannelReplacement.js 
│  ├── ClearClickHandler.js 
│  ├── ClearClickHandlerLegacy.js 
│  ├── Cookie.js 
│  ├── DNS.js 
│  ├── DOM.js 
│  ├── ExternalFilters.js 
│  ├── FlashIdiocy.js 
│  ├── HTTPS.js 
│  ├── Lang.js 
│  ├── NoScript_License.txt 
│  ├── PlacesPrefs.js 
│  ├── Plugins.js 
│  ├── Policy.js 
│  ├── Profiler.js 
│  ├── Removal.js 
│  ├── RequestWatchdog.js 
│  ├── STS.js 
│  ├── ScriptSurrogate.js 
│  ├── Strings.js 
│  ├── URIValidator.js 
│  ├── about.xul 
│  ├── antlr.js 
│  ├── clearClick.js 
│  ├── clearClick.xul 
│  ├── frameOptErr.xhtml 
│  ├── iaUI.js 
│  ├── noscript.js 
│  ├── noscript.xbl 
│  ├── noscriptBM.js 
│  ├── noscriptBMOverlay.xul 
│  ├── noscriptOptions.js 
│  ├── noscriptOptions.xul 
│  ├── noscriptOverlay.js 
│  ├── noscriptOverlay.xul 
│  ├── options-mobile.xul 
│  └── overlay-mobile.xul 
├── locale 
└── skin 
Questions connexes