Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

O diodzie, co chodziła na skróty

Nie wiem czy się ze mną zgodzicie, ale uważam, że każdy dobry administrator powinien liznąć trochę wiedzy na temat programowania i wiedzieć, w jaki sposób ułatwić sobie życie pisząc mniej lub bardziej skomplikowane skrypty tudzież miniaplikacyjki. Tak samo zresztą uważam, że każdy szanujący się programista musi wiedzieć, jak skonfigurować sobie środowisko, w którym jego aplikacja będzie działać i powinien znać jego specyfikę - na przykład programując aplikacje webowe ASP.NET, powinien móc postawić sobie IISa, wiedzieć jak na zachowanie aplikacji wpłynie różna liczba procesów roboczych albo inny kontekst puli aplikacji. Powinien też wiedzieć, jak wyciągać logi sypiącej się aplikacji z serwera ;-)

Jeśli uważacie podobnie, to pewnie nie mieliście problemów z dzisiejszym zadaniem specjalnym ;-) Postanowiłem na zakończenie naszego konkursu zaserwować Wam kilka minut zabawy z PowerShellem, jednym z najlepszych moim zdaniem narzędzi (platform? środowisk?), jakie Microsoft wyprodukował w ciągu ostatnich kilkunastu lat. Połączenie systemowego wiersza poleceń bezpośrednio z .NET, ale także z takimi mechanizmami jak np. WMI (notabene coraz rzadziej już używanym dzięki temu, że sam PowerShell jest coraz mocniej zintegrowany z systemem) dało niewyobrażalne wręcz możliwości. Kod łatwo się pisze, nie ma na przykład obowiązku silnego typowania, bardzo łatwo też miesza się cmdlety systemowe z metodami .NET. Ot, przejrzysty nieład. Słowem - przyjemna alternatywa dla cmd.exe, gdzie żeby pobrać prosty plik trzeba było posiłkować się zewnętrzną aplikacją, zwykle wgetem, nie wspominając o wykorzystaniu pętli typu foreach czy przetwarzaniu wyników poleceń typu dir ;-)

No, ale dość już tego gadania. Nie każdemu PowerShell może się podobać, dlatego dzisiejsze zadanie można było rozwiązać na dwa sposoby - "z" PowerShellem i "bez". Zacznijmy od sposobu "z", aka "skomplikowanego". W końcu jak mawiał Sam Fisher, sometimes you just have to do things the hard way...

PowerShell dla opornych

Przeanalizujmy więc sytuację. Mamy do dyspozycji dwa pliki: skrypt.zip oraz dioda2.zip. Rozpakowujemy oczywiście oba, nie może być inaczej. W pierwszym znajduje się skrypt PowerShella o nazwie dioda.ps1, w drugim - dysk maszyny wirtualnej dioda2.vhdx. Od razu tłumaczę, że zadanie nie jest może przesadnie skomplikowane, ale zawiera przesadnie sporo ślepych uliczek ;-) Jedną z nich jest wspomniany plik VHDX. Jak na pewno wiecie jako wytrawni gracze diodowi, format ten jest nowością w systemie Windows Server 2012 oraz Windows 8. Oznacza to, że aby go zamontować i zobaczyć, co jest w środku, potrzebujemy jednego z tych systemów - może być na maszynie wirtualnej. Jeśli ktoś spróbuje jednak zamontować dysk w Windows 8, spotka go niespodzianka w postaci nieobsługiwanego systemu plików - ReFS. Jest on dostępny tylko w Windows Server 2012.

Jeśli ktoś ma pod ręką maszynę wirtualną z Windows Server 2012, do czego zachęcaliśmy wielokrotnie ;-) to nie miał problemu. Zanim jednak stracimy 30 minut na postawienie systemu tylko po to, by przeczytać głupi wierszyk ;-) sprawdźmy lepiej, co kryje skrypt PowerShella...

Skrypt łamie wszelkie dobre praktyki czytelnego kodu ;-) Niemniej mamy tu kilka istotnych informacji. Po pierwsze, tworzony jest obiekt .NET WebClient i za jego pomocą pobierany jest plik dioda.zip. Po drugie, katalogiem roboczym dla wszystkich operacji wydaje się być C:\dioda4ever, ale jest on zawsze na początku skryptu tworzony od nowa. Tuż przed zakończeniem z kolei odpalany jest jakiś plik exe z parametrem. Spróbujmy po prostu wykonać skrypt tak jak jest i zobaczyć, co się stanie:

Ups, wygląda na to że w naszym systemie nie zezwolono na wykonywanie niepodpisanych skryptów pochodzących z Internetu. Zmieńmy to.

Set-ExecutionPolicy Unrestricted

Teraz możemy wykonać skrypt. Niestety w skrypcie przed pętlą foreach znajduje się instrukcja cls, która czyści ekran i uniemożliwia nam obejrzenie błędów. Wykomentujmy ją zatem stawiając na początku wiersza znak #. Można też oczywiście po prostu usunąć wiersz, dobry programista tego jednak tak pochopnie nie robi ;-)

Dwa błędy. Pierwszy w operacji $d.CopyHere i drugi przy usuwaniu pliku. Możemy teraz po kolei przechodzić przez wszystkie zmienne i podstawiać, aż dojdziemy do wniosku, że skrypt usiłuje rozpakować plik dioda2.zip. Możemy też od razu założyć, że o ten plik chodzi, patrząc na ściezkę, z której skrypt usiłuje usunąć ten właśnie plik. Tak czy inaczej, musimy go dostarczyć - najwyraźniej jest niezbędny, zresztą tak sugeruje też treść zadania. Wykomentujmy więc tworzenie i usuwanie folderu w skrypcie, a folder stwórzmy sami. Skopiujmy też do niego plik dioda2.zip. Samo skopiowanie pliku do istniejącego folderu nie wystarczy, bo skrypt przy kolejnym uruchomieniu odtworzy katalog.

Uruchamiamy skrypt i...

Naszym oczom ukazuje się właściwy wynik działania skryptu. Okazuje się, że pobierany plik dioda.zip zawiera spakowane narzędzie (exe) do generowania sum kontrolnych (hashy). Skrypt nie robi nic innego jak generuje sumę kontrolną MD5 pliku VHDX, który rozpakowywany jest z archiwum dioda2.zip. Treść zadania informuje, że odpowiedzią jest 128-bitowy ciąg znaków. Ta definicja pasuje do hasha MD5, który właśnie z tylu bitów się składa (i przez to jest mało bezpieczny, bardzo narażony na kolizje). Jeśli ktoś wpadł na pomysł, że może chodzić o reprezentację binarną tego hasha, to z błędu powinien wyprowadzić go formularz, który nie przyjmował ciągów dłuższych niż 32 znaki. Zresztą, aż takim sadystą nie jestem - już to wielokrotnie podkreślałem ;-) Z drugiej strony konwersja MD5 do postaci binarnej jest banalnie prosta w PowerShellu dzięki wykorzystaniu .NET.

Na skróty ze skrótem

No dobra, a jak _należało_ to zrobić? :-P Zadanie sugerowało, że analiza skryptu PowerShella wcale nie jest potrzeba do rozwiązania zadania. Można było wziąć plik VHDX i iść na skróty. Skrót nawiązuje tu oczywiście do hasha, czyli funkcji skrótu :-) Inaczej mówiąc, to zdanie informuje, że wystarczy wygenerować hash pliku VHDX. Jaki hash? 128-bitowy :-) Pytanie tylko, czy na pewno chodzi o MD5, bo 128-bitowych hashy jest kilka. Tu nie ma żadnej podpowiedzi. Żaden algorytm generujący 128-bitowy hash nie jest jednak tak popularny jak MD5. Na tym polegało owo ryzyko. Kto je podjął, zyskał zapewne sporo czasu. Była to doskonała furtka dla osób z dalszych miejsc w rankingu, którzy w ten sposób mogli postawić wszystko na jedną kartę i dużo zyskać.

Ale, ale, Panie i Panowie, strzelać trzeba z głową ;-) Niestety wielu uległo pokusie bez uprzedniego namysłu i poszło na skróty "za bardzo". W efekcie część z Was podawała jako odpowiedź hash MD5, ale nie tego pliku co trzeba. Trafiło się kilka hashy pliku ZIP zawierającego dysk VHDX (a wyraźnie mowa była o pójściu na skróty z samym plikiem VHDX). Niektórzy hashowali... aplikację hashującą :-) Część z Was podawała jeszcze inne sumy, być może nawet właściwego pliku: ale np. po jego zamontowaniu i odmontowaniu w systemie, co powoduje niestety modyfikację pliku dysku i zmianę hasha... Tymczasem skrypt celowo za każdym razem na nowo rozpakowywał plik, aby zagwarantować integralność pliku VHDX. No cóż, zapewne po szybkim wysłaniu pytania i posiedzeniu nad PowerShellem kilka(naście) kolejnych minut, wielu pluło sobie w brodę... Przyznać się, kto od razu wygenerował poprawny hash MD5 pliku VHDX bez korzystania ze skryptu? ;-) A kto bez oglądania skryptu? ;-))))

Niektórzy próbowali też iść na "częściowe skróty" i po ujrzeniu adresu http://dioda4ever.dobreprogramy.pl/dioda.zip w skrypcie, wpisywali ten adres po prostu w przeglądarkę tylko po to, by otrzymać błąd 404. No cóż, przydał się tu moduł Request Filtering w IIS, w którym wycięliśmy wszystkie wywołania z nagłówkiem User-Agent większym od 0. WebClient domyślnie go nie wysyła, Wasze przeglądarki w większości tak :-)

I to by było na tyle...

Bardzo dziękuję wszystkim za wspólną zabawę, bo przyznam, że przy zadaniach specjalnych bawiłem się - mam nadzieję - równie dobrze jak Wy ;-) Na oficjalne rozstrzygnięcie i gratulacje przyjdzie naturalnie czas, ale już teraz na łamach bloga gratuluję: nie tylko zwycięzcom, ale przede wszystkim tym, którzy dotrwali do końca tego wyjątkowego, nieraz dającego mocno w kość konkursu :-))))

Pamiętajcie: dioda4ever! :-) 

windows programowanie serwery

Komentarze

0 nowych
underface   14 #1 08.10.2012 00:07

i tym oto sposobem znalazłem się w top100;p a 50 była tak blisko - niestety kilka zbyt szybkich decyzji i nieco brak czasu ;p a bym może był wyżej;p
konkurs fajny - ale faktycznie te 4 tygodnie to masakrycznie długi czas

przemol96   5 #2 08.10.2012 00:07

U mnie się skończyło na wykonaniu czegoś takiego
"C:\Users\Przemek\Desktop\dioda.zip.exe -type fciv.exe dioda.vhdx"

I co najważniejsze działało :)

Autor edytował komentarz.
Songokuu   14 #3 08.10.2012 00:07

Czyli nic nie wygrałem...
...no ale to Dioda :)
Gratulacje dla zwycięzców!

smagus   4 #4 08.10.2012 00:08

pokonales mnie ostatnim zadaniem specjalnym, za cholere nie moglem sie domyslic o co chodzi...;) odpowiedzialem "dobreprogramy.pl" strzelajac... po zamianie adres ma rowniez 128 bitow :P

  #5 08.10.2012 00:08

Dlaczego na
http://konkurs.dobreprogramy.pl/Ranking,7pa%C5%BA2012.html
Pierwsza trójka nie ma nagród?
Wydawało mi się, że w tym tygodniu pierwsze trzy osoby dostają nagrody, nie tylko pierwsza...

masakra   5 #6 08.10.2012 00:09

No to ja z tych co to zahaszowali aplikację haszującą :) I niestety przez ten błąd spadek o 10 miejsc, ale zostałem w TOP30 :) Gratulacje dla wszystkich, którzy wytrwali do końca :)

Dimatheus   21 #7 08.10.2012 00:09

Hej,

A ja szukałem standardowo drugiego dna, łącznie z konwertowaniem hash'a na ASCII. :) Ale jak zaczynały się bzdury, to stwierdziłem, że wkleję sam hash jako odpowiedź. To było za proste - a jednak! Wychodzi na to, że czasem prostota jest najprostsza. :P

Pozdrawiam,
Dimatheus

underface   14 #8 08.10.2012 00:10

a co do zwycięzców ;p to gratuluje djfoxer, mordzio i max1910 - wiele pracy was to kosztowało;p no i dodatkowo cieszy fakt, że wygrali stali "bywalcy" portalu, którzy czynnie się udzielają

tskr   4 #9 08.10.2012 00:10

Nie patyczkowałem się ze skryptem i wygenerowałem od razu hash pliku vhdx. Ino nie świeżego a tego który montowałem i system mi go zmodyfikował.

Banalnie proste zadanie, udało mi się spieprzyć w 10 minut :P

A na postawienie wirtualnego serwera 2012 nie potrzeba aż 30 min. W usłudze Azure tworzy się taki poniżej pięciu minut.

Autor edytował komentarz.
mkwm   3 #10 08.10.2012 00:11

Przyznam, że zadanie całkiem ciekawe, a zgubiło mnie właśnie zamontowanie obrazu (być może dlatego, że ze względów czysto wydajnościowych na Linuksie mam zamontowane wszystkie systemy plików z opcją noatime - czyli "nie aktualizuj daty ostatniego dostępu"). Szczęśliwie, po trzech błędnych odpowiedziach nie liczyłem się już w dalszej rywalizacji, więc nie żal tego że się pospieszyłem ;-) Swoją drogą, w ogóle nie zauważyłem ReFS, ale to niespecjalnie dziwne skoro pracowałem na przygotowanym specjalnie "na diodę" Windows Server 2012.

Co do próby pójścia na "częściowe skróty" - po otrzymaniu 404 domyśliłem się, że jest jakieś filtrowanie, ale zostawiłem je na później. Przez "patchowanie" skryptu uzyskałem plik dioda.zip.exe, po protestach systemu (plik w użyciu!) odmontowałem obraz dysku i policzyłem jego hash (jak wiadomo, stał się błędny). Dopiero później dokładniej przeanalizowałem skrypt i użyłem go "jak trzeba", odkrywając swój błąd :D

Trochę telnetu na port 80 i już wiedziałem, że jest filtrowanie po User-agent (a raczej - po jego obecności).

Autor edytował komentarz.
Icari   1 #11 08.10.2012 00:14

Mała uwaga ;p udało mi się zamontować vhdx pod Windows 8 release Preview;p więc jest to możliwe.
jak? Wystarczyło zainstalować Hyper-V spod komend cmd bo nie ma możliwości zainstalowania jej z add Windows features. i aby użyć ReFS pod win8 trzeba ściągnąć paczkę dostępną w necie i skopiować odpowiednie pliki do odpowiednich katalogów w c:/windows.
Ale nie wiele mi to dało heh.
Gratuluję pomysłowości ;)

DawidS28   1 #12 08.10.2012 00:16

Świetne zadanie. Dużo pomogła wcześniejsza nauka PowerShella. Dzięki za miesiąc z Diodą. A teraz czekam na kartę pamięci i koszulkę. :)

Areh   16 #13 08.10.2012 00:18

A ja miałem poprawną odpowiedź. Właśnie sprawdziłem, a w odpowiedzi diodowej brakuje mi "b" na końcu :(.
Czyżbym źle skopiował? Taki głupi błąd.

okokok   12 #14 08.10.2012 00:19

Ja to zrobiłem inaczej.
Odpaliłem (PPM -> Odpal w PałejSzel) ten skrypt. Wyświetliło się coś na czerwono. Przeczytałem skrypt (w sumie to najpierw) i zobaczyłem zmienną z C:\dioda4ever. Znalazłem tam plik dioda.zip.exe i odpaliłem w cmd. Okazało się że to jakiś generator hashów. Skopiowałem do katalogu dioda4ever plik obrazu i wygenerowałem hash. Trwało to max. 2 min, ale wydawało mi się że poszło za łatwo, więc zacząłem grzebać w tych plikach... Później pomyślałem że trzeba było zrobić hasha od wierszyka...

Najłatwiejsze zadanie z diodą ever.

Liczę na kolejną diodę i dzięki za fajne zadania i kartę pamięci :)

hornet17   2 #15 08.10.2012 00:22

No cóż. Ja wpisalem hash pliku dontreadme.txt, który znajdował sie na dysku w pliku vhdx. Wg mnie było to bardziej chytre rozwiązanie,którego bym się spodziewał po Docecie. Zmylil mnie wierszyk i nazwa pliku,które sugerowały że nie chodzi o zawartość pliku tylko o cos innego np. jego hash). No i spodziewałem sie że zamontowanie pliku vhdx będzie warunkiem koniecznym (wreszcie przydałby się win 2012, który zainstalowałem). Wg mnie było to bardziej logiczne niz dorzucanie pliku do katalogu tworzonego skryptem. No ale cóż...nie na wszystko można wpaść. Ciekawe czy ktoś zrobił podobnie.

Tak czy inaczej konkurs był pierwsza klasa a zadania specjalne były wisienkami na torcie,nawet jeśli były za trudne ;) gratulacje dla wszystkich zwycięzców i całego zespołu DP!

kr2ysiek   6 #16 08.10.2012 00:22

Ja skryptu nie modyfikowałem, u mnie stworzył katalog, w nim ten pobrany dioda.zip.exe. Stwierdziłem, że ten skrypt nie działa do końca poprawnie. Uruchomiłem w cmd dioda.zip.exe, pokazała się informacja, że liczy skróty MD5. Przeczytałem jeszcze raz pytanie i za pomocą tej aplikacji wygenerowałem skrót dysku dioda.vhdx. Zajęło mi to aż do 15:45, ale zacząłem dopiero jakoś o 15:20. :D

przemor25   14 #17 08.10.2012 00:26

Informacja z ostatniej chwili: Konkus z diodą przedłużony o tydzień! ;)

smagus   4 #18 08.10.2012 00:28

o nie! Żona mnie zabije:D

tskr   4 #19 08.10.2012 00:30

kr2ysiek, postąpiłem dokładnie tak samo, ale po drodze jeszcze niechcący zmodyfikowałem plik vhdx. Błąd zauważyłem dopiero jak zacząłem naprawiać skrypt.

ufoshi   1 #20 08.10.2012 00:31

a ja to miałem przed sobą 4 godziny i było to zbyt oczywiste więc szukałem dalej ;] aż nie znalazłem nic

cayman3_11   3 #21 08.10.2012 00:34

Ja działałem na Fedorze, więc musiałem zgłębić tą binarkę. Przy pobieżnym przejrzeniu w hex edytorze zaczęło mi świtać, że to może być właśnie fciv, gnu strings to potwierdziło ;)
(Swoją drogą na jakiej fciv jest licencji, skoro taki Docent może go dystrybuować pod własną nazwą "dioda.zip.exe"? :P )


„Niektórzy próbowali też iść na "częściowe skróty" i po ujrzeniu adresu http://dioda4ever.dobreprogramy.pl/dioda.zip w skrypcie, wpisywali ten adres po prostu w przeglądarkę tylko po to, by otrzymać błąd 404. No cóż, przydał się tu moduł Request Filtering w IIS, w którym wycięliśmy wszystkie wywołania z nagłówkiem User-Agent większym od 0.”

Na szczęście wget dał radę :)
Kod 404 byłby dla mnie niezłą zmyłką.

WODZU   16 #22 08.10.2012 00:42

Wreszcie udało mi się zaliczyć zadanie specjalne :D Z tym że poszedłem bardzo długą drogą i bawiłem się w generowanie certyfikatów i podpisywanie skryptu :) Udało się jednak osiągnąć cel :) Serdecznie dziękuję za wciągający konkurs :) Mimo że niczego nie wygrałem to zabawa była przednia i wiele się nauczyłem :) Gratuluję zwycięzcom :)

Autor edytował komentarz.
DjLeo MODERATOR BLOGA  17 #23 08.10.2012 00:49

@Docent
Proszę Cię wyślij oficjalny alert konkursowy 20 minut przed wpisem oglaszajacym wyniki i podsumowaniem. Przeżyjmy to jeszcze raz:-)

Autor edytował komentarz.
DawidS28   1 #24 08.10.2012 01:05

DjLeo:
+1. Jestem jak najbardziej za. Co ja teraz mam robić, skoro już nie będzie Diody? :)

Over   9 #25 08.10.2012 01:23

Sprytnie wiedziałem ze poezja docenta ma nie jedno dno, ale dałem się złapać nie na tym dnie co nie trzeba było :)
Ale Gratki dla ciebie za inwencje twórczą no i za "chmury" którymi sie wspomagałeś zapewne ;)

Autor edytował komentarz.
wojtex   9 #26 08.10.2012 01:41

Na początku konkursu napisałem skrypt, który całkowicie zautomatyzował odpowiadanie na pytania typu A B C D.

Moje pytanie: czy mogę o tym napisać na blogu dobreprogramy ( w sensie czy to będzie zgodne z 'prawem' ;) ?

Autor edytował komentarz.
okokok   12 #27 08.10.2012 02:24

TuskVN, też myślałem o czymś takim, ale uznałem że samo używanie nie jest zgodne :D
Można było w końcu zebrać 4 osoby i napisać skrypt/program który z 4 różnych kont (każde bez nagrody) będzie odpowiedział za każdym razem zmieniając literę. Każda osoba musiała by po prostu jak najszybciej wpisać kaptacz. Przy założeniu że była by jedna nagroda dziennie, każda osoba po 4 dniach miała by kartę :D

Jeszcze raz dzięki za fajne zdania i kartę :)

dioda4ever

wojtex   9 #28 08.10.2012 02:38

okokok, no właśnie w tym problem ( lub nie ;), że mój skrypt automatycznie 'wpisywał' kod captcha, ale wierz lub nie - nie wpadłem na pomysł z czterema kontami :-(

Tak to bym miał już 20 kart pamięci 16GB... (bo ile to założyć 4 konta) ;p

Pzdr.

Autor edytował komentarz.
okokok   12 #29 08.10.2012 03:04

TuskVN, w sumie ten kaptacz to nie rekaptacz więc się coś takiego dało zrobić.
W czym ten skrypt?
Jeśli nie pozwolą ci tego udostępnić mógłbyś wysłać mi na maila (podałem w profilu)?

wojtex   9 #30 08.10.2012 03:15

okokok, skrypt w bash-u.

Jak nie wrzucę tego na bloga to wyślę Ci na maila :-)

Pzdr.

Szuri21   16 #31 08.10.2012 06:32

Ajć... Zmodyfikowało mi hash o jeden znak... Na końcu zamiast 7b pojawiło sie 6b...

skicio   7 #32 08.10.2012 07:25

Cieszy fakt, że zadanie rozwiązałem poprawnie, ale jeśli mam być szczery, to ta "bardziej skomblikowana" metoda wcale nie była specjalnie trudna. I powiem, że nawet nie trzeba było robić wszystkiego tego co tutaj Docent opisuje. Moje rozwiązanie polegało na:

- ściągnięciu plików,
- odblokowaniu wykonywania skryptów w PowerShell'u,
- odpaleniu ściągniętego pliku "dioda.zip.exe" w cmd,
- wygenerowaniu md5 dla dioda.zip.exe,
- dłuuuuuugim zastanawianiu się, że coś jest chyba nie tak,
- wygenerowaniu md5 dla dioda.vhdx

Oczywiście po drodze google działały bo bez tego pewnie bym się zatrzymał na nazwie "PowerShell". Ale żadnego "#" do skryptu nie dopisywałem, ani tym bardziej nic z niego nie usuwałem. Nawet nie wrzucałem pliku "dioda2.zip" do katalogu "dioda4ever".

Dlatego właśnie uważam, że zadanie było dość łatwe, a jedyny problem stanowiło dla mnie sformułowanie treści zadania. Myślałem, że plik vhdx potrzebny jest tylko tym, którzy wybierają drogę "na skróty". Jednak po krótkim dochodzeniu, oraz znalezieniu wierszyka (bo chyba się tu jeszcze nie pojawił):

"Tym razem nie szczeka żaden pies Cerber...
Plik już pobrany, rozwiązanie jest blisko
Niestety ten fakt to jeszcze nie wszystko."

stwierdziłem, że chyba jednak chodzi o hash właśnie tego pliku vhdx... jak teraz widzę- słusznie ; )))

Konkurs mi się bardzo podobał, choć zadania rozwiązywałem tylko rekreacyjnie. Respect dla Docenta za ciekawe pomysły i ich wykonanie.

Ave Dioda!

Mikuuuus   2 #33 08.10.2012 07:37

Kiedy będziecie pisać do wygranych o szczegóły wysyłki ?

Pablo79   11 #34 08.10.2012 07:55

No cóż wygrać sie nic nie udało, ale zabawę miałem świetną z tym konkursem. Co do wczorajszego zadania - eh szybki strzał no i niestety zemsciło się to pudłem. Ale pozycję w z poprzedniej edycji konkursu dioda w 3 setce obroniłem - 321 miejsce w rankingu.

Krakoo   4 #35 08.10.2012 08:18

No nie! Miałem ten hash, ale stwierdziłem, że to za proste/dziwne (spodziewałem się zbiegu okoliczności w postaci jakiegoś wyrazu w hashu, czy coś podobnego), a po drugie podpowiedź nie była jednoznaczna - link do dysku VHDX wskazywał na zipa i długo się zastanawiałem, o hash którego pliku chodzi (podejrzewałem zmyłkę, bo zazwyczaj sprawdza się hash pobranego pliku - czy się dobrze pobrał - a nie jego zawartości). W końcu doszedłem do wniosku, że w obu przypadkach chodzi o ten sam sposób hashowania, ma on 128 bitów, więc pewnie to jest odpowiedź...

No ale trudno, jak dla mnie trochę za dużo mało precyzyjnych wskazówek, ale fajnie było, w pierwszej 100 się jest, więc nie ma co płakać nad rozlanym kodem... znaczy mlekiem ;)

djfoxer   17 #36 08.10.2012 08:44

Pytanie było ciekawe. Na początku bez głębszego przeglądania skryptu, wiadomo było, że trzeba zrobić MD5, tylko dla którego pliku? :P Wcale nieszybka analiza skryptu (wręcz dość wolna) :P pozwoliła na wydedukowanie że chodzi o plik vhdx. Powershella zbytnio nie tykałem, ale widzę, że będę musiał nadrobić zaległości :) Dzięki :)

Dziękuję Redakcji, za możliwość uczestnictwa w konkursie i zdobytą wiedzę :)
Gratki dla Docenta, że wziął pod skrzydła ten konkurs i zaaplikował nam tak dużą dawkę emocji.
Dobrze, że już koniec bo 5 tygodni bym nie wytrzymał :P

hmmkot   8 #37 08.10.2012 09:07

ja zrobiłem to w ogóle na skróty - zajrzałem do skryptu odblokowałem wykonywanie, odpaliłem, zrobiło mi folder na c z zip.exe
tam zgrałem wszystkie pliki, odpaliłem jeszcze raz skrypt z c: - wywaliło błędy, ale poprosiło o nadpisanie .vxhd oraz zip.exe i na koniec wyrzuciło md5 dla pliku .vxhd - najwięcej czasu zajęło mi wymyślenie czy to koniec....

M@ster   16 #38 08.10.2012 09:25

Myląca była treść pytania, bo sugerowała że vhdx potrzebny jest tylko w drugiej ścieżce rozwiązania, a potrzebny był w obu. Ja to w ogóle najpierw walczyłem z zainstalowaniem PE na XP :P Potem skrypcik, jak się zorientowałem do czego ten exe służy to potem już wiedziałem czym jest odpowiedź, pytanie z jakiego pliku - jednak słusznie założyłem że słowo iść na skróty jest kluczem tego pytania ;) i że chodzi o vhdx.

marson1   12 #39 08.10.2012 09:51

konkurs fajny chociaż niestety zadania specjalne mnie rozwalily rowno, ale jestem z siebie dumny 97 miejsce to i tak niezle, acz bylem wyzej ale kilka bledow i jestem gdzie jestem ;)

tfl   8 #40 08.10.2012 10:34

Po rzucie oka w ps1 wiedzialem, ze trzeba sciagnac cos. Odpalilem, okazalo sie ze to checksum generator, popatrzylem sobie w ps1 i wiedialem, ze chodzi o vdhx (ls *x). Odpalilem wiec na plik z cmd i sprawdzalem po kolei pliki (sadzielem, ze ktorys z hashy moze byc bardziej ciekawy, gdyby okazalo sie, ze ls *x mnie wyprowadzil w pole. Swoja droga... gdyby sie docentowi udalo wygenerowac hash md5 o ze slowem DIODA to by bylo cos... z IPv6 sie udalo...) Potem juz tylko szybkie przeklejenie odpowidzi i Zapisz. Nastepnie czarna rozpacz. Bo przekleilem zly hash.

Czajo   10 #41 08.10.2012 11:14

ja to zrobiłem bardziej na ślepo, odpaliłem skrypt, zobaczyłem, ze coś pobrał i przez chwilę sie zastanawiałem do czego jest ten plik, chciałem już podawać sumę tego pliku, ale po przeczytaniu, że chodzi o dysk, podałem sumę dysku i trafiłem :D

max1234   10 #42 08.10.2012 15:23

Czemu nie pomyślałem, że hash MD5 dysku jest odpowiedzią? Nie wiem, a byłem tak blisko (skrypt wyrzucał mi kilka razy poprawną odpowiedź)...

Autor edytował komentarz.
Jaahquubel_   12 #43 08.10.2012 15:35

O zadaniu już wczoraj wyraziłem się entuzjastycznie. Było wspaniałe! Choć trochę proste.
A że akurat miałem pretekst do włączenia Windowsa, to i PowerShella mogłem odpalić.

Pętla na końcu skryptu wyraźnie (a widziałem kod powershellowy pierwszy raz w życiu) mówiła, że trzeba dioda.zip.exe wykonać na każdym (wszystkim jednym) pliku kończącym się na "x".

Najwięcej czasu w rozwiązaniu zajęło mi zjedzenie obiadu, przelogowanie się na Windowsa i zauważenie, że dioda.zip.exe nie ma się na czym wykonać. :)

edelmann   11 #44 21.11.2012 23:51

To zależy o jakim administratorze mówisz, można być laikiem jeśli chodzi o programowanie, a byś dobry w tym co się robi, bo np. taki administrator strony opartej o wordpress i zna go dobrze to jest administratorem wordpressa i wcale nie znaczy że będzie swoja pracę wykonywał źle, to samo tyczy się sklepów opartych o CMS jak np. Quickart czy Prestashop i wiele innych, a jeśli dodatkowo mamy wykupioną usługę hostingową to praktycznie o nic nie musimy się martwić poza dobrą znajomością budowy sklepu i modułów.

Jest różnica miedzy programistą z wykształcenia (informatykiem) a kimś kto się wszystkiego sam nauczył łącznie z SEO, dobry administrator to taki co dobrze wykonuje swoja pracę, musiałbyś podkreślić konkretną dziedzinę wiedzy, czyli np. administrator Microsoft System Center 2012.

Autor edytował komentarz.
  #45 12.04.2013 14:38

chyba pomylił tematy