2013-07-15 7 views

Antwort

12

Die Erweiterung enthält den Quellcode - Sie müssen ihn nur entpacken. Siehe Giorgio's response here.

Der gesamte Quellcode ist in jedem XPI öffentlich verfügbar.

Sie haben es jetzt auf Ihrer Festplatte, wenn Sie ein NoScript-Benutzer sind, ansonsten können Sie es hier herunterladen.

Sie können es untersuchen und/oder modifizieren, indem Sie das XPI und das JAR im Inneren entpacken und durch erneutes Zippen beide "aufbauen".

Es ist seit der ersten Version für immer so.

+0

Sie wissen nicht viel über .xpi. Vielen Dank) – Suhan

17

Das Firefox XPI-Format verhindert nicht, dass Sie einfach den Inhalt des Plugins extrahieren, um den Quellcode zu untersuchen.

Während ich kein öffentliches kanonisches Repository finden kann, sieht es so aus, als ob jemand systematisch alle verfügbaren XPIs heruntergeladen und extrahiert und ein GitHub-Repository daraus erstellt hat.

https://github.com/avian2/noscript

Wenn Sie es tun möchten sich, XPI-Dateien sind nur Standard-ZIP-Dateien, wenn Sie also eine selbst extrahieren möchten, können Sie einfach auf sie ein Extraktionsprogramm zeigen.

Hier ist ein Beispiel dafür, dass von der Kommandozeile tun:

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 

, dass eine Verzeichnisstruktur ergibt, das wie folgt aussieht:

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

Dann wird der Haupt Code innerhalb chrome/noscript.jar befindet. Sie können, dass extrahieren im JavaScript zu erhalten, die den größten Teil des Plugin macht:

cd chrome/ 
unzip noscript.jar 

die die Hauptquelle Baum ergeben wird:

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