publikacja: 14 września 2011, autor: , komentarzy 40 http://wpninja.pl/artykuly/zakodowany-fragment-motywu-do-wordpressa/

Zakodowany fragment motywu do WordPressa

Zakodowany fragment motywu do WordPressa

Pobierając motyw do WordPressa z podejrzanych źródeł powinniśmy liczyć się z niemiłymi niespodziankami. Jedną z nich może być zakodowany fragment kodu, który bez naszej wiedzy przekazuje dalej poufne dane. Warto wiedzieć jak zidentyfikować taki fragment, jak go rozkodować i wyplewić ewentualne chwasty.

Feralny motyw

Zgłosił się do mnie ostatnio jeden z czytelników strony wraz z prośbą o pomoc w odszukaniu pewnej frazy w motywie, którą chciał przetłumaczyć. Okazało się, że sam nie mógł tego znaleźć, ponieważ fragment, w którym się znajdowała był zakodowany.

Motywem był GamersCosmos, który został pobrany ze strony Free WordPress Theme Album (niestety pierwotna lokalizacja nie jest już dostępna).

Identyfikacja zakodowanego fragmentu

Osoby, które próbują ukryć część kodu, wykorzystują do tego najczęściej dwie funkcje PHP – base_64_decode oraz eval. Trzeba więc sprawdzić czy przypadkiem nie znajdują się one w plikach motywu. Można do tego użyć specjalnego programu, który wyszukuje dany ciąg znaków. Osobiście używam do tego typu czynności starego, dobrego Agenta Ransacka.

Program znalazł wywołanie obu wspomnianych funkcji w pliku footer.php:

$_F=__FILE__;$_X='Pz48ZDR2IDRkPSJiMnR0Mm0tYyI+PC9kNHY+PC9kNHY+PCEtLSAjYzJudDE0bjVyIC0tPg0KDQo8ZDR2IDRkPSJmMjJ0NXIiPjxkNHYgY2wxc3M9IndyMXAgY2w1MXJmNHgiPg0KCTxkNHYgY2wxc3M9ImJsMmNrIGY0cnN0IiA0ZD0icjVjNW50LTVudHI0NXMiPg0KCQk8aGEgY2wxc3M9ImJsMmNrLXQ0dGw1Ij5SNWM1bnQgUDJzdHM8L2hhPg0KCQk8M2w+DQoJCQk8P3BocCBtZHZfcjVjNW50X3Ayc3RzKGkpID8+DQoJCTwvM2w+DQoJPC9kNHY+DQoNCgk8ZDR2IGNsMXNzPSJibDJjayBsMXN0IiA0ZD0icjVjNW50LWMybW01bnRzIj4NCgkJPGhhIGNsMXNzPSJibDJjay10NHRsNSI+UjVjNW50IEMybW01bnRzPC9oYT4NCgkJPDNsPg0KCQkJPD9waHAgc3JjX3M0bXBsNV9yNWM1bnRfYzJtbTVudHMoaSkgPz4NCgkJPC8zbD4NCgk8L2Q0dj4NCg0KCTxkNHYgNGQ9ImYyMnQ1ci1sNG5rIj4NCgkJPHA+QzJweXI0Z2h0ICZjMnB5OyA8P3BocCA1Y2gyIGQxdDUoJ1knKTs/PiA8MSBocjVmPSI8P3BocA0KYmwyZzRuZjIoJ3M0dDUzcmwnKTsgPz4iIHQ0dGw1PSI8P3BocCBibDJnNG5mMignbjFtNScpOyA/PiI+PD9waHANCmJsMmc0bmYyKCduMW01Jyk7ID8+PC8xPiAtIDw/cGhwIGJsMmc0bmYyKCdkNXNjcjRwdDQybicpOyA/Pi48YnIvPg0KVzViIHM0dDUgcDJ3NXI1ZCBieSA8MSBocjVmPSJodHRwOi8vdzJyZHByNXNzLjJyZyI+VzJyZFByNXNzIENNUzwvMT4NCjFuZCAxIGZyNTUgdzJyZHByNXNzIHRoNW01IGQ1czRnbjVkIGJ5IDwxDQpocjVmPSJodHRwOi8vbW0yaDN0LmMybS9zMmM0MWwtZzFtNXMiPkYxYzViMjJrIEcxbTVzPC8xPi4NClNwMm5zMnI1ZCBieSA8MSBocjVmPSJodHRwOi8vbW0yaDN0LmMybS8iPk1NT1JQR3M8LzE+LCA8MQ0KaHI1Zj0iaHR0cDovL3d3dy5oMnN0di5jMm0iPlZQUyBIMnN0NG5nPC8xPiAxbmQgPDEgDQoNCmhyNWY9Imh0dHA6Ly93d3cuYzRydDV4aDJzdDRuZy5jMm0vIj5XNWJzNHQ1IEgyc3Q0bmc8LzE+PC9wPg0KCTwvZDR2PjwhLS0gL2YyMnQ1ci1sNG5rIC0tPg0KPC9kNHY+PC9kNHY+PCEtLSAjZjIydDVyIC0tPg0KPD9waHAgd3BfZjIydDVyKCk7ID8+DQo8L2IyZHk+DQo8L2h0bWw+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));

Dekodowanie czyli co ktoś chciał przed nami ukryć

Po rozbiciu kodu na oddzielne wiersze otrzymamy:

$_F=__FILE__;
$_X='Pz48ZDR2IDRkPSJiMnR0Mm0tYyI+PC9kNHY+PC9kNHY+PCEtLSAjYzJudDE0bjVyIC0tPg0KDQo8ZDR2IDRkPSJmMjJ0NXIiPjxkNHYgY2wxc3M9IndyMXAgY2w1MXJmNHgiPg0KCTxkNHYgY2wxc3M9ImJsMmNrIGY0cnN0IiA0ZD0icjVjNW50LTVudHI0NXMiPg0KCQk8aGEgY2wxc3M9ImJsMmNrLXQ0dGw1Ij5SNWM1bnQgUDJzdHM8L2hhPg0KCQk8M2w+DQoJCQk8P3BocCBtZHZfcjVjNW50X3Ayc3RzKGkpID8+DQoJCTwvM2w+DQoJPC9kNHY+DQoNCgk8ZDR2IGNsMXNzPSJibDJjayBsMXN0IiA0ZD0icjVjNW50LWMybW01bnRzIj4NCgkJPGhhIGNsMXNzPSJibDJjay10NHRsNSI+UjVjNW50IEMybW01bnRzPC9oYT4NCgkJPDNsPg0KCQkJPD9waHAgc3JjX3M0bXBsNV9yNWM1bnRfYzJtbTVudHMoaSkgPz4NCgkJPC8zbD4NCgk8L2Q0dj4NCg0KCTxkNHYgNGQ9ImYyMnQ1ci1sNG5rIj4NCgkJPHA+QzJweXI0Z2h0ICZjMnB5OyA8P3BocCA1Y2gyIGQxdDUoJ1knKTs/PiA8MSBocjVmPSI8P3BocA0KYmwyZzRuZjIoJ3M0dDUzcmwnKTsgPz4iIHQ0dGw1PSI8P3BocCBibDJnNG5mMignbjFtNScpOyA/PiI+PD9waHANCmJsMmc0bmYyKCduMW01Jyk7ID8+PC8xPiAtIDw/cGhwIGJsMmc0bmYyKCdkNXNjcjRwdDQybicpOyA/Pi48YnIvPg0KVzViIHM0dDUgcDJ3NXI1ZCBieSA8MSBocjVmPSJodHRwOi8vdzJyZHByNXNzLjJyZyI+VzJyZFByNXNzIENNUzwvMT4NCjFuZCAxIGZyNTUgdzJyZHByNXNzIHRoNW01IGQ1czRnbjVkIGJ5IDwxDQpocjVmPSJodHRwOi8vbW0yaDN0LmMybS9zMmM0MWwtZzFtNXMiPkYxYzViMjJrIEcxbTVzPC8xPi4NClNwMm5zMnI1ZCBieSA8MSBocjVmPSJodHRwOi8vbW0yaDN0LmMybS8iPk1NT1JQR3M8LzE+LCA8MQ0KaHI1Zj0iaHR0cDovL3d3dy5oMnN0di5jMm0iPlZQUyBIMnN0NG5nPC8xPiAxbmQgPDEgDQoNCmhyNWY9Imh0dHA6Ly93d3cuYzRydDV4aDJzdDRuZy5jMm0vIj5XNWJzNHQ1IEgyc3Q0bmc8LzE+PC9wPg0KCTwvZDR2PjwhLS0gL2YyMnQ1ci1sNG5rIC0tPg0KPC9kNHY+PC9kNHY+PCEtLSAjZjIydDVyIC0tPg0KPD9waHAgd3BfZjIydDVyKCk7ID8+DQo8L2IyZHk+DQo8L2h0bWw+';
eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));

Uwagę skupimy na ostatnim wierszu. Ciąg znaków znajdujący się w cudzysłowie przerzucimy do narzędzia dekodującego. W rezultacie otrzymamy następujący kod:

$_X=base64_decode($_X);
$_X=strtr($_X,'123456aouie','aouie123456');
$_R=ereg_replace('__FILE__',"'".$_F."'",$_X);
eval($_R);
$_R=0;
$_X=0;

Jak widać pierwszy wiersz to znowu dekodowanie:

?><d4v 4d="b2tt2m-c"></d4v></d4v><!-- #c2nt14n5r -->
 
<d4v 4d="f22t5r"><d4v cl1ss="wr1p cl51rf4x">
	<d4v cl1ss="bl2ck f4rst" 4d="r5c5nt-5ntr45s">
		<ha cl1ss="bl2ck-t4tl5">R5c5nt P2sts</ha>
		<3l>
			<?php mdv_r5c5nt_p2sts(i) ?>
		</3l>
	</d4v>
 
	<d4v cl1ss="bl2ck l1st" 4d="r5c5nt-c2mm5nts">
		<ha cl1ss="bl2ck-t4tl5">R5c5nt C2mm5nts</ha>
		<3l>
			<?php src_s4mpl5_r5c5nt_c2mm5nts(i) ?>
		</3l>
	</d4v>
 
	<d4v 4d="f22t5r-l4nk">
		<p>C2pyr4ght &c2py; <?php 5ch2 d1t5('Y');?> <1 hr5f="<?php
bl2g4nf2('s4t53rl'); ?>" t4tl5="<?php bl2g4nf2('n1m5'); ?>"><?php
bl2g4nf2('n1m5'); ?></1> - <?php bl2g4nf2('d5scr4pt42n'); ?>.<br/>
W5b s4t5 p2w5r5d by <1 hr5f="http://w2rdpr5ss.2rg">W2rdPr5ss CMS</1>
1nd 1 fr55 w2rdpr5ss th5m5 d5s4gn5d by <1
hr5f="http://mm2h3t.c2m/s2c41l-g1m5s">F1c5b22k G1m5s</1>.
Sp2ns2r5d by <1 hr5f="http://mm2h3t.c2m/">MMORPGs</1>, <1
hr5f="http://www.h2stv.c2m">VPS H2st4ng</1> 1nd <1 
 
hr5f="http://www.c4rt5xh2st4ng.c2m/">W5bs4t5 H2st4ng</1></p>
	</d4v><!-- /f22t5r-l4nk -->
</d4v></d4v><!-- #f22t5r -->
<?php wp_f22t5r(); ?>
</b2dy>
</html>

Natomiast drugi wiersz to podmiana znaków (w komentarzach znajduje się także obszerniejszy opis tego kroku):

?><div id="bottom-c"></div></div><!-- #container -->
 
<div id="footer"><div class="wrap clearfix">
	<div class="block first" id="recent-entries">
		<h2 class="block-title">Recent Posts</h2>
		<ul>
			<?php mdv_recent_posts(5) ?>
		</ul>
	</div>
 
	<div class="block last" id="recent-comments">
		<h2 class="block-title">Recent Comments</h2>
		<ul>
			<?php src_simple_recent_comments(5) ?>
		</ul>
	</div>
 
	<div id="footer-link">
		<p>Copyright &copy; <?php echo date('Y');?> <a href="<?php
bloginfo('siteurl'); ?>" title="<?php bloginfo('name'); ?>"><?php
bloginfo('name'); ?></a> - <?php bloginfo('description'); ?>.<br/>
Web site powered by <a href="http://wordpress.org">WordPress CMS</a>
and a free wordpress theme designed by <a
href="http://mmohut.com/social-games">Facebook Games</a>.
Sponsored by <a href="http://mmohut.com/">MMORPGs</a>, <a
href="http://www.hostv.com">VPS Hosting</a> and <a 
 
href="http://www.cirtexhosting.com/">Website Hosting</a></p>
	</div><!-- /footer-link -->
</div></div><!-- #footer -->
<?php wp_footer(); ?>
</body>
</html>

Reszta kodu nie jest już istotna, ma na celu utrudnienie wyciągnięcia danych poza zakodowanym fragmentem.

Tym sposobem uzyskaliśmy czysty kod motywu. Widać jak na dłoni co ktoś chciał przed nami ukryć – kod HTML znajdujący się w bloku „footer-link” to po prostu spamerskie odnośniki do różnych stron internetowych. Wystarczy teraz usunąć zbędne odnośniki i zastąpić zakodowany fragment odkodowaną wersją.

Konkluzja czyli wnioski na przyszłość

Tym razem zagrożenie nie było duże, ale zakodowany fragment równie dobrze mógł wysyłać nasze hasło na ustalony adres e-mail. Dlatego też warto:

  • Unikać podejrzanych stron udostępniających motywy. Najlepiej w nowe motywy zaopatrywać się z oficjalnego katalogu WordPressa lub bezpośrednio ze strony autora lub sklepu.
  • Przed uruchomieniem motywu sprawdzić czy nie zawiera on podejrzanych rzeczy a w szczególności zakodowanych fragmentów. Warto też posłużyć się specjalnymi wtyczkami takimi jak Exploit Scanner.
  • Nie skreślać motywu tylko dlatego, że posiada zakodowany fragment. W prosty sposób można go odkodować i usunąć niepotrzebne rzeczy. Nie ma też co obwiniać autora, bo to najczęściej dzieło osób trzecich.
  • Standardowo – nie używać tego samego hasła do wielu kont tak aby w przypadku kradzieży ograniczyć ewentualne straty.

Czy Wam też zdarzyło się natrafić na motyw z zakodowanym fragmentem?

Komentarze

  1. Łukasz Więcek 5 lat temu:

    Ja kiedyś trafiłem na zakodowany fragment, ale siedział tam tylko link do strony autora skórki. Pewnie zakodował tylko po to, żeby nieuczciwi użytkownicy nie usuwali linka ze stopki :)

    Ale sam byłem świadkiem tego, jak jedna koleżanka straciła swój cały blogowy dorobek przez taką skórkę. Oczywiście, jak to „blondynka”, przez kilka lat blogowania żadnego backupu nie robiła ;)

    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      No tak, warto też pamiętać o regularnie wykonywanej kopii bezpieczeństwa.

      odpowiedz
  2. Kapsel 5 lat temu:

    Ja to zazwyczaj robiłem prościej, tj. lokalizowałem zakodowany element (praktycznie zawsze stopka), wyświetlałem szablon tak jak jest, kopiowałem gotowy kod HTML podmieniając nim zakodowane źródło w szablonie.

    Taki kod mogę sobie już dowolnie edytować, choć oczywiście usuwać ze stopki autora itp. nie wypada :)

    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      Tak też można ale czasem (tak było w przypadku wspomnianego motywu) w zakodowanym fragmencie są też wywołania funkcji PHP (tutaj np. mdv_recent_posts i src_simple_recent_comments). Zwykły użytkownik raczej by nie doszedł do tego, że trzeba coś takiego akurat w danym miejscu wstawić więc musiałby się pogodzić z utratą części kodu lub funkcji.

      odpowiedz
    2. c0lin 5 lat temu:

      @Kapsel,

      Twój sposób jest chyba prostszy, sam go używam od dawna ;) Coś potrzebuje to nie muszę bawić się z PHP, bo w sumie tak czy tak będzie pokazywana stała treść i nic tutaj zmieniać się nie będzie, więc można bez problemów wklepać kod HTML. W Operze coś takiego jest wbudowane (PPM > Przegląd elementu), jak jest w innych to nie wiem (Chrome posiada coś takiego, ale trochę gorzej to wygląda moim zdaniem).

      Co do tematu, to nigdy nie spotkałem czegoś takiego, ale z pewnością chciałbym coś takiego mieć w swojej skórce, jeśli będę ją kiedyś sprzedawał – umieściłbym tam jedynie link do mojej strony i nick autora :)

      odpowiedz
    3. Ola 5 lat temu:

      Temat rzeka, sama popełniłam podobny wpis jakiś czas temu.

      Odnośnie licencji wymagającej pozostawienie linków w stopce, spotkałam się z opiniami, że taki zapis jest niezgodny z licencją jaką WordPress „narzuca” na szablony i wtyczki. Ale osobiście prawnikiem nie jestem, więc mogę tylko podpisać się pod radą, żeby darmowych szablonów szukać tylko w oficjalnym repozytorium.

      @Kapsel
      Metoda którą opisałeś jest w wielu przypadkach skuteczna, niemniej jednak można się na niej przejechać. Spotkałam kiedyś szablon, który po usunięciu spamerskich linków ze stopki wyświetlał odwiedzającym na stronie informację, że autor bloga ukradł szablon :)

      Pozdrawiam!

      odpowiedz
    4. Łukasz Więcek 5 lat temu:

      @Ola – WordPress narzuca jedynie swoje zasady gry dla wtyczek i motywów wrzucanych do ich katalogu. Wątpię (pewności nie mam), czy WP może narzucać cokolwiek developerom, którzy umieszczają swoje dzieła na swoich stronach.

      odpowiedz
    5. Szymon Skulimowski 5 lat temu:

      Może :-).

      odpowiedz
  3. Edyta Floras 5 lat temu:

    Szymonie, zwróciłeś uwagę na kilka bardzo ważnych kwestii.

    Jak można wywnioskować z Twojego tekstu – darmowe szablony, wcale nie są takie darmowe (zresztą jak cała masa pozornie darmowych towarów czy usług)

    – ktoś powrzuca linki do swoich stron (autora akurat rozumiem i ten link powinno się zostawić),
    – ktoś będzie chciał zaciągać dane ze strony
    – a jeszcze zechce dostać się na Twój serwer i wykorzystać go w swoich celach.

    Dlatego, moim zdaniem warto zainwestować we własny szablon – wbrew pozorom, nie są to duże pieniądze, a możne mieć własne logo, układ dopasowany do potrzeb i linki do tych osób, z którymi chcemy współpracować .

    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      Zgadzam się, że własny motyw to najlepsze rozwiązanie ale często brakuje czasu, chęci, wiedzy lub funduszy na takie działania.

      odpowiedz
  4. frywolna 5 lat temu:

    Większość darmowych ma takie kwiatki… trzeba uważać z jakiej strony ściąga się motywy, bo tak naprawdę bezpiecznych jest niewiele.

    odpowiedz
    1. c0lin 5 lat temu:

      Ja swój przeglądałem cały i nie ma tam niczego niepokojącego :) No, poza tym, że nadal nie ogarniam w pełni tak zaawansowanego PHP, jaki występuje w Wordpressie i szablonach :( W wielu miejscach nie rozumiem połowy, ale są też momenty, gdzie wszystko jest dla mnie jasne – taki właśnie jest mój obecny styl (jedynie functions.php to dla mnie czarna magia O.o)

      odpowiedz
  5. amistad18 5 lat temu:

    Niektóre szablony w licencji mają zastrzeżone, iż są udostępnione za darmo, a ceną tego jest pozostawienie linków w stopce.

    Inna sprawa, sporo stron które udostępniają całą masę szablonów z themeforest, elegant themes, woo themes etc, doklejają do kody takie kwiatki, albo i nawet lepiej. Widziałem już kody które adresy email z komentarzy i z rejestracji użytkowników zbierały, lub też nawet były swoistym backdorem do konta admina. Nie spotkałem się z darmowymi szablonami które by miały syf, natomiast te płatne, zakupione i piracone – bardzo często mają dodatki. Takim osobom nie współczuję syfu, jak ktoś kradnie szablony zamiast zapłacić niemal że grosze w stosunku do otrzymanej pracy, to ma spore szanse że dosięgnie go sprawiedliwość :)

    Osobiście uważam że rzadko kiedy zakodowane fragmenty są jakimś syfem, najczęściej jest to link do strony autora, lub dodatkowe linki – i to powinno zostać jeśli się chce używać szablon za darmo.

    Sam wpis ciekawy, i w miarę dobrze wytłumaczone … lecz sposobów na skomplikowanie zakodowanego kodu jest masa, i bez podstaw php raczej mało użytkowników będzie w stanie wykorzystać ten poradnik dla ich zakodowanych fragmentów kodu, o ile nie będą one zapisane w podobny sposób – i szczerze powiem że mnie to trochę pociesza :)

    odpowiedz
  6. Łukasz 5 lat temu:

    Mam pytanie. Nie rozumiem kwestii podmiany linków. O ile dostałem wynik z dekodowania ?>… to nie wiem jak to podmienić na właściwą składnię. Co należy powklejać na tej stronie PHP string functions? Z góry dzięki za sugestie.

    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      Domyślam się, że chodzi o tą konkretną linijkę:

      $_X=strtr($_X,'123456aouie','aouie123456');

      Funkcja strtr służy do podmiany znaków w dowolnym ciągu. Przyjmuje ona trzy argumenty, oddzielone od siebie przecinkami – pierwszy to ciąg, który będzie poddany obróbce, drugi to znaki źródłowe a trzeci to znaki docelowe.

      Korzystając z narzędzia online trzeba więc uzupełnić pole $string o wartość zmiennej $X (to co wcześniej odkodowaliśmy), $from o 123456aouie a $to o aouie123456.

      Czyli tak jak na poniższym zrzucie ekranowym:
      http://img.wpninja.pl/2011/09/strtr.png

      odpowiedz
    2. Łukasz 5 lat temu:

      O… teraz wszystko jest dla mnie jasne. Dziękuję za wyjaśnienie i serdecznie pozdrawiam!

      odpowiedz
  7. sooger 5 lat temu:

    „Przed uruchomieniem motywu sprawdzić czy nie zawiera on podejrzanych rzeczy”
    Co do tego, warto sprawdzić skórkę nie na żywym organizmie tylko najlepiej postawić kopie bloga na localhost dopiero wtedy odpalić wtyczkę.

    odpowiedz
  8. Adam 5 lat temu:

    Jakiś czas temu kupiłem template. Teraz pod wpływem artykułu przeskanowałem WP i otrzymałem wyniki, których sam nie potrafię zinterpretować.

    Czy ktoś zechce mi pomóc?
    Mój adres: kamien8-małpka-poczta.onet.pl

    odpowiedz
  9. Kuba Mikita 5 lat temu:

    Tego szukałem podczas przeczesywania plików szablonu LightWord. W stopce mam właśnie niechciane linki, do których przynajmniej chcę dać nofollow. Mam nadzieję, że z tym wpisem się uda ;)

    odpowiedz
    1. Szymon Skulimowski 5 lat temu:

      Pewnie kolejne kroki nie pokryją się w 100%, ale masz znajdziesz tu odnośniki do przydatnych narzędzi wraz z ogólną wskazówką „co i jak”. Powodzenia!

      odpowiedz
    2. Kuba Mikita 5 lat temu:

      Sprawa była prostsza niż myślałem. Syf w stopce został dodany poprzez pliki językowe

      odpowiedz
  10. Duke 5 lat temu:

    Człowieku szukałem tego artukułu już chyba z mieśiąc i widzę że to on znalazł mnie ;) Zostałem przekierowany z jakiegoś innego blogu. (Dzięki Bogu że tutaj trafiłem) :)

    odpowiedz
    1. Duke 5 lat temu:

      Dobra nie czaje tego, Nie wiem jak się obsłużyć tym programem do odkodowania

      odpowiedz
    2. Szymon Skulimowski 5 lat temu:

      Jeśli chodzi o http://base64-encoder-online.waraxe.us/ to nie ma tam raczej zbyt wielkiej filozofii – trzeba wkleić tam zakodowaną treść (np. V1BOaW5qYQ==) i kliknąć na „Decode data”.

      odpowiedz
  11. Szymon Skulimowski 5 lat temu:

    Dostałem od jednego z czytelników fragment zakodowanego kodu, który dodatkowo używał funkcji gzinflate (jeszcze bardziej utrudnia odczytanie). Poniżej przesyłam adres bardzo fajnej strony za pomocą, której można to „odkodować”: http://www.base64online.com/#decode_base64_gzinflate

    odpowiedz
  12. Lulu 4 lata temu:

    Mam pytanie o aspekt prawny usuwania linku do autora darmowego szablonu. Czy ktoś się orientuje, jak to wygląda od strony prawnej? Nie pytam o kwestie uprzejmości wobec autora, czy o dobre maniery, ale o fakty. Chodzi o to, co prawo mówi na temat licencja open source, na której oparty jest WordPress – z tego, co czytałam, to licencja GPL nie pozwala autorom szablonów zabraniania ludziom usuwania ich linku ze stopki – innymi słowy, usunięcie linku nie jest łamaniem prawa. Jeśli szablon jest dostępny na licencji GPL – a szablony WordPress muszą być na takiej licencji udostępniane – użytkownik może z nim robić, co mu się podoba, łącznie z usuwaniem linku do autora szablonu. Czy tak? Czytałam też, że open source oznacza brak zastrzegania produktów opartych o WordPress prawami autorskimi przez autorów.

    Dlaczego pytam? Bo interesuje mnie ten aspekt prawny, a nie wiem, czy to, o czym piszę, a co znalazłam w internecie, jest wiarygodną informacją. Czy ktoś ma rzetelną wiedzę na ten temat? Byłabym wdzięczna za odpowiedź.

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Z tego co wiem to jest tak jak piszesz – można usunąć odnośnik autora, który znajduje się np. w stopce, ale nie można tego samego zrobić z plikami źródłowymi (czyli w przypadku motywów – style.css).

      odpowiedz
  13. Marek 4 lata temu:

    A z tym usuwaniem ze stopki linków kierujących na stronę autora nie jest czasem tak, że skoro szablon jest udostępniony na licencji GNU, to możemy go autorsko zmieniać i dalej np. udostępniać na tej samej licencji, czy mylę się?

    odpowiedz
    1. Marek 4 lata temu:

      Mój poprzedni komentarz nieaktualny, odpowiedź umknęła mojej uwadze :) Chyba, że jest jakaś różnice w sensie zabraniania usuwania linków ze stopki pomiędzy GNU 2 a 3?

      odpowiedz
    2. Szymon Skulimowski 4 lata temu:

      Nie jestem pewien, ale wątpię żeby coś w tej kwestii się zmieniło pomiędzy wersją 2 a 3.

      odpowiedz
  14. DUKE 4 lata temu:

    A jak mam coś takiego?

    http://wklej.org/id/959489/

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Robisz tak:

      1. Szukasz wystąpień „eval” i przenosisz je do oddzielnych wierszy.
      2. Każdy z wierszy kopiujesz i wrzucasz do dekodera: http://matthewfl.com/unPacker.html
      3. Sklejasz odkodowaną treść w całość:
      http://wklej.org/id/959525/

      odpowiedz
    2. DUKE 4 lata temu:

      Co mam usunąć żeby po usunięciu oryginalnego footera nie wyświetlało mi się „Please return the links to the footer!” ?

      ściągnąłem darmowy styl, przerobiłem go w całości od A do Z, nie tylko od strony graficznej i został tylko ten nieszczęsny footer i krzyczy gdy coś z nim zrobię.

      footer.php –> http://wklej.org/id/959670/

      odpowiedz
    3. Szymon Skulimowski 4 lata temu:

      Ten komunikat znajduje się w odkodowanym fragmencie :)

      odpowiedz
    4. DUKE 4 lata temu:

      Aaaa dziękiiiii właśnie zobaczyłem :) Pozdrawiam

      odpowiedz
    5. DUKE 4 lata temu:

      Coś mi nie idzie, mój motyw to http://smthemes.com/demo/cookingbook/
      Jakieś rady?

      odpowiedz
    6. Szymon Skulimowski 4 lata temu:

      Ale co konkretnie Ci nie idzie? Usunięcie komunikatu „Please return the links to the footer!”?

      odpowiedz
    7. DUKE 4 lata temu:

      Usunąłem to z zakodowanego fragmentu, wkleiłem resztę co zostało do smthemes.js, usunąłem z stopki linki reklamujące i dalej mi wczytuje ten komunikat.

      odpowiedz
    8. Szymon Skulimowski 4 lata temu:

      Czy po wprowadzeniu zmian przeczyściłeś pamięć podręczną w przeglądarce?

      Ten motyw to ogólnie niezły kaszanka i takich „zabezpieczeń” jest takm chyba dużo więcej. Nie zastanawiałeś się nad przesiadką na coś innego?

      odpowiedz
    9. Paweł Knapek 3 lata temu:

      Potwierdzam, SMThemes to generalnie od lat kaszana – lepiej unikać.
      Kod marnej jakości, do tego masa kodowanych wstawek.

      Zawierają też dodatkowe zabezpieczenia np. przed modyfikacją stopki zaszyte głębiej w plikach – zwykle również zakodowane. Jest to sprawdzenie rozmiaru pliku, ilości znaków, lub porównanie stringów etc. – zależy od konkretnego motywu i jego wersji.

      Całkowite „odblokowanie” takiego motywu jest jak najbardziej możliwe, tylko ma mały sens. Lepiej poświęcić czas na poszukanie innego, lepszego.

      odpowiedz

Dodaj własny komentarz