JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 09.02.2016, 13:29
Sfor
Guest
 
Posts: n/a
Default Szyfrowanie linków za pomocą JQuery?

Niedawno JDownloader przestał znajdować linki do playerów online na stronach **External links are only visible to Support Staff****External links are only visible to Support Staff**. Przeprowadziłem dochodzenie w tej sprawie.

Linki w HTMLu wyglądają następująco:
{"a":"AXms9rrFMBktWuI+bKDGlxmCeUQqvOEW3WfxvB8iYMVCLT915vsxALtxf0UO54td","b":"1fb5ea6a4e4787455f625e9 6c767f9ef","v":"a1e0708b0b6ed1e2"}

Jeżeli w na stronie zadeklarowane są:
Code:
<script src="**External links are only visible to Support Staff**></script>
<script src="**External links are only visible to Support Staff**></script>
Przeglądarka wykonując następujący kod wrzuci rozszyfrowany link do logu.
Code:
<script>
(function ($) {
console.log(e('{"a":"AXms9rrFMBktWuI+bKDGlxmCeUQqvOEW3WfxvB8iYMVCLT915vsxALtxf0UO54td","b":"1fb5ea6a4e4787455f625e96c767f9ef","v":"a1e0708b0b6ed1e2"}'));
})(jQuery);
</script>
Wyciągnąłem więc wniosek, że ten sposób szyfrowania jest oparty na kodzie dostępnym w JQuery. Niestety nie znam się na tym na tyle, by rozgryźć to w większym stopniu.

Bardzo interesuje mnie, jak odtworzyć proces deszyfrowania poza przeglądarką.

Dodanie funkcjonalności deszyfrowania tak zapisanych linków w JDownloaderze wydaje mi się być ciekawym pomysłem.
Reply With Quote
  #2  
Old 09.02.2016, 20:15
editestowy's Avatar
editestowy editestowy is offline
Polish Supporter
 
Join Date: May 2009
Location: PL
Posts: 3,029
Default

Przeglądarka wywołuje skrypty przechowywane na serwerze.
Skrypty można podejrzeć używając wbudowanych w przeglądarki narzedzi programistycznych (np. przeglądarki oparte na Chrome maja wbudowane Chrome DevTools) - nawet można je wykonywać krokowo.
Ale dodanie obsługi tego do wtyczki to już kawał potężnej pracy - kilka wtyczek ma zaszyta obsługę javascriptów ze stron ale to rzadkość - każda zmiana po stronie serwisu to ponowne debugowanie i śledzenie krokowo skryptów - raczej preferujemy, żeby serwisy dostarczały w takich przypadkach API. Nakład pracy i czasu spędzonego nad tego typu przypadkami (obsługa linków przez skrypty) jest zbyt duży.
Reply With Quote
  #3  
Old 09.02.2016, 21:02
Sfor
Guest
 
Posts: n/a
Default

Jeżeli odtworzenie samej procedury deszyfracji jest zbyt skomplikowane, to można pokusić się o odtworzenie środowiska w którym oryginalny kod działa. Na razie nie mam jednak pomysłu na to jak zmusić jakąś przeglądarkę do wczytania odpowiednio spreparowanej strony i zapisania wyniku lub logu do pliku. Podejście takie nie wymaga pełnej analizy kodu źródłowego. Potrzebne jest jednak coś na kształt przeglądarki działającej w trybie wsadowym.
Reply With Quote
  #4  
Old 12.02.2016, 12:23
Sfor
Guest
 
Posts: n/a
Default

Quote:
Originally Posted by editestowy View Post
Przeglądarka wywołuje skrypty przechowywane na serwerze.
Tę teorię obaliłem, tworząc eksperymentalny kod HTML pobierający biblioteki JQuery z dysku twardego komputera zamiast z oryginalnych serwerów. Dla pewności odłączyłem też kabel sieci Ethernet. Przeglądarka nie mogła więc połączyć się z serwerem, aby pobrać z niego kod do wykonania.

Wniosek. Cały kod potrzebny do rozszyfrowania linku znajduje się w bibliotekach JQuery (jquery-1.8.2.min.js i jquery-ui.min.js).
Reply With Quote
  #5  
Old 12.02.2016, 20:31
editestowy's Avatar
editestowy editestowy is offline
Polish Supporter
 
Join Date: May 2009
Location: PL
Posts: 3,029
Default

Uważasz, że przeglądarki przechowują lokalnie wszystkie możliwe skrypty ze wszystkich stron?

Zauważ co masz w kodzie strony:
<script src="**External links are only visible to Support Staff**></script>
<script src="**External links are only visible to Support Staff**></script>

- dokładne wskazania, gdzie są umiejscowione źródła skryptów.


Jeśli skrypt nie jest zawarty w kodzie strony, to właśnie po to umieszczane są tagi jak wyżej, aby przeglądarka interpretując i wczytując kod strony "wiedziała" gdzie ich szukać.
Reply With Quote
  #6  
Old 20.02.2016, 09:05
Sfor
Guest
 
Posts: n/a
Default

Faktycznie.

jquery-ui.min.js zawiera bibliotekę CryptoJS z kodem Open Source.

Firefox też posiada debugera java scriptu. Musiałem jedynie nauczyć się, jak zmusić go do śledzenia wewnątrz ładowanych z innych serwerów bibliotek.

W rezultacie funckja rozszyfrowująca e ma następujący kod:

function e(f)
{
return JSON.parse(CryptoJS.DES.decrypt(f, 's05z9Gpd=syG^7{', {
format: d
}).toString(CryptoJS.enc.Utf8));
}

Na razie nie mam jeszcze sposobu na alternatywne deszyfrowanie DES.
Reply With Quote
  #7  
Old 06.06.2016, 09:06
Sfor
Guest
 
Posts: n/a
Default

W końcu doszedłem do wniosku że najłatwiej będzie wykorzystać do deszyfrowania przeglądarkę. W chwili obecnej automat zbiera zaszyfrowane linki z podstron, następnie tworzy jeden plik html zawierający wszystkie likni zawierający dla każdego z nich wpis

<p id=initial-d-final-stage-01d.mp4></p>
<script>
(function ($) {document.getElementById("initial-d-final-stage-01d.mp4").innerHTML =e('{"a":"XWK6qyndOUPqcZufG75ICrJV1937pH5p3DgZ4\/HAs3IZ6ZT8+9HozcRAKG5OAWYry+R1JVmQ7rM+Er0+j6rYjg==","b":"6ff64707e758addca949a1fce3f880c8","v":"f434 8b436ceae890"}')+' initial-d-final-stage-01d.mp4';
})(jQuery);

Rezultatem otwarcia pliku html jest tekst zawierający rozszyfrowane linki dla JDownloadera. Trzeba potem ręcznie tekst zaznaczyć i skopiować do schowka. Tego etapu nie udało mi się zautomatyzować.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 12:46.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.