Zipforge - ukrywanie zawartości archiwum

problemy z funkcjonowaniem bibliotek, komponentów itp.

Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Corvis » poniedziałek, 9 sierpnia 2010, 13:18

Witam,

Mam problem, bo chcę stworzyć zaszyfrowane archiwum, ale niewiem jak ukryć jego zawartość. Jak pakuje pliki Zipforgem, to mogę sobie w windowsie otworzyć te archwium i zobaczeć co jest w środku, o hasło prosi dopiero podczas próby odczytu lub rozpakowania. Wie ktoś jak ukryć zawartość archiwum ??

Pozdrawiam
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaSafari

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Cyfrowy Baron » poniedziałek, 9 sierpnia 2010, 15:14

Zawartości archiwum ZIP nie można ukryć. Ten format archiwum jest mniej funkcjonalny niż np. RAR. Taka ciekawostka: nawet jeżeli utworzysz archiwum ZIP zabezpieczone hasłem to można usunąć pliki z tego archiwum nie znając hasła, czyli nie można podejrzeć zawartości archiwum bez hasła, ale można usunąć pliki z archiwum bez podawania hasła.

Możesz zapisywać pliki w archiwum z atrybutem ukryty, wtedy w systemie w, w którym wyłączone jest pokazywanie ukrytych plików nic nie będzie widać.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4730
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Corvis » poniedziałek, 9 sierpnia 2010, 15:39

No tak też myślałem :(

A wiesz może jak odczytać plik z archiwum, przy użyciu ZIPFORGE bez rozpakowywania go na dysk ?
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaSafari

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Cyfrowy Baron » poniedziałek, 9 sierpnia 2010, 16:11

Wiem. Tylko co chcesz z tego odczytać: Poniższy przykład odczytuje zawartość pliku tekstowego z archiwum bez wypakowywania go i przepisuje jego zawartość do obiektu typu TStringList.

KOD cpp:     UKRYJ  
void __fastcall TForm1::LoadText(TStringList *Lista, String fileArchive, String password, String fileTxt)
{
 if(!FileExists(fileArchive)) return; // sprawdza czy plik archiwum istnieje, jeżeli nie przerywa

 TMemoryStream *mStream = new TMemoryStream();

 Archiver->FileName  = fileArchive; // nazwa pliku archiwum
 Archiver->OpenArchive(fmOpenRead); // otwieram archiwum w trybie tylko do odczytu
 Archiver->Password = password; // podaję hasło do archiwum

 TZFArchiveItem ArchiveItem;
 std::auto_ptr<TStrings> findList(new TStringList());
 /* tutaj sprawdzam czy w archiwum są jakieś pliki tekstowe *.txt, wszystkie znalezione umieszczam na liście findList */
 if(Archiver->FindFirst("*.txt", ArchiveItem, faAnyFile - faDirectory))
  do
  {
    findList->Add(ArchiveItem.FileName);
  }
  while (Archiver->FindNext(ArchiveItem));

 /* sprawdzam czy na liście findList a co za tym idzie w archiwum znajduje się plik do wczytania fileTxt */
 if(findList->IndexOf(fileTxt) < 0)
 {
  Archiver->CloseArchive();
  delete mStream;
  return; // jeżeli nie ma pliku przerywam
 }

 Archiver->ExtractToStream(fileTxt, mStream); // przepisuję zawartość pliku do obiektu typu TMemoryStream
 mStream->Position = 0;
 Lista->LoadFromStream(mStream); // przepisuję zawartość obiektu typu TMemoryStream do TStringList
 Archiver->CloseArchive(); // zamykam archiwum - koniecznie

 delete mStream;
}


Można to oczywiście zrobić na wiele sposobów, ale ten pokazuje to bardzo obrazowo, pokazuje również jak wyliczyć pliki w archiwum z wykorzystaniem klasy TZFArchiveItem.

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Corvis
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4730
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Corvis » wtorek, 10 sierpnia 2010, 08:22

Jedna rzecz to pliki txt, a druga to Bitmapa. Bitmapę chyba podobnie się robi ? Z tego co kojarze ma metodę LoadFromStream.


Wielkie dzięki za pomoc.


Edit:

No niby się nie da ukryć tych plików w archiwum, ale jak by jeszcze raz zipa zapakować wtedy będą ukryte hehee ;)
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaSafari

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Cyfrowy Baron » wtorek, 10 sierpnia 2010, 08:53

No niby się nie da ukryć tych plików w archiwum, ale jak by jeszcze raz zipa zapakować wtedy będą ukryte hehee ;)


Czy jednak zdołasz wypakować pliki z drugiego archiwum (ponownie spakowanego) do pamięci, bez wypakowywania na dysk?! :)
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4730
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Corvis » wtorek, 10 sierpnia 2010, 09:05

Właśnie spradzam ...


Edit: Da się tak zrobić :)

1. Kod szyfrujący:

Kod: Zaznacz cały
  // 1 pakowanie danych
    ZipForge1->FileName = "paczka_wew.zip";
    ZipForge1->BaseDir = ExtractFilePath(Application->ExeName)+"katalog";

    ZipForge1->EncryptionMethod = caAES_256;
    ZipForge1->Password = "ppp";
   
    ZipForge1->OpenArchive(fmCreate);
    ZipForge1->AddFiles("*.*");
    ZipForge1->CloseArchive();

    // 2 pakowanie danych

    ZipForge1->FileName = "ostateczny.zip";
    ZipForge1->BaseDir = ExtractFilePath(Application->ExeName);

    ZipForge1->EncryptionMethod = caAES_256;
    ZipForge1->Password = "ppp";

    ZipForge1->OpenArchive(fmCreate);
    ZipForge1->AddFiles("*.zip");
    ZipForge1->CloseArchive();

    DeleteFileA("paczka_wew.zip");


2. Kod roszyfrowujący

Kod: Zaznacz cały
    ZipForge1->FileName = "ostateczny.zip";  // głowny zip
    ZipForge1->OpenArchive(fmOpenRead);  // otwarcie

    TMemoryStream *str = new TMemoryStream();   
    ZipForge1->EncryptionMethod = caAES_256;
    ZipForge1->Password = "ppp";
    ZipForge1->ExtractToStream("paczka_wew.zip",str); // Odpakowanie wewnętrznego zipa do streama
    ZipForge1->CloseArchive();

    ZipForge1->OpenArchive(str,false); // Otwarcie archiwum ze strumienia
    TZFArchiveItem itm;
    Memo1->Lines->Clear();
    ZipForge1->FindFirst("*.*",itm,faAnyFile);
   
    do {
        Memo1->Lines->Add(itm.FileName);  // wypisanie zawartosci plików
    } while(ZipForge1->FindNext(itm));

    ZipForge1->CloseArchive();



Jeżeli udało mi się je wylistować to zapewne z wypakowaniem też, nie będzie problemu ;)


Pozdrawiam
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaSafari

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Cyfrowy Baron » wtorek, 10 sierpnia 2010, 09:40

Rzeczywiście! Procedura jest opisana w pliku pomocy. Można wczytywać i wypakowywać plik ze strumienia pamięci.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4730
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Corvis » wtorek, 10 sierpnia 2010, 09:50

Gdzie jest ten plik pomocy ???
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaSafari

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Cyfrowy Baron » wtorek, 10 sierpnia 2010, 09:59

W katalogu: [...]\ComponentAce\ZipForge\Help\
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4730
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Zipforge - ukrywanie zawartości archiwum

Nowy postprzez Corvis » wtorek, 10 sierpnia 2010, 10:10

dzięki
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaSafari


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Biblioteki i komponenty

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron