Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
zeroturnaround__zt-zip_CVE-2018-1002201_1-12 — ZIP अभिलेख हेरफेर के लिए सुविधाजनक विधियाँ प्रदान करने वाली जावा लाइब्रेरी, जिसमें पैकिंग, अनपैकिंग, प्रविष्टि पुनरावृत्ति, रूपांतरण और तुलना शामिल है। | Kitploit
उपकरण/GitHubGitHub/shoucheng3/zeroturnaround__zt-zip_cve-2018-1002201_1-12
सामान्य उपयोगिताएँउपयोगिताएँ और फ्रेमवर्क
GitHubshoucheng3/zeroturnaround__zt-zip_cve-2018-1002201_1-12

zeroturnaround__zt-zip_CVE-2018-1002201_1-12

ZIP अभिलेख हेरफेर के लिए सुविधाजनक विधियाँ प्रदान करने वाली जावा लाइब्रेरी, जिसमें पैकिंग, अनपैकिंग, प्रविष्टि पुनरावृत्ति, रूपांतरण और तुलना शामिल है।

रिपॉजिटरी देखें

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
1 साल पहलेअभी तक समीक्षित नहीं

ZIP - सुविधाजनक विधियाँ

सतत एकीकरण

Build Status

त्वरित अवलोकन

यह परियोजना Rein Raudjärv द्वारा शुरू और कोडित की गई थी जब उन्हें LiveRebel आंतरिक प्रक्रियाओं के लिए बड़ी संख्या में बड़े ZIP संग्रहों को संसाधित करने की आवश्यकता थी। इसके तुरंत बाद हमने इस उपयोगिता का उपयोग अन्य परियोजनाओं में करना शुरू कर दिया क्योंकि यह उपयोग में आसान थी और यह बस काम करती थी।

यह परियोजना स्ट्रीम-आधारित एक्सेस के लिए java.util.zip.* पैकेज का उपयोग करके बनाई गई है। फ़ाइल सिस्टम उपयोग के लिए अधिकांश सुविधाजनक विधियाँ भी समर्थित हैं।

स्थापना

Maven Central

परियोजना के आर्टिफैक्ट Maven Central Repository में उपलब्ध हैं। इसे अपने maven प्रोजेक्ट में शामिल करने के लिए आपको डिपेंडेंसी निर्दिष्ट करनी होगी।

root@kitploit:~
...
<dependency>
    <groupId>org.zeroturnaround</groupId>
    <artifactId>zt-zip</artifactId>
    <version>1.11</version>
    <type>jar</type>
</dependency>
...

ध्यान दें कि 1.8 अंतिम Java 1.4 संगत रिलीज़ है। तब से Java 1.5 आवश्यक है।

पृष्ठभूमि

निम्नलिखित कार्यात्मक आवश्यकताएँ थीं:

  1. निर्देशिकाओं को पुनरावर्ती रूप से पैक और अनपैक करना
  2. प्रविष्टियों को शामिल/बाहर करना
  3. प्रविष्टियों का नाम बदलना
  4. स्थान पर पैकिंग/अनपैकिंग - ZIP निर्देशिका बन जाता है और इसके विपरीत
  5. ZIP प्रविष्टियों के माध्यम से पुनरावृत्ति करना
  6. फ़ाइलों या बाइट ऐरे से प्रविष्टियाँ जोड़ना या बदलना
  7. ZIP प्रविष्टियों को रूपांतरित करना
  8. दो संग्रहों की तुलना करना - समय टिकटों को अनदेखा करते हुए सभी प्रविष्टियों की तुलना करना

और ये गैर-कार्यात्मक आवश्यकताएँ:

  1. जितना संभव हो मौजूदा API का उपयोग करना
  2. उपयोग में सरल होना
  3. उपयोग में प्रभावी होना - यदि केवल एक प्रविष्टि की आवश्यकता है तो पूरी ZIP फ़ाइल को न खंगालें
  4. उपयोग में सुरक्षित होना - उपयोगकर्ता को स्ट्रीम खुली छोड़ने और फ़ाइलों को लॉक रखने में सक्षम न बनाना
  5. अपवाद घोषित न करना
  6. Java 1.5 के साथ संगत होना

उदाहरण

अनपैकिंग

जाँच करें कि क्या ZIP संग्रह में कोई प्रविष्टि मौजूद है

root@kitploit:~
boolean exists = ZipUtil.containsEntry(new File("/tmp/demo.zip"), "foo.txt");

ZIP संग्रह से किसी प्रविष्टि को बाइट ऐरे में निकालें

root@kitploit:~
byte[] bytes = ZipUtil.unpackEntry(new File("/tmp/demo.zip"), "foo.txt");

ZIP संग्रह से किसी प्रविष्टि को विशिष्ट Charset के साथ बाइट ऐरे में निकालें

root@kitploit:~
byte[] bytes = ZipUtil.unpackEntry(new File("/tmp/demo.zip"), "foo.txt", Charset.forName("IBM437"));

ZIP संग्रह से किसी प्रविष्टि को फ़ाइल सिस्टम में निकालें

root@kitploit:~
ZipUtil.unpackEntry(new File("/tmp/demo.zip"), "foo.txt", new File("/tmp/bar.txt"));

एक ZIP संग्रह निकालें

root@kitploit:~
ZipUtil.unpack(new File("/tmp/demo.zip"), new File("/tmp/demo"));

एक ZIP संग्रह निकालें जो एक निर्देशिका बन जाता है

root@kitploit:~
ZipUtil.explode(new File("/tmp/demo.zip"));

ZIP संग्रह से निर्देशिका का नाम शामिल करते हुए एक निर्देशिका निकालें

root@kitploit:~
ZipUtil.unpack(new File("/tmp/demo.zip"), new File("/tmp/demo"), new NameMapper() {
  public String map(String name) {
    return name.startsWith("doc/") ? name : null;
  }
});

ZIP संग्रह से निर्देशिका का नाम छोड़कर एक निर्देशिका निकालें

root@kitploit:~
final String prefix = "doc/"; 
ZipUtil.unpack(new File("/tmp/demo.zip"), new File("/tmp/demo"), new NameMapper() {
  public String map(String name) {
    return name.startsWith(prefix) ? name.substring(prefix.length()) : name;
  }
});

ZIP संग्रह से उन फ़ाइलों को निकालें जो नाम पैटर्न से मेल खाती हैं

root@kitploit:~
ZipUtil.unpack(new File("/tmp/demo.zip"), new File("/tmp/demo"), new NameMapper() {
  public String map(String name) {
    if (name.contains("/doc")) {
      return name;
    }
    else {
      // returning null from the map method will disregard the entry
      return null;
    }
  }
});

ZIP संग्रह में .class प्रविष्टियों के नाम प्रिंट करें

root@kitploit:~
ZipUtil.iterate(new File("/tmp/demo.zip"), new ZipInfoCallback() {
  public void process(ZipEntry zipEntry) throws IOException {
    if (zipEntry.getName().endsWith(".class"))
      System.out.println("Found " + zipEntry.getName());
  }
});

ZIP संग्रह में .txt प्रविष्टियों को प्रिंट करें (Commons IO से IoUtils का उपयोग करता है)

root@kitploit:~
ZipUtil.iterate(new File("/tmp/demo.zip"), new ZipEntryCallback() {
  public void process(InputStream in, ZipEntry zipEntry) throws IOException {
    if (zipEntry.getName().endsWith(".txt")) {
      System.out.println("Found " + zipEntry.getName());
      IOUtils.copy(in, System.out);
    }
  }
});

पैकिंग

एक निर्देशिका को ZIP संग्रह में संपीड़ित करें

root@kitploit:~
ZipUtil.pack(new File("/tmp/demo"), new File("/tmp/demo.zip"));

एक निर्देशिका को संपीड़ित करें जो ZIP संग्रह बन जाती है

root@kitploit:~
ZipUtil.unexplode(new File("/tmp/demo.zip"));

एक निर्देशिका को मूल निर्देशिका के साथ ZIP संग्रह में संपीड़ित करें

root@kitploit:~
ZipUtil.pack(new File("/tmp/demo"), new File("/tmp/demo.zip"), new NameMapper() {
  public String map(String name) {
    return "foo/" + name;
  }
});

फ़ाइल से ZIP संग्रह में एक प्रविष्टि जोड़ें

root@kitploit:~
ZipUtil.addEntry(new File("/tmp/demo.zip"), "doc/readme.txt", new File("f/tmp/oo.txt"), new File("/tmp/new.zip"));

बाइट ऐरे से ZIP संग्रह में एक प्रविष्टि जोड़ें

root@kitploit:~
ZipUtil.addEntry(new File("/tmp/demo.zip"), "doc/readme.txt", "bar".getBytes(), new File("/tmp/new.zip"));

फ़ाइल और बाइट ऐरे से ZIP संग्रह में एक प्रविष्टि जोड़ें

root@kitploit:~
ZipEntrySource[] entries = new ZipEntrySource[] {
    new FileSource("doc/readme.txt", new File("foo.txt")),
    new ByteSource("sample.txt", "bar".getBytes())
};
ZipUtil.addEntries(new File("/tmp/demo.zip"), entries, new File("/tmp/new.zip"));

फ़ाइल और बाइट ऐरे से एक आउटपुट स्ट्रीम में प्रविष्टि जोड़ें

root@kitploit:~
ZipEntrySource[] entries = new ZipEntrySource[] {
    new FileSource("doc/readme.txt", new File("foo.txt")),
    new ByteSource("sample.txt", "bar".getBytes())
};
OutputStream out = null;
try {
  out = new BufferedOutputStream(new FileOutputStream(new File("/tmp/new.zip")));
  ZipUtil.addEntries(new File("/tmp/demo.zip"), entries, out);
}
finally {
  IOUtils.closeQuietly(out);
}

फ़ाइल से ZIP संग्रह प्रविष्टि बदलें

root@kitploit:~
boolean replaced = ZipUtil.replaceEntry(new File("/tmp/demo.zip"), "doc/readme.txt", new File("/tmp/foo.txt"), new File("/tmp/new.zip"));

बाइट ऐरे से ZIP संग्रह प्रविष्टि बदलें

root@kitploit:~
boolean replaced = ZipUtil.replaceEntry(new File("/tmp/demo.zip"), "doc/readme.txt", "bar".getBytes(), new File("/tmp/new.zip"));

फ़ाइल और बाइट ऐरे से ZIP संग्रह प्रविष्टि बदलें

root@kitploit:~
ZipEntrySource[] entries = new ZipEntrySource[] {
    new FileSource("doc/readme.txt", new File("foo.txt")),
    new ByteSource("sample.txt", "bar".getBytes())
};
boolean replaced = ZipUtil.replaceEntries(new File("/tmp/demo.zip"), entries, new File("/tmp/new.zip"));

ZIP संग्रह में प्रविष्टियाँ जोड़ें या बदलें

root@kitploit:~
ZipEntrySource[] addedEntries = new ZipEntrySource[] {
        new FileSource("/path/in/zip/File1.txt", new File("/tmp/file1.txt")),
        new FileSource("/path/in/zip/File2.txt", new File("/tmp/file2.txt")),
        new FileSource("/path/in/zip/File3.txt", new File("/tmp/file2.txt")),
    };
ZipUtil.addOrReplaceEntries(new File("/tmp/demo.zip"), addedEntries);

रूपांतरण

ZIP संग्रह प्रविष्टि को अपरकेस में रूपांतरित करें

root@kitploit:~
boolean transformed = ZipUtil.transformEntry(new File("/tmp/demo"), "sample.txt", new StringZipEntryTransformer() {
    protected String transform(ZipEntry zipEntry, String input) throws IOException {
        return input.toUpperCase();
    }
}, new File("/tmp/demo.zip"));

तुलना

दो ZIP संग्रहों की तुलना करें (प्रविष्टियों के टाइमस्टैम्प को अनदेखा करते हुए)

root@kitploit:~
boolean equals = ZipUtil.archiveEquals(new File("/tmp/demo1.zip"), new File("/tmp/demo2.zip"));

समान नाम वाली दो ZIP संग्रह प्रविष्टियों की तुलना करें (प्रविष्टियों के टाइमस्टैम्प को अनदेखा करते हुए)

root@kitploit:~
boolean equals = ZipUtil.entryEquals(new File("/tmp/demo1.zip"), new File("/tmp/demo2.zip"), "foo.txt");

भिन्न नाम वाली दो ZIP संग्रह प्रविष्टियों की तुलना करें (प्रविष्टियों के टाइमस्टैम्प को अनदेखा करते हुए)

root@kitploit:~
boolean equals = ZipUtil.entryEquals(new File("/tmp/demo1.zip"), new File("/tmp/demo2.zip"), "foo1.txt", "foo2.txt");

डिबगिंग

यह लाइब्रेरी slf4j-api लॉगिंग फ्रेमवर्क का उपयोग कर रही है। सभी लॉग स्टेटमेंट या तो DEBUG या TRACE स्तर पर हैं। आप जिस लॉगिंग फ्रेमवर्क का उपयोग कर रहे हैं, उसके आधार पर एक सरल -Dorg.slf4j.simpleLogger.defaultLogLevel=debug या System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "debug"); zt-zip लाइब्रेरी से लॉग स्टेटमेंट दिखाने का काम करेगा। आप अपने लॉगिंग फ्रेमवर्क के साथ प्रति पैकेज स्तरों और लॉग संदेशों के शामिल करने को और अधिक ठीक कर सकते हैं।

टूल डाउनलोड करें