Jak rozkodować zawartość pliku php


(Dawid11 1996) #1

Witam :slight_smile:

Jak rozkodować zawartość pliku php a potem znowu zakodować ?

Tutaj daję link do tego pliku : http://www.speedyshare.com/DBcHQ/cms.php

Próbowałem różnymi dekoderami base64 i tak nic . Jestem zielony w tych sprawach a najbardziej zależy mi żeby linijkę 34 odkodować bo mam błąd na stronie , że z tą linijką coś jest nie tak :slight_smile:

Proszę o pomoc ! :smiley:


(GioWDS) #2

Jestem w pracy więc nie za bardzo mam jak to sprawdzić, ale wydaje mi się, że jeśli w pierwszej linijce zmienisz eval na echo to wyświetli Ci się kod strony.


(Jim1961) #3

Chętnie pomogę, ale najpierw poproszę o wyjaśnienie co to ma wspólnego z hartamy(kropka)pl i do jakich celów Ci to potrzebne? Może być na PM :]


(Dawid11 1996) #4

Jim1961 , Napisałem PW :slight_smile:

GioWDS , a to mam zmienić i potem przez stronę otworzyć ten plik czy jak ?

Proszę o pomoc :smiley:


(ra-v) #5

Nie można pobrać, trzeba kupić premium? wrzuć gdzieś w łatwo dostępne miejsce.


(Dawid11 1996) #6

ra-v , można normalnie pobrać .


(Jim1961) #7

@kierek11

Czyżby problem dalej nie został rozwiązany? Wysłałem na PM przecież :confused:


(adpawl) #8

Nie wystarczy, nie ma tak łatwo. Zdekodowanie tego nie należy do prostych ani szybkich rzeczy.

Najpierw trzeba rozkodować sam dekoder - czyli kod php, po jego rozkodowaniu dopiero trzeba go odpowiednio zmodyfikować, wykonać i dla wyniku powtórzyć proces - bo całość jest chyba wielokrotnie przemielona (ma przynajmniej 2 poziomy).

Nie mam czasu na zabawę więc jedynie podpowiem jak zacząć

<?php $V000='8c25ebef217082cf1c947897bcbe7907';$V249='strrev';$V527='base64_decode';$V969='str_rot13';$V519=$V249('erapmoc_noisrev');$V786='phpversi'.$V249('no');$V276=$V249('emitorcim');$V839='chr';$V126=$V527('b2Jfcw==').$V527('dGFydA==');$V199=$V527('YmFzZQ==').$V969('64_qrpbqr');$V686='str_rot13';$V636='ob_get_contents';$V477='ob_end_clean';if($V519('4.3.0',$V786(),'>=')){echo 'This script requires PHP version 4.3.0 or higher ('.$V249(' si noisrev tnerruc').$V786().')';return;};$GLOBALS['V002']=$V276();$GLOBALS['V001']='';for($V451=0;$V451<=255;$V451++)$GLOBALS['V001'].=$V839($V451);eval($V527($V969('pzI0qKWhVPEJZGV2XPx7')));?>

-dla ułatwienia można sobie rozbić na linijki dając entery za średnikami.

Pierwszą zmienną z kluczem pomijamy, bierzemy $V249='strrev'; - dziwnie znajoma funkcja :wink:

-wiedząc, że zmienna $V249 zawiera nazwę funkcji, podmieniamy sobie wszystkie wystąpienia $V249 na strrev i tak np.

$V519=$V249('erapmoc_noisrev'); da nam $V519=strrev('erapmoc_noisrev');

...a wiedząc, że ta funkcja odwraca ciąg można to sobie z palca rozwiązać: $V519='version_compare'; itd.

Analogicznie wiedząc, że $V527='base64_decode'; - wiadomo, że $V126=$V527('b2Jfcw==').$V527('dGFydA=='); to nic innego jak:

$V126=base64_decode('b2Jfcw==').base64_decode('dGFydA=='); - tutaj można sobie np. w notepad++ zdekodować ciągi base64 i dostaniemy

$V126=base64_decode('ob_s').base64_decode('tart');

-już widać co tam jest, wystarczy wywalić funkcje i połączyć stringi: $V126='ob_start';

I tak dalej, i tak dalej...

Suma sumarum, pierwszy eval jedynie inicjuje bufor ( wywołuje return $V126(); czyli rozkodowane wyżej ob_start )

Właściwa funkcja dekodująca znajduje się pod tą sieczką, trzeba sobie tamten skrypcik też zdekodować jw. i dopiero tam będzie trzeba jeden z wewnętrznych evali ( dopiero po rozkodowaniu widać, że pierwszy eval wykonuje kod zawierający jeszcze inny eval ) zamienić np. na echo by wypluło "rozszyfrowaną" sieczkę.

....ale o ile dobrze kojarzę, to wypluje coś podobnego tj. znowu zagmatwany w podobny sposób php i kolejną porcję sieczki :stuck_out_tongue: