2013-07-15 19 views

risposta

12

L'estensione contiene il codice sorgente - è sufficiente decomprimerlo. Vedi Giorgio's response here.

L'intero codice sorgente è disponibile pubblicamente in ogni XPI.

Al momento, sul tuo disco rigido, se sei un utente NoScript, in alternativa puoi scaricarlo qui.

È possibile esaminarlo e/o modificarlo decomprimendo l'XPI e il JAR all'interno e "costruendolo" indietro riutilizzando entrambi.

È sempre stato così, sin dalla prima versione.

+0

Non so molto di .xpi. Grazie) – Suhan

17

Il formato di Firefox XPI non impedisce di estrarre semplicemente il contenuto del plug-in per esaminare il codice sorgente.

Mentre non riesco a trovare un repository pubblico canonico, sembra che qualcuno abbia scaricato ed estratto sistematicamente tutti gli XPI disponibili e creato un repository GitHub al di fuori di essi.

https://github.com/avian2/noscript

Se vuoi farlo da soli, i file XPI sono file ZIP solo standard, quindi se si desidera estrarre uno voi stessi che si può semplicemente puntare un programma di estrazione a questo.

Ecco un esempio di fare quello dalla riga di comando:

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 

che produce una struttura di directory che assomiglia a questo:

. 
├── 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 

Quindi il codice principale si trova all'interno chrome/noscript.jar. È possibile estrarre che per arrivare al JavaScript che costituisce la maggior parte del plugin:

cd chrome/ 
unzip noscript.jar 

che produrrà l'albero principale fonte:

. 
├── 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 
Problemi correlati