Jak wykorzystać skrypt PdfUnlock.java ?

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
idarek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 171
Rejestracja: 27 wrz 2007, 02:26
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: idarek »

Witam serdecznie, na forum zagranicznym ubuntu znalazłem sposób na zdejmowanie zabezpieczeń z plików PDF. Sprawidziłem na własnych PDF które zabezpieczam z poziomu OOo i działa.

Mam pytanie, gdyż jest tak odniesienie do strony, na której Uploadując plik można zdjąć ograniczenia.

Udostępniony jest też link do źródła (tak mi się wydaje), które wykorzystuje się do zejmowania ograniczeń.

Chciałbym wiedzieć, jak mogę ten plik JAVA wykorzystać lokalnie lub na własnej stronie. Jak stworzyć formularz uploadujący plik i wykonujący proces zdjęcia ograniczeń.

Dla jasności. Nie chodzi mi o masowe zdejmowanie, tylko czasem niektórym osobą przesyłam pliki PDF z ograniczeniami, i jak jestem u nich, chciałbym móc w prosty sposób, korzystając z własnej strony zdjąć z pliku który potrzebuje wydrukować ograniczenia (oczywiście, strona będzie restricted - na hasło itp.)

z poważaniem
Czytanie, klucz do zrozumienia.
Zrozumienie, klucz do wiedzy.
http://czytelnia.ubuntu.pl/index.php/20 ... mi-dzieje/
macer
Wytworny Kaczor
Wytworny Kaczor
Posty: 453
Rejestracja: 12 wrz 2009, 21:07
Wersja Ubuntu: inny OS

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: macer »

idarek pisze: Chciałbym wiedzieć, jak mogę ten plik JAVA wykorzystać lokalnie lub na własnej stronie. Jak stworzyć formularz uploadujący plik i wykonujący proces zdjęcia ograniczeń.
Ten program co podałeś jest oczywiście pisany w Javie, i ta strona do której podałeś linka też jest napisana w Javie, więc jeśli chcesz to użyć do swojej stronki, to całą stronę będziesz musiał napisać w javie(chyba że zrobisz to jako podstronę).
przemk
Przyjaciel
Przyjaciel
Posty: 332
Rejestracja: 13 paź 2005, 12:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: przemk »

idarek pisze:Chciałbym wiedzieć, jak mogę ten plik JAVA wykorzystać lokalnie lub na własnej stronie. Jak stworzyć formularz uploadujący plik i wykonujący proces zdjęcia ograniczeń.
Masz tam napisane, jak używa się sie tego programu:

Kod: Zaznacz cały

"usage: java net.ensode.pdfunlock.PdfUnlock inputfile.pdf outputfile.pdf"
Teoretycznie można by to skompilować Javą i odpalić z linii poleceń, ale do kompilacji potrzebne będą także klasy:

Kod: Zaznacz cały

import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.PdfEncryptor;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;
Niepotrzebne jest budowanie jakichkolwiek stron do uploadowania.
[url=http://kalicki.it]http://kalicki.it[/url]
Awatar użytkownika
idarek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 171
Rejestracja: 27 wrz 2007, 02:26
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: idarek »

Tylko że ja się na tym nie znam, dlatego proszę o pomoc.
Czytanie, klucz do zrozumienia.
Zrozumienie, klucz do wiedzy.
http://czytelnia.ubuntu.pl/index.php/20 ... mi-dzieje/
krzychusan
Piegowaty Guziec
Piegowaty Guziec
Posty: 17
Rejestracja: 11 wrz 2008, 22:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: krzychusan »

1) Tworzysz sobie jakiś folder, powiedzmy pdfdecoder i przenosisz tam ten plik PdfUnlock.java
2) Pobierasz i wrzucasz do folderu potrzebne biblioteki:
  1. http://prdownloads.sourceforge.net/itex ... -2.1.7.jar
  2. http://bouncycastle.org/download/bcprov-jdk16-144.jar
3) odpalasz konsolę i przechodzisz do danego folderu pdfdecoder
4) wypakowujesz oba ściągnięte biblioteki wpisując jar -xvf [nazwa pliku]
5) javac PdfUnlock.java
6) java PdfUnlock [pdf zakodowany] [nowy pdf odkodowany] <- rozkodowuje pdf

Teraz wrzucasz sobie na stronkę plik PdfUnlock.class i jak będziesz u kolegi to pobierasz ten program i traktujesz nim pdfa i po sprawie.
Awatar użytkownika
idarek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 171
Rejestracja: 27 wrz 2007, 02:26
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: idarek »

krzychusan pisze: 5) javac PdfUnlock.java
Wielkie dzięki, stanąłem na kroku 5. Który pakiet ma w sobie "javac" ?

pozdr.
Czytanie, klucz do zrozumienia.
Zrozumienie, klucz do wiedzy.
http://czytelnia.ubuntu.pl/index.php/20 ... mi-dzieje/
przemk
Przyjaciel
Przyjaciel
Posty: 332
Rejestracja: 13 paź 2005, 12:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: przemk »

idarek pisze:Wielkie dzięki, stanąłem na kroku 5. Który pakiet ma w sobie "javac" ?
Jeśli szukasz jakiegoś konkretnego programu to zawsze możesz spróbować odpytać apta:

Kod: Zaznacz cały

apt-cache search javac
Konkretnie kompilator javy możesz znaleźć w sun-java6-jdk
[url=http://kalicki.it]http://kalicki.it[/url]
Awatar użytkownika
idarek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 171
Rejestracja: 27 wrz 2007, 02:26
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: idarek »

przemk pisze:Jeśli szukasz jakiegoś konkretnego programu to zawsze możesz spróbować odpytać apta:

Kod: Zaznacz cały

apt-cache search javac
Konkretnie kompilator javy możesz znaleźć w sun-java6-jdk
Dzięki, ale jedyne co pasuje do tego to javacc - A parser generator for use with Java,

Domyślam się czytając (viewtopic.php?t=95794)
że muszę mieć w systemie sun-java6-jdk, a mam openjdk...

Powalczę z tym i się odezwę.

pozdr
Czytanie, klucz do zrozumienia.
Zrozumienie, klucz do wiedzy.
http://czytelnia.ubuntu.pl/index.php/20 ... mi-dzieje/
przemk
Przyjaciel
Przyjaciel
Posty: 332
Rejestracja: 13 paź 2005, 12:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: przemk »

idarek pisze:Niestety, ale to chyba nie ten...
Czytaj dokładnie
[url=http://kalicki.it]http://kalicki.it[/url]
Awatar użytkownika
pyx-84
Sędziwy Jeż
Sędziwy Jeż
Posty: 97
Rejestracja: 28 paź 2008, 21:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: pyx-84 »

Pobierz

Kod: Zaznacz cały

sudo apt-get install sun-java6-jdk
i po kłopocie. Do tego polecam NetBeans albo Eclipse.

Kompilacja:

Kod: Zaznacz cały

javac plik.java
Uruchomianie:

Kod: Zaznacz cały

java plik
EDITED:
Pobierasz NetBeans
Potem:

Kod: Zaznacz cały

chmod +x netbeans-6.8beta-ml-linux.sh
sh netbeans-6.8beta-ml-linux.sh
przy założeniu, że pobrałeś 6.8 ;) 6.7 wygląda u mnie koszmarnie jakieś duże menu buttony... pfe :P
Software Should Be Free As In Freedom !
Awatar użytkownika
idarek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 171
Rejestracja: 27 wrz 2007, 02:26
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: idarek »

EDIT:
krzychusan pisze: 6) java PdfUnlock [pdf zakodowany] [nowy pdf odkodowany] <- rozkodowuje pdf
Ok, stanąłem na pkt. 6

Kod: Zaznacz cały

darek@DAREK-LINUX:~/pdfdecoder$ javac PdfUnlock.java 
Note: PdfUnlock.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
dalej

Kod: Zaznacz cały

darek@DAREK-LINUX:~/pdfdecoder$ java PdfUnlock 001.pdf 002.pdf
Exception in thread "main" java.lang.NoClassDefFoundError: PdfUnlock (wrong name: net/ensode/pdfunlock/PdfUnlock)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:632)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
Could not find the main class: PdfUnlock. Program will exit.
A niby jest...

Kod: Zaznacz cały

darek@DAREK-LINUX:~/pdfdecoder$ ls -l
razem 2804
-rw-r--r-- 1 darek darek   12416 2009-11-24 14:43 001.pdf
-rw-r--r-- 1 darek darek 1699426 2009-11-24 08:06 bcprov-jdk16-144.jar
drwxr-xr-x 3 darek darek    4096 2009-11-24 08:09 com/
-rw-r--r-- 1 darek darek 1130070 2009-11-24 08:05 iText-2.1.7.jar
drwxr-xr-x 2 darek darek    4096 2009-11-24 08:09 META-INF/
drwxr-xr-x 3 darek darek    4096 2009-11-24 08:09 org/
-rw-r--r-- 1 darek darek    1164 2009-11-24 14:43 PdfUnlock.class
-rw-r--r-- 1 darek darek    1316 2009-11-20 12:36 PdfUnlock.java
Czytanie, klucz do zrozumienia.
Zrozumienie, klucz do wiedzy.
http://czytelnia.ubuntu.pl/index.php/20 ... mi-dzieje/
macer
Wytworny Kaczor
Wytworny Kaczor
Posty: 453
Rejestracja: 12 wrz 2009, 21:07
Wersja Ubuntu: inny OS

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: macer »

Chyba nie dałeś bibliotek.
Jeśli biblioteki masz w folderze "bibl", to dodajesz do javac argument "-cp bibl"

EDIT:
albo może javac *.java ...
krzychusan
Piegowaty Guziec
Piegowaty Guziec
Posty: 17
Rejestracja: 11 wrz 2008, 22:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: krzychusan »

macer pisze: EDIT:
albo może javac *.java ...
Java automatycznie kompiluje potrzebne zależności, więc wystarczy zawsze wywołać kompilację tylko na pliku będącym klasą uruchomieniową programu.


Wystarczy zakomentować pierwszą linijkę(package ...), przekompilować i się już bez problemów uruchomii. Nie wiem jak z rozkodowaniem pdfa, bo żadnego zakodowanego nie mam, ale powinno działać ;p
Napisz czy się udało.
Awatar użytkownika
idarek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 171
Rejestracja: 27 wrz 2007, 02:26
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: idarek »

krzychusan pisze:Wystarczy zakomentować pierwszą linijkę(package ...), przekompilować i się już bez problemów uruchomii. Nie wiem jak z rozkodowaniem pdfa, bo żadnego zakodowanego nie mam, ale powinno działać ;p
Napisz czy się udało.
Ok, zrobiłem tak.. ale teraz jest inny problem.

Kod: Zaznacz cały

darek@DAREK-LINUX:~/pdfdecoder$ java PdfUnlock 001.pdf 002.pdf
com.lowagie.text.exceptions.BadPasswordException: PdfReader not opened with owner password
	at com.lowagie.text.pdf.PdfStamperImp.<init>(Unknown Source)
	at com.lowagie.text.pdf.PdfStamper.<init>(Unknown Source)
	at com.lowagie.text.pdf.PdfEncryptor.encrypt(Unknown Source)
	at PdfUnlock.unlockPdf(PdfUnlock.java:33)
	at PdfUnlock.main(PdfUnlock.java:23)
Plik 002.pdf generowany jest nieprawidłowym plikiem PDF - nie otwiera się

Dodaj jeszcze nieco szczegółów z kompilacji

Kod: Zaznacz cały

darek@DAREK-LINUX:~/pdfdecoder$ javac PdfUnlock.java -Xlint:deprecation
PdfUnlock.java:34: warning: [deprecation] AllowAssembly in com.lowagie.text.pdf.PdfWriter has been deprecated
          null, PdfWriter.AllowAssembly | PdfWriter.AllowCopy
                         ^
PdfUnlock.java:34: warning: [deprecation] AllowCopy in com.lowagie.text.pdf.PdfWriter has been deprecated
          null, PdfWriter.AllowAssembly | PdfWriter.AllowCopy
                                                   ^
PdfUnlock.java:35: warning: [deprecation] AllowDegradedPrinting in com.lowagie.text.pdf.PdfWriter has been deprecated
              | PdfWriter.AllowDegradedPrinting | PdfWriter.AllowFillIn
                         ^
PdfUnlock.java:35: warning: [deprecation] AllowFillIn in com.lowagie.text.pdf.PdfWriter has been deprecated
              | PdfWriter.AllowDegradedPrinting | PdfWriter.AllowFillIn
                                                           ^
PdfUnlock.java:36: warning: [deprecation] AllowModifyAnnotations in com.lowagie.text.pdf.PdfWriter has been deprecated
              | PdfWriter.AllowModifyAnnotations | PdfWriter.AllowModifyContents
                         ^
PdfUnlock.java:36: warning: [deprecation] AllowModifyContents in com.lowagie.text.pdf.PdfWriter has been deprecated
              | PdfWriter.AllowModifyAnnotations | PdfWriter.AllowModifyContents
                                                            ^
PdfUnlock.java:37: warning: [deprecation] AllowPrinting in com.lowagie.text.pdf.PdfWriter has been deprecated
              | PdfWriter.AllowPrinting | PdfWriter.AllowScreenReaders, false);
                         ^
PdfUnlock.java:37: warning: [deprecation] AllowScreenReaders in com.lowagie.text.pdf.PdfWriter has been deprecated
              | PdfWriter.AllowPrinting | PdfWriter.AllowScreenReaders, false);
                                                   ^
8 warnings
Czytanie, klucz do zrozumienia.
Zrozumienie, klucz do wiedzy.
http://czytelnia.ubuntu.pl/index.php/20 ... mi-dzieje/
macer
Wytworny Kaczor
Wytworny Kaczor
Posty: 453
Rejestracja: 12 wrz 2009, 21:07
Wersja Ubuntu: inny OS

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: macer »

idarek pisze:Ok, zrobiłem tak.. ale teraz jest inny problem.

Kod: Zaznacz cały

darek@DAREK-LINUX:~/pdfdecoder$ java PdfUnlock 001.pdf 002.pdf
com.lowagie.text.exceptions.BadPasswordException: PdfReader not opened with owner password
	at com.lowagie.text.pdf.PdfStamperImp.<init>(Unknown Source)
	at com.lowagie.text.pdf.PdfStamper.<init>(Unknown Source)
	at com.lowagie.text.pdf.PdfEncryptor.encrypt(Unknown Source)
	at PdfUnlock.unlockPdf(PdfUnlock.java:33)
	at PdfUnlock.main(PdfUnlock.java:23)
A myślisz że to ci się bez hasła samo roszyfruje :razz:
Spróbuj:

Kod: Zaznacz cały

java PdfUnlock 001.pdf 002.pdf hasełko
A ostrzeżeniami się*nie przejmuj, przecież nie ty pisałeś ten program ;-)
Awatar użytkownika
idarek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 171
Rejestracja: 27 wrz 2007, 02:26
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: idarek »

Tak, ten skrypt (odpalony se strony twórcy) odszyfrowuje bez hasła.
Czytanie, klucz do zrozumienia.
Zrozumienie, klucz do wiedzy.
http://czytelnia.ubuntu.pl/index.php/20 ... mi-dzieje/
macer
Wytworny Kaczor
Wytworny Kaczor
Posty: 453
Rejestracja: 12 wrz 2009, 21:07
Wersja Ubuntu: inny OS

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: macer »

idarek pisze:Tak, ten skrypt (odpalony se strony twórcy) odszyfrowuje bez hasła.
LOL :lol:

EDIT:

Kod: Zaznacz cały

com.lowagie.text.exceptions.BadPasswordException: PdfReader not opened with owner password
Hmmm...nie jestem pewien ale chyba to błąd że nie podano hasła właściciela?
Awatar użytkownika
idarek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 171
Rejestracja: 27 wrz 2007, 02:26
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86
Kontakt:

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: idarek »

macer pisze:LOL :lol:

EDIT:

Kod: Zaznacz cały

com.lowagie.text.exceptions.BadPasswordException: PdfReader not opened with owner password
Hmmm...nie jestem pewien ale chyba to błąd że nie podano hasła właściciela?
To w takim razie jak działa skrypt na tej stronie? Nie podaje żadnego hasła a zdejmuje ograniczenia.
Czytanie, klucz do zrozumienia.
Zrozumienie, klucz do wiedzy.
http://czytelnia.ubuntu.pl/index.php/20 ... mi-dzieje/
macer
Wytworny Kaczor
Wytworny Kaczor
Posty: 453
Rejestracja: 12 wrz 2009, 21:07
Wersja Ubuntu: inny OS

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: macer »

Może żeby używać tego offline musisz kupić licencję do programu i dostaniesz do niego hasło?
Na jakiej to jest licencji?
krzychusan
Piegowaty Guziec
Piegowaty Guziec
Posty: 17
Rejestracja: 11 wrz 2008, 22:44
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: Jak wykorzystać skrypt PdfUnlock.java ?

Post autor: krzychusan »

Teraz czysto teoretycznie, bo nie mam żadnego pdfa zakodowanego to nie potestuję, ale przeglądnij to:
http://1t3xt.info/api//com/lowagie/text ... yptor.html
Masz tu dokumentację funkcji, którą wywołujesz, żeby odszyfrować pdfa.

Jak dla mnie to wywoływana jest ta funkcja:
static void encrypt(PdfReader reader, OutputStream os, byte[] userPassword, byte[] ownerPassword, int permissions, boolean strength128Bits)

Widać, że 3 i 4 parametr to są hasła do pdfa i tu powinieneś te hasła podawać.
Nie wiem jak dobrze znasz się na javie, ale wystarczy przekazać te parametry do lini komend programu i w programie wywołać tą funkcję z tymi parametrami.
Nie wiem jak bardzo się znasz na javie, jeżeli nie dasz sobie rady postaram Ci się to jutro jakoś zgrabnie przerobić jak siądę przy swoim kompie.

userPassword - the user password. Can be null or empty
ownerPassword - the owner password. Can be null or empty
Pewnie jedno z tych pól jest hasłem rozkodowującym pdfa, a drugie do zakodowania wynikowego, więc pewnie podanie "null" w polu hasła dla wynikowego pdfa po prostu go rozkodowuje :)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 20 gości