opis pliku archives.dat, odzyskanie skasowanych msgow

Bodex

Użytkownik
Dołączył
Czerwiec 6, 2004
Posty
5
pojawia sie duzo pytan odnosnie tego czy mozna odzyskac usuniete wiadomosci z archiwum gg, ktore nie zostalo skompaktowane. oto sa nawet 2 sposoby na to. poniewaz nigdzie w sieci nie znalazlem dokladnego opisu tego zagadnienia, postanowilem wkleic opis z jednej stronki ktora znalazlem. opis autorstwa niejakiego Anszoma a strona to:

http://v-lo.krakow.pl/~anszom/ggarch/index.pl.shtml

Niestety nie ma mozliwosci sciagniecia pliku ze zrodlami, moze jednak te informacje posluza komus do napisania malego programiku. Pozdrawiam


Archiwum wiadomości gadu-gadu
Gadu-gadu 5 i starsze przechowywały archiwum w pliku "msgarch.dat". Opis jego struktury znalazłem kiedyś w sieci, a że nie mogę teraz znaleźć tamtej strony to wrzuciłem go tutaj.

Niestety nowsze wersje gg przechowują archiwum w pluku "archives.dat", w zupełnie innym formacie, który (o ile dobrze mi wiadomo) nie został jeszcze nigdzie opisany... Ostatnio chciałem takie archiwum odczytać (klient gg się upierał że nie zaimportuje bo to nie moje archiwum.. miał rację
smile.gif
więc am rozpracowałem format - oto co udało mi się z niego wyciągnąć (wiem, wiem, wystarczy podmienić archives.dat zamiast importować - wtedy gg się nie rzuca o zły uin - chyba...). Tu znajdziesz przykładowy program

Jeśli masz jakieś uwagi/pomysły/cokolwiek - napisz (adres w menu z lewej strony).

Struktura pliku

Plik archives.dat złożony jest z kilku podstawowych części: nagłówka, indeksu i "sekcji danych".
Samo archiwum pod względem "logicznym" jest podzielone na sekcje - nie korzystałem wiele z windowsowego GG więc nie wiem czemu służy ten podział..

Nagłówek jest umieszczony jak się łatwo domyślić na samym początku i zawiera to co zwykle zawierają nagłówki - sumę kontrolną, numer gg właściciela, offsety do pozostałych części pliku, itp..
W indeksie zapisane są nagłówki poszczególnych sekcji. Same sekcje zapisane są w postaci list bloków. W nagłówku sekcji zapisany jest offset do pierwszego bloku (oraz ilość bloków), a w każdym bloku zapisany jest offset do następnego bloku (o ile istnieje). Bloki z kolei zawierają nagłówki wiadomości, które z kolei zawierają wskaźniki do samych wiadomości (które też zawierają dodatkowe informacje) - nie ma to jak prosty format
smile.gif


Aha - wszystko co wymieniłem poza nagłówkami sekcji oraz nagłówkiem pliku siedzi w "sekcji danych" pliku


Nagłówek

Offset rozmiar opis
0x00 4 bajty string "RC03"
0x04 4 bajty ??? - u mnie wynosi 1
0x08 4 bajty offset "indeksu" w pliku
0x0C 4 bajty rozmiar "indeksu" (w bajtach)
0x10 4 bajty rozmiar całego pliku (po co?)
0x14 4 bajty offset "sekcji danych" w pliku
0x18 12 bajtów ??? - u mnie 00 10 00 00 00 10 00 00 00 00 00 00
0x24 4 bajty UIN właściciela XOR 0xFFFFFD66
0x28 4 bajty suma kontrolna
0x2C - koniec -

Na podstawie pola "uin" klient GG sprawdza czy importowane archiwum należy do ciebie.
Suma kontrolna liczona jest standardowym algorytmem CRC-32 z bajtów od początku pliku do początku "sekcji danych" (określony przez pole 0x14 w nagłówku). Przy liczeniu CRC za zawartość pola sumy kontrolnej (0x28) przyjmuje się 0.

Indeks
Indeks zawiera tablicę nagłówków sekcji (ich ilość można obliczyć na podstawie długości indeksu zapisanej w nagłówku pliku): Offset rozmiar opis

0x00 4 bajty numer sekcji
0x04 4 bajty ilość "bloków" tworzących sekcję
0x08 4 bajty offset do pierwszego bloku
0x0C 8 bajtów ??? prawdopodobnie informacje ilości zajętego miejsca
0x14 - koniec -

Numer sekcji powinien odpowiadać jej położeniu w indeksie - jeśli nie, skontaktuj się ze sprzedawcą
smile.gif
albo wymyśl czemu się nie zgadza...
Offset do pierwszego bloku (właściwie każdy offset o którym będę mówił od tego momentu) liczony jest od początku "sekcji danych".


Bloki
Blok składa się z nagłówka bloku oraz tablicy nagłówków wiadomości. Nagłówek bloku wygląda tak: Offset rozmiar opis

0x00 4 bajty suma kontrolna
0x04 4 bajty numer sekcji
0x08 4 bajty długość bloku (w bajtach)
0x0C 4 bajty offset do następnego bloku
0x10 4 bajty ilość "danych" w bloku (w bajtach)
0x14 - koniec -

Suma kontrolna to znów CRC-32 - tym razem wczytuje od 4tego bajtu bloku (czyli tuż za samą sumą) aż do końca bloku (jego długość zapisana jest w polu 0x08).

Numer sekcji powinien się zgadzać z numerem sekcji którą tworzy ten blok - jeśli nie to mamy problem...
Tuż za nagłówkiem zapisana jest tablica nagłówków wiadomości, jej rozmiar określa pole "ilość danych" (0x10) Offset rozmiar opis

0x00 4 bajty flagi?
0x04 4 bajty offset do samej wiadomości
0x08 4 bajty rozmiar wiadomości
0x0C 4 bajty offset do początku bloku
0x10 - koniec -

Pole "flagi" zawiera 1 jeśli wiadomość jest usunięta lub 0 jeśli nie. Niewykluczone że może zawierać też inne informacje... ale na razie nie trafiłem na takie archiwum.

Offset do początku bloku - nie mam pojęcia po co tak marnują miejsce - w każdym razie powinien się zgadzać z offsetem bloku do którego należy ten nagłówek..

Z jakiegoś powodu bloki sekcji nr. 0 nie zawierają prawidłowych nagłówków wiadomości. W archiwach które widziałem wszystkie wiadomości siedza w sekcji nr. 1.

Wiadomości
Sama wiadomość też ma swój nagłówek - inaczej byłoby zbyt łatwo
smile.gif

Wiadomość przychodząca: Offset rozmiar opis

0x00 4 bajty czas wysłania wiadomości
0x04 4 bajty numer nadawcy
0x08 4 bajty zero
0x10 4 bajty czas odebrania wiadomości
0x14 4 bajty długość wiadomości (len)
0x18 [len] bajtów wiadomość
0x18 + [len] - koniec -

Wiadomość wychodząca: Offset rozmiar opis

0x00 4 bajty czas wysłania wiadomości
0x04 4 bajty numer nadawcy
0x08 4 bajty ilość odbiorców (n)
0x10 [n] * 4 bajty numerki odbiorców
0x10 + [n] * 4 4 bajty ??? jakiś czas
0x14 + [n] * 4 4 bajty długość wiadomości (len)
0x18 + [n] * 4 [len] bajtów wiadomość
0x1C + [n] * 4 + [len] - koniec -

Treść wiadomości nie jest oczywiście zapisana bezpośrednio
smile.gif
Odczytujemy ją tak:

out[0] = in[0] xor 0xff
out = in xor in[i-1]

Gdzie in to bajty wiadomości zakodowanej, a out - zdekodowanej.
Mówiąc swoimi słowami każdy bajt jest z-xorowany z poprzednim, a dla pierwszego przyjmujemy że poprzedni = 0xff.

Po zdekodowaniu na końcu wiadomości czasem pojawia się jeden lub więcej bajt 0x00 - ale komu to przeszkadza...
smile.gif


Przykładowe programy

Napisałem kilka prościutkich programów operujących na plikach "archives.dat", ich kod źródłowy można sciągnąć stąd. Aha.. nie próbowałem ich kompilować pod windowsem
smile.gif
ale przy odrobinie dobrej woli powinno się to udać (prawdopodobnie łatwiej będzie pod mingw32 niż msvc).

Krótki opis:


arch_file.h - definiuje struktury danych odpowiadające formatowi pliku
gg.cpp / gg.h - prosta klasa obsługująca odczyt archiwów
crc.cpp / crc.h - nie zgadniesz
smile.gif

main.cpp / ggarch - program wypisujący w "czytelnej" formie zawartość archiwów
a2e.cpp / a2e - program konwertujący archives.dat do formatu archiwów ekg - albo przynajmniej zbliżonego
smile.gif

ggchown.cpp / ggchown - program zmieniający numerek GG właściciela zapisany w pliku archives.dat i poprawiający sumy kontrolne tak, aby klient go "łyknął"
smile.gif

old/crc.* - też nie zgadniesz
old/gg.c - pierwsze podejście do archiwów - program wypisujący różne informacje o pliku
 

Rob

Użytkownik
Dołączył
Listopad 18, 2002
Posty
209
pojawia sie duzo pytan odnosnie tego czy mozna odzyskac usuniete wiadomosci z archiwum gg, ktore nie zostalo skompaktowane. oto sa nawet 2 sposoby na to[/b]
albo jestem slepy albo tych dwoch sposob nie widze. co wiecej nie widze ani slowa o odzyskiwaniu usunietych wiadomosci a jedyne co w tym calym arcie widze to opis struktury pliku archives.dat oraz programow pozwalajacych czytac cudze archives.dat bez wchodzenia na ich profile.


no chyba, ze;

main.cpp / ggarch - program wypisujący w "czytelnej" formie zawartość archiwów

pozwala na przeczytanie calego archiwum, wraz z wiadomosciami "usunietymi" (ale fizycznie siedzacymi jeszcze w pliku - bo tak to rozumiem).
 

Bodex

Użytkownik
Dołączył
Czerwiec 6, 2004
Posty
5
po lekturze tego artykulu powinienes wiedziec ze odzyskac skasowane wiadomosci mozna na 2 sposoby:

- poprzez rozszyfrowanie archiwum (dzieki czemu mozesz przeczytac wszystkie wiadomosci, nawet te usuniete).

- poprzez edycje pliku z archiwum i zmiane tzw "flag" wiadomosci by byly one znowu widoczne. niestety jest to zmudne bo trzeba przeliczac sumy kontrolne. inaczej archiwum zostanie skasowane.

obie metody mozna wykonac recznie lub poprzez napisanie drobnych programikow ktore rozwiaza sprawe. autorowi artykulu sie to udalo...

oczywiscie caly czas chodzi tu o archiwum ktore nie zostalo skompaktowane. wtedy takiej mozliwosci nie ma
 

Rob

Użytkownik
Dołączył
Listopad 18, 2002
Posty
209
hmm w takim razie z checia bym z takiego programu skorzystal ale aktualnie mam tylko winde na kompie wiec nic z tego...
 

Bodex

Użytkownik
Dołączył
Czerwiec 6, 2004
Posty
5
ostatnio bawilem sie na archiwach gg i o wiele prosciej jest rozkodowac archiwum niz baiwc sie w przeliczanie i porawianie. zarowno recznie mozna poprzez napisany skromny program rozkodawac archiwum, lub poszukac w sieci programow do deszyforwania. znalazlem ich kilka

banal...


aha oczywiscie wszystko mozna zrobic pod windows, wiec
smile.gif
))
 

Rob

Użytkownik
Dołączył
Listopad 18, 2002
Posty
209
No coz, skorzystalem z zamieszczonego na stronie zestawiku programow (tych juz skompilowanych) i niestety ten ktory mnie najbardziej interesowal, czyli ggundel nie dziala; po uruchomieniu przelatuje lista z takimi informacjami:

Warning: unexpected 'flags' value: 186548


te cyferki na koncu sie zmieniaja oczywiscie.
Sprobowalem kilka archiwow i na kazdym to samo. Probowalem nawet na dwoch roznych komputerach.

Wkurzajace jest jak sie ma 2-megowe archiwum ktore po normalnym otwarciu jest jednak prawie puste, czyli wiadomo ze siedzi tam jeszcze cala masa wiadomosci tylko nie da sie ich wyciagnac na wierzch ;p
 

ggsalut

Użytkownik
Dołączył
Czerwiec 13, 2005
Posty
5
Mam program do odczytywania skasowanych arch. gg ale potrzbuje dobry program do uzyskania hasla z tlenu do odczytania pliku profiles.dat.
probowalem tlen password reader ale nie pomogl. Moze ktos z was sie wymieni ja mu przesle program do odczytywania archiw. gg
pozdrawaim
 

WalgO

Użytkownik
Dołączył
Czerwiec 11, 2004
Posty
495
Originally posted by ggsalut
Mam program do odczytywania skasowanych arch. gg ale potrzbuje dobry program do uzyskania hasla z tlenu do odczytania pliku profiles.dat.
probowalem tlen password reader ale nie pomogl. Moze ktos z was sie wymieni ja mu przesle program do odczytywania archiw. gg
pozdrawaim
co ma piernik do wiatraka ? po co odkopujesz posty ? to już chyba nie Twój 1wszy post co do tego tlen paswd readera :clever:
LOL po co progs do odczytywania archiuwum gg skoro do tego nie trzeba żadnego progsa.
 

AmPo

Użytkownik
Dołączył
Luty 7, 2006
Posty
7
Ja kiedys mialem program ze sie wylanczalo gg otwieralo sie plik archives.dat(czy jakos tak) i pisalo ile jest odzyskanych wiadomosci wscikalo sie Enter wlanczalo gg i juz bylo to jak znajde to go dam
<
 

krzysiek_wsp

Użytkownik
Dołączył
Luty 14, 2006
Posty
1
Mam pytanie.Moj kumpel chce skasowac cale swoje archiwum gg, lecz podobno policja jak wezmie kompa wszystko odzyska.Jak wiec skasowac archiwum?Usunać jego zawartosc i zrobic formata,ale to chyba za proste i do odzyskania?Oczywiscie chodzi mi o to by archiwum normalnie se dzialalo i gg zadnych drastycznych rozwiazan.Czekam na fachową odpowiedź.
 

mks

Użytkownik
Dołączył
Marzec 12, 2006
Posty
370
Originally posted by krzysiek_wsp
Mam pytanie.Moj kumpel chce skasowac cale swoje archiwum gg, lecz podobno policja jak wezmie kompa wszystko odzyska.Jak wiec skasowac archiwum?Usunać jego zawartosc i zrobic formata,ale to chyba za proste i do odzyskania?Oczywiscie chodzi mi o to by archiwum normalnie se dzialalo i gg zadnych drastycznych rozwiazan.Czekam na fachową odpowiedź.
1. odkopujesz stary topic
2. ciekawy artykul o odzyskiwaniu danych (historyjka, nie manual
<
): http://hacking.pl/5991
3. opis programu, ktory niedawno sciagnalem:
Kod:
***************************Niszczarka NxG (pl-full)******************************



Wysokiej klasy narzędzie służące do bezpowrotnego usuwania danych 

z dysków twardych.Proces niszczenia polega na wielokrotnym nadpisywaniu

 danych przypadkowymi znakami. Wyboru algorytmu usuwającego dokonuje użytkownik.

Dwa z zastosowanych algorytmów niszczenia zgodne są z zaleceniami

 Departamentu Obrony USA co do niszczenia danych z nośników magnetycznych.

 Kolejny z nich, algorytm Guttmana uznany został za najbezpieczniejszą 

i najlepszą procedurę tego typu. Użytkownik Niszczarki NxG może także 

samodzielnie ustalić ilość cykli oraz tekst używany do nadpisywania danych.

Danych usuniętych z dysku twardego komputera za pomocą Niszczarki nie da

 się odzyskać nawet w specjalistycznych laboratoriach.

Ma to ogromne znaczenie np. w przypadku ważnych lub niebezpiecznych dokumentów,

 które muszą zostać bezpowrotnie zniszczone, aby nie dostać się w niepowołane ręce.

 Klasyczne usuwanie plików, a nawet formatowanie dysku twardego nie daje gwarancji

 nieodwracalnego zniknięcia danych.

Potrzebę stworzenia takiego narzędzia podyktowała rzeczywistość oraz fakt istnienia

 urządzeń fizycznie niszczących klasyczne dokumenty.

Program działa w systemach operacyjnych Windows 98SE / ME / 2000 / XP / 2003.

strona producenta:

[url]http://www.gdata.pl/pl/produkty/niszcz_nxg.html[/url]

******************STRUS*********************************************************
***

to chyba wyjasnia juz wszystko
 

cielo89

Użytkownik
Dołączył
Czerwiec 4, 2006
Posty
4
A ja mam taką sprawę. Postaram się to przedstawić rzeczowo:

Jest gg w którym została włączona opcja nie archiwizowania wiadomości.
Mam dostęp do komputera na którym jest to gg i chcę odzyskać ostatnie rozmowy.
Nie wiem czy ważne jest to że gg było przeinstalowane - w każdym razie wszystkie pliki tzn te w Documents and Settings nie były ręcznie usuwane.

Jeśli ktoś ma na to jakąś opcje bo to dla mnie ważna sprawa to może załączyć nazwy uzytych programów. Thx:)
 

mjl89

Użytkownik
Dołączył
Grudzień 12, 2006
Posty
155
jeżeli wiadomości nie były archiwizowane, to nie będziesz miał wiadomości.
 

cielo89

Użytkownik
Dołączył
Czerwiec 4, 2006
Posty
4
Gdzieś tu też taką opinię słyszałam ale był też post że częściowo może się to udać...
 

mjl89

Użytkownik
Dołączył
Grudzień 12, 2006
Posty
155
przecież archiwum jest tworzone przez program, jeżeli funkcja "twórz archiwum" jest wyłączona to nie możesz tego odczytać, ponieważ nie jest zapisywane w jakim kolwiek pliku.
 

Preintermediate

Użytkownik
Dołączył
Październik 13, 2006
Posty
70
Jezeli chodzi o archiwum gadu gadu, to nawet jak JEST ZAZNACZONE : NIE ARCHIWIZUJ WIADOMOSCI to i tak da sie to odczytac... mam do tego program! jak juz mowilem - moja kolezanka byla tak bardzo pewna ze nie przeczytam tego, co pisala z takimi jednymi... a ty ZONK heheheheeee potem nie chciala pokazywac jak w archiwum pokazaly sie xywy ich koleszkow.... zadala sobie pytanie " skad to sie wzielo o matko boska " hehehe
<


jezeli post nie na temat to usunac
<
pzdr
 

hetman 1605

Użytkownik
Dołączył
Styczeń 28, 2007
Posty
2
Jak masz program ...do rozszyfrowania archiwum to napisz jak sie ten program nazywa albo daj link ...... ;]
 

DiCarlo

Użytkownik
Dołączył
Kwiecień 8, 2006
Posty
109
Panowie

Wejdzcie na google i wpiszcie program do rozkodowania archiwum w gg albo Hacki na gg ipt nie mówcie ze nie znajdziecie ja ktego tam jest pare tys. stron
 

Zie(L)ony

Użytkownik
Dołączył
Luty 12, 2007
Posty
6
Czytam czytam... ale nie widze odpowiedzi na jedno pytanie.

Czy da się oddzyskać archiwum jeżeli został skasowany plik archives.dat? Sam go nie kasowalem, poprostu uruchamiam dzis gg a mojego konta nie ma, calego folderu z zawartoscią nie było, tak jak by ktos usunał konto. Ale jestem pewien ze nikt nie usunął bo siedzialem wszystko bylo ok na godzine poszedlem sie uczyc nikt do komputera nie podchodzil właczam nie działa i tyle. Niewiem jak sie usuneło ani co i jak. Słyszałem ze da się odzyskac ten plik programem do odzyskiwania danych, jednak jak? W tego typu programach nie ma opcji zeby odzyskiwalo plik .dat co mam robić?
 
Do góry Bottom