algorytm kodowania hasel przez gg8 zlamany i upubliczniony

0

Witam, ze wzgledu ze moja opinia, reputacja na tym forum zostala poniekad obszarpana / zrujnowana (nieslusznie zreszta) zostalem zmobilizowany do zreversowania kodowania hasel uzytych przez programistow nowego gg (gg 8).

Oczywiscie do wszystkiego udostepniam kod zrodlowy jak zawsze pisany w c.

na razie program czyto potwierdzajacy moja teorie dokodowania, z czasem moze bedzie cos z gui.

Reversowanie (3 dni) pisanie programu potwierdzajacego teze (1 dzien).

Kod zrodlowy:

http://lowbyte.da.ru/sources/dekoder_gg8_konsola/

Program skompilowany:

http://lowbyte.da.ru/software/dekoder_gg8_konsola/

Dodam jeszcze log z jego pracy:

======================================================
  Program potwierdzajacy metode dokodowania hasel     
  uzyta w komunikatorze nowe gg ( ver ~8 )            
------------------------------------------------------
  writen as opensources and reversed by:              
    cyber aka pl ([email protected])               
    http://lowbyte.da.ru                              
======================================================

Zdefiniowany numer gg w pliku xml:

3663008

Zakodowane haslo z pliku xml:

kg3OoQ6280qByljB6cL1pYnfBp2dMGkpRuvo9TektO26LohqBQU5UZVgdV7Ui5q2m/USlyuvFuWgeUhe3SlCnVpw1ihS6v6Dr1YJHTuDHSRMu1sojGnU9Z+xj/BoS2pusLNE86ctr7dP9UmpFRrJ1itNz6ASC76oEf9U9SplqetJ1v2ESvTgkkzHTqnsonp3CAf5ygRi1QiE5aOr/HbqvbMENAhGKKNVkH9pKBqcstzEJRgBc8Pfn0AqT7/Ia0TiNnOfoVQ0x8zw3sEXkQ6MkAZpNGBcXXKcyrzJQi3eusrVnvvryVp0Jxeo25pY1GAFwCC4/gKOE7+kDGPvpK3c1a4+ace/kRzr

Hexdump zakodowanego hasla (przed base64):

[0000]   6B 67 33 4F 6F 51 36 32 - 38 30 71 42 79 6C 6A 42   kg3OoQ62 80qByljB
[0010]   36 63 4C 31 70 59 6E 66 - 42 70 32 64 4D 47 6B 70   6cL1pYnf Bp2dMGkp
[0020]   52 75 76 6F 39 54 65 6B - 74 4F 32 36 4C 6F 68 71   Ruvo9Tek tO26Lohq
[0030]   42 51 55 35 55 5A 56 67 - 64 56 37 55 69 35 71 32   BQU5UZVg dV7Ui5q2
[0040]   6D 2F 55 53 6C 79 75 76 - 46 75 57 67 65 55 68 65   m.USlyuv FuWgeUhe
[0050]   33 53 6C 43 6E 56 70 77 - 31 69 68 53 36 76 36 44   3SlCnVpw 1ihS6v6D
[0060]   72 31 59 4A 48 54 75 44 - 48 53 52 4D 75 31 73 6F   r1YJHTuD HSRMu1so
[0070]   6A 47 6E 55 39 5A 2B 78 - 6A 2F 42 6F 53 32 70 75   jGnU9Z.x j.BoS2pu
[0080]   73 4C 4E 45 38 36 63 74 - 72 37 64 50 39 55 6D 70   sLNE86ct r7dP9Ump
[0090]   46 52 72 4A 31 69 74 4E - 7A 36 41 53 43 37 36 6F   FRrJ1itN z6ASC76o
[00A0]   45 66 39 55 39 53 70 6C - 71 65 74 4A 31 76 32 45   Ef9U9Spl qetJ1v2E
[00B0]   53 76 54 67 6B 6B 7A 48 - 54 71 6E 73 6F 6E 70 33   SvTgkkzH Tqnsonp3
[00C0]   43 41 66 35 79 67 52 69 - 31 51 69 45 35 61 4F 72   CAf5ygRi 1QiE5aOr
[00D0]   2F 48 62 71 76 62 4D 45 - 4E 41 68 47 4B 4B 4E 56   .HbqvbME NAhGKKNV
[00E0]   6B 48 39 70 4B 42 71 63 - 73 74 7A 45 4A 52 67 42   kH9pKBqc stzEJRgB
[00F0]   63 38 50 66 6E 30 41 71 - 54 37 2F 49 61 30 54 69   c8Pfn0Aq T7.Ia0Ti
[0100]   4E 6E 4F 66 6F 56 51 30 - 78 38 7A 77 33 73 45 58   NnOfoVQ0 x8zw3sEX
[0110]   6B 51 36 4D 6B 41 5A 70 - 4E 47 42 63 58 58 4B 63   kQ6MkAZp NGBcXXKc
[0120]   79 72 7A 4A 51 69 33 65 - 75 73 72 56 6E 76 76 72   yrzJQi3e usrVnvvr
[0130]   79 56 70 30 4A 78 65 6F - 32 35 70 59 31 47 41 46   yVp0Jxeo 25pY1GAF
[0140]   77 43 43 34 2F 67 4B 4F - 45 37 2B 6B 44 47 50 76   wCC4.gKO E7.kDGPv
[0150]   70 4B 33 63 31 61 34 2B - 61 63 65 2F 6B 52 7A 72   pK3c1a4. ace.kRzr

Hexdump zakodowanego hasla (po base64):

[0000]   92 0D CE A1 0E B6 F3 4A - 81 CA 58 C1 E9 C2 F5 A5   .......J ..X.....
[0010]   89 DF 06 9D 9D 30 69 29 - 46 EB E8 F5 37 A4 B4 ED   .....0i. F...7...
[0020]   BA 2E 88 6A 05 05 39 51 - 95 60 75 5E D4 8B 9A B6   ...j..9Q ..u.....
[0030]   9B F5 12 97 2B AF 16 E5 - A0 79 48 5E DD 29 42 9D   ........ .yH...B.
[0040]   5A 70 D6 28 52 EA FE 83 - AF 56 09 1D 3B 83 1D 24   Zp..R... .V......
[0050]   4C BB 5B 28 8C 69 D4 F5 - 9F B1 8F F0 68 4B 6A 6E   L....i.. ....hKjn
[0060]   B0 B3 44 F3 A7 2D AF B7 - 4F F5 49 A9 15 1A C9 D6   ..D..... O.I.....
[0070]   2B 4D CF A0 12 0B BE A8 - 11 FF 54 F5 2A 65 A9 EB   .M...... ..T..e..
[0080]   49 D6 FD 84 4A F4 E0 92 - 4C C7 4E A9 EC A2 7A 77   I...J... L.N...zw
[0090]   08 07 F9 CA 04 62 D5 08 - 84 E5 A3 AB FC 76 EA BD   .....b.. .....v..
[00A0]   B3 04 34 08 46 28 A3 55 - 90 7F 69 28 1A 9C B2 DC   ..4.F..U ..i.....
[00B0]   C4 25 18 01 73 C3 DF 9F - 40 2A 4F BF C8 6B 44 E2   ....s... ..O..kD.
[00C0]   36 73 9F A1 54 34 C7 CC - F0 DE C1 17 91 0E 8C 90   6s..T4.. ........
[00D0]   06 69 34 60 5C 5D 72 9C - CA BC C9 42 2D DE BA CA   .i4...r. ...B....
[00E0]   D5 9E FB EB C9 5A 74 27 - 17 A8 DB 9A 58 D4 60 05   .....Zt. ....X...
[00F0]   C0 20 B8 FE 02 8E 13 BF - A4 0C 63 EF A4 AD DC D5   ........ ..c.....
[0100]   AE 3E 69 C7 BF 91 1C EB -                           ..i..... 

Serial woluminu partycji systemowej:

f06bbc9d

Klucz:

f06bbc9d3663008f06bbc9d

Hexdump zdekodowanych danych:

[0000]   19 1C 1A 9E 9F 1E D2 77 - 74 E4 6E 4E 32 BC DE C8   .......w t.nN2...
[0010]   3F 82 6E 12 BE 3B 6C F8 - 90 AB 3B 93 D1 83 F2 16   ..n...l. ........
[0020]   97 CD 32 DC E8 96 46 B1 - FC DC 80 5F B3 BA D1 7B   ..2...F. ........
[0030]   57 D0 A9 70 95 F6 10 CB - B8 23 03 C7 26 9A 12 1B   W..p.... ........
[0040]   1F 56 3A 01 B3 B6 FE 88 - 03 6B CB 1D BA A0 8C 57   .V...... .k.....W
[0050]   CD 69 8B 01 70 70 89 6C - 5B DD 20 F5 3E 85 56 D3   .i..pp.l ......V.
[0060]   80 56 84 25 3D 00 68 3A - 81 E6 87 21 C0 46 C7 72   .V....h. .....F.r
[0070]   97 A6 4C 5E C8 81 91 F4 - 72 31 C9 B4 8F 1D 76 58   ..L..... r1....vX
[0080]   B2 26 49 DF 00 4D 3C DD - 6E A8 EC 01 3B 86 3A E6   ..I..M.. n.......
[0090]   AF DF 23 1D 14 00 DF 79 - F4 76 37 9B 93 3A 2A C0   .......y .v7.....
[00A0]   AE 1D C1 C9 73 75 31 8A - C3 07 31 56 A5 35 9D CA   ....su1. ..1V.5..
[00B0]   0D 6B 4A D7 CD C6 2A 14 - D9 05 A2 44 C1 B3 29 25   .kJ..... ...D....
[00C0]   6B 94 24 7A 0F 4F 00 5A - 77 5B 90 B9 76 2E A7 35   k..z.O.Z w...v..5
[00D0]   A7 A3 F7 25 69 AA 2B DE - 1A 35 42 46 92 61 2D 9E   ....i... .5BF.a..
[00E0]   E1 E2 AA 8A 4B B3 61 63 - 82 FD 3F C0 24 47 11 41   ....K.ac .....G.A
[00F0]   77 36 35 34 33 32 31 79 - 74 72 65 77 71 0C C1 2F   w654321y trewq...

Zdekodowane haslo to:

qwerty123456

Program zakonczyl prace, nacisnij enter!

Aha, chcialem tez przeprosic odnosnie ostatniego watku ktory poruszalem, metoda irtualizacji zostala zoptymalizowana ostatnimi czasy i nie bylem w stanie byc na czasie odnosnie jej implementacji [;

Dajcie jakies komentarze odnosnie tego watku etc.

Jesli ktos potrzebuje opisu dekodowania, na mojej stronie bedzie opisany caly proces od poczatku do konca w niedziele.

Pozdrawiam.

0

Respect [diabel]

0

Wow !
;-)

0

Ale pierwszy to nie jesteś, już gdzieś widziałem (bo byłem zmuszony użyć :>) program do odczytywania haseł gg 8.

0
Fanael napisał(a)

Ale pierwszy to nie jesteś, już gdzieś widziałem (bo byłem zmuszony użyć :>) program do odczytywania haseł gg 8.

Screenshot or .... wiesz co... ;-P

0
EgonOlsen napisał(a)

Screenshot or .... wiesz co... ;-P
Wybierz sobie :P
Nie wiem tylko, czy chodzi o hasło serwera, czy profilu. Jeśli profilu, to AFAIK faktycznie jest pierwszy.

0

Tak czy siak - szacun dla goscia :)
Co do reputacji Cybera - nie jest az tak zle przynajmniej w moich oczach ;) To, ze Deus wypowiedzial sie niezbyt pozytywnie to jeszcze nie znaczy, ze wszyscy podzielaja jego opinie. Ja zgadzam sie z wypowiedzia Sapero z tego tematu, moim zdaniem Sapero po prostu trafil w sedno sprawy.

0
cyber_pl napisał(a)

Reversowanie (3 dni) pisanie programu potwierdzajacego teze (1 dzien).

http://hackinq.pl/rozkodowanie-hasla-z-gg-beta-8-t-342.html

0
  1. Metoda zostala zlamana wczesniej, ale niestety nikt nie opisal jej dzialania, bylem zmuszany reversowac od poczatku do konca z asm gdzie kod rpogramu to 10MB wiec bylo co robic.

  2. GG 8 beta zajmowalem sie wczesniej mialem na rzeczy zanalizowac usuwanie reklam w komuniaktorze, ale rozumiem ze nikt nie zagladal nawet na moja strone co publikowalem, <ort>Od razu </ort>oskarzacie mnie o niedomowienie czy tez klamstwo.

prosze tutaj artykul odnosnie reklam:

http://lowbyte.da.ru/index.php?pages=articles&id=226

oraz stary patcher przeze mnie napsiany:

http://lowbyte.da.ru/sources/paczergg8.cpp.txt

W czasie ogledzin kodu natknalem sie na szczatki takowego kodowania, nie mialem jednak czasu ich analizowac a co za tym idzie reversowac do c.

Porusze jeszcze sprawe tego tematu:

http://4programmers.net/Forum/viewtopic.php?id=149503

Pan somekind ma znikoma wiedze nie powinien sie <ort>w ogóle </ort>wypowiadac, zas pan "..." poja zaduzo wiedzy i teraz zachowuje sie jak zwyklu gowniaz. Administracja powinna cenzurowac kazdy jego post, obraza on innych.

Co do samego programu (pape), nie rozumiem dlaczego nazywacie go gorszym (no chyba ze gui wam nie podchodzi). Posiada on skupiona funkcjonalnosci innych programow naraz, jest niezly odpowiednikiem a ze podczas jego pisania nie wykorzystywalem zdefiniowanych struktor przez api ms a offsetowe wskazniki do blokow danych to tylko i moja sprawa, dzialaja w 99% tak samo jak odpwiedni kod pisany za pomoca tych struktor.

RE zajmuje sie czynnie od 4 lat wczesniej zajmowalem sie gromadzeniem wiedzy innych.

Tutaj macie przyklad (crack wykonany w 15 min + 1h dzisiaj):

http://hackme.pl/forum/viewthread.html?thread_id=18593&pid=117805#post_117805

Co do tematu watku, artykul odnosnie kodowania hasel w gg 8 zostal juz opublikowany dla WSZYSTKICH programistow i nie tak jak to zrobila poprzednia osoba reversujaca, w odroznieniu informacje sa rzeczowe i w calosci przedstawione za pomoca kodu zrodlowego!!!

http://lowbyte.da.ru/index.php?pages=articles&id=224

Wydaje mi sie ze niektorzy na tym forum powinni mnie przeprosic, nieslusznie nazywaja mnie klamca czy tez laikiem, niedlugo bede inzynierem jak pan Rafal Jelito zreszta ...

0

OT: co do treści się nie wypowiem (bo w tych sprawach jestem lajkonikiem), ale chyba za bardzo bierzesz wszystko do siebie. Gdzieś tam dawno poszła wymiana zdań, a Ty rehabilitujesz swoją niby nadszarpniętą reputację, ale sposób nie wydaje się najlepszy. Forum to polega na wymianie doświadczeń i pomaganiu innym. Więc jak chcesz zbudować sobie reputację - dziel się doświadczeniami i pomagaj tym, którzy zaczynają zamiast się obrażać.

Trochę luzu panie (przyszły) inżynierze :)

0

Masz racje ale zauwaz ze zostalem ponizony i raczej to bedzie mialo duzy wplyw aby NIE dzielil sie czymkolwiek tutaj ...

To co tutaj zrobilem bylo jedyna slusza metoda odbudowania reputacji (zwalsza ze RE to moja pasja od kilku lat), na tym forum jest znikomy dzial o RE (jesli <ort>w ogóle </ort>istnieje), dodaje zreszta kod zrodlowy ktory pownien byc ceniony na forum programistycznym.

Ciekaw jestem ile razy dzielil sie kodem pan somekind albo user o nicku "..."? A moze kontrolki z IDE RAD generuja znikoma ilosc kodu ktorym mozna sie pochwalic, udostepnic?

O szkoda ze potrafia tylko krytykowac tych ktorzy sie nie boja swojego kodu!

Takie zachowanie powinno byc eliminowane a nie chwalone i przymykane.

0

Wez pod uwage, ze "..." to tak naprawde user o nicku Deus. Przejrzyj jego posty, jest co poczytac.

0
cyber_pl_temp napisał(a)

Ciekaw jestem ile razy dzielil sie kodem pan somekind albo user o nicku "..."? A moze kontrolki z IDE RAD generuja znikoma ilosc kodu ktorym mozna sie pochwalic, udostepnic?

  1. Nie "pan somekind", tylko po prostu somekind.
  2. Średnio w co drugim swoim poście umieszczam jakiś kod, którym się dzielę. Pytaj tych, którym pomogłem (po to jestem na forum). Jeśli oczekujesz ode mnie jakiegoś konkretnego kodu, spytaj na privie.
  3. Ja nie znam się na RE, Ty nie znasz się na narzędziach RAD, nie wiesz prawdopodobnie do czego służą, nie wiesz jaki kod generują i po co, nie wiesz też, jaki kod dopisuje programista.
    Na dodatek nie wiesz kim jestem i czym się zajmuję. Ustalmy te fakty i przestań się mnie czepiać w swoich postach. Ok?
  4. Nie rozumiem coś się tak tych narzędzi RAD uczepił, ja o nich nigdy nie wspominałem.
  5. Imponujące jest Twoje rozwiązanie z gg i duża część wiedzy, szkoda tylko, że wszystko przekreślasz brakiem umiejętności czytania ze zrozumieniem :(


// #@% kolejna wojna - umówcie się na bójkę uliczną - ulica zawsze sprawdzi wszystko i wszystkich.
// kolejne wojny i posty nie związane z oryginalnym wątkiem będę usuwane
// deti

//Przepraszam deti, ale myślałem, że tamten temat jest już zakończony, niemniej jednak ktoś go wyciągnął, przy okazji wyzywając mnie, a tego nie lubię. Milczałem, dopóki gość się do mnie nie przyczepił. Dalszych dyskusji z tym użytkownikiem prowadzić nie zamierzam, no chyba, że znowu przekroczy jakąś granicę. Nie rozumiem także, czemu chce robić ze mnie swojego wroga - niby jego sprawa, ale to głupi pomysł, bo raczej mu nie wyjdzie.

0

Sadze ze nie musimy prowadzic zadnych wojen, jestem userem ktory jest obojetny lecz chciale co nieco udowodnic.

Juz bede siedzial cicho jak mysz pod miotla [;

Jesli jest ktos zainteresowany tym kodowaniem zapraszam na priv8.

Jesli to kogos interesuje moge przepisac openssl enkrypcje blow fish aby nie trzeba bylo korzystac z bibliotek zewnetrznych etc.

Pozdrawiam, dziekuje za uwage i prosze szanowna administracje o zamkniecie ( i ewentualnie wczesniejsze odbanowanie mojego wczesniejszego profilu [; ).

0

Jak już jesteśmy przy psuciu bezbronnych względem RE komunikatorów... tak sobie teraz obejrzałem przy porannej kawusi pierwszą betę Tlenu7 dla Windows (w pingwinach nie grzebię z zasady). O ile GG jest przegięte w jedną stronę, o tyle Tlen w drugą - na szybko naklepany 'PoC', codeData to po bezpośrednio przepisana funkcja z tlen_core.dll (algo samoodwrotne):

#include <QtCore/QSettings>
#include <QtCore/QByteArray>
#include <QTCore/QTextStream>

void codeData(QByteArray &data)
{
    for (int i = 0, key = 113; i < data.size(); ++i) {
        key = key * 131 + 187;
        if ((key & 0x800000FF) < 0)
            key = ((key - 1) | 0xFFFFFF00) + 1;
        data[i] = data[i] ^ key;
    }
}

int main(int argc, char **argv)
{
    QSettings  config(argv[1], QSettings::IniFormat);
    QString    uID  = config.value("uid").toString();
    QByteArray data = config.value("password").toByteArray();
    QByteArray pass = QByteArray::fromBase64(data);

    codeData(pass);

    QTextStream(stdout) << "uid:  " << uID << "\npass: " << pass << endl;
}

Jako argument przyjmuje ścieżkę do pliku konta danego protokołu.

Szyfrowanie wybitne, hasła na profil ustawić się póki co nie da... Całość konfigów to pliki ini obsługiwane na najniższym poziomie przez QSettings, miejscami z użyciem serializowanych obiektów (jak w przypadku hasła - QByteArray). Hasło przed serializacją traktowane base64.

Czas grzebania i klepania - jeden kubek kawy, mniej niż pół godziny. Swoją drogą - użycie Qt i zewnętrznych libów tak samo jak w przypadku GG strasznie analizę ułatwia. Pomijam, że do uruchomienia programu bez explorera jako shella musiałem binarkę patchować. Weź im ktoś to 'bezpieczeństwo' na ichniego bugtrackera zgłoś...

0

Po tej riposcie zwracam szacunek dla usera "...".

Pozdrawiam userow forum [;

(odpowiedz musiala trwac bo bylem tymczasowo zbanowany w serwisie etc).

1 użytkowników online, w tym zalogowanych: 0, gości: 1