Praktyczna Inżynieria Wsteczna – moje wrażenia

Moje wrażenia z czytania książki „Praktyczna Inżynieria Wsteczna” redakcji M. Jurczyka i G. Coldwinda.

Na wstępie trzeba zaznaczyć, że „Praktyczna Inżynieria Wsteczna” jest książką o tyle ciekawą, że każdy rozdział jest pisany przez inną osobę, czyli mamy aż 12 autorów, a całość została zredagowana (i pewnie nieco ujednolicona) przez j00ru i Gyn’a. Ogólnie o książce można poczytać np na [stronie wydawcy].

Cała książka łączy w sobie tematy związane z inżynierią wsteczną związaną z Linuksami, Windowsami i pojawia się jeden rozdział o routerach. W przypadku zejścia na ten najniższy poziom mamy do czynienia z architekturami (rozpoczynając od najczęściej poruszanych) 64bit, 32bit (Intel) oraz MIPS (w rozdziale o eksploitacji routera). Zachowanie takich proporcji mnie cieszy, bo w końcu mamy okazję poczytać ciekawe artykuły skupiające się głównie na architekturze 64 bitowej, a nie jak to zazwyczaj bywa – 32 bitowej. Za to zupełnie zabrakło architektury ARM, która robi się co raz bardziej popularna w urządzeniach codziennego użytku.

Całość jest tak poprowadzona, aby poziom kolejnych rozdziałów rósł co jest dobrym zabiegiem dzięki czemu nawet mniej obeznana osoba w temacie (np ja (; ) mogła bez większego problemu śledzić i mniej więcej rozumieć co się dzieje w poszczególnych rozdziałach.

Z racji, że mamy do czynienia z tak dużą ilością autorów, to ciężko jest mi jednoznacznie powiedzieć że podoba mi się styl pisania autorów – każdy pisał nieco inaczej. Osobiście bardzo przypadła mi konwencja stosowana przez autora 2 rozdziału (Grześka Antoniaka), a więc każde wspomnienie o danej komendzie systemowej Linuksa wiązało się z umieszczeniem z w nawiasie nr-u rozdziału w man’ie wspominającym o danej funkcjonalności, np zapis readelf(1) oznaczał, że daną informację można znaleźć wpisując w terminalu: man 1 readelf .

Z kolei jeżeli chodzi o zaciekawienie to najlepszymi artykułami wydał mi się artykuł Marcina Hartunga o inżynierii odwrotnej platformy .NET oraz Hasherezade o wstrzykiwaniu procesów na systemie Windows. Najgorzej mi się czytało rozdział od Michała Kowalczyka oraz o dziwo od Gynvaela Coldwinda. Z kolei rozdział od j00ru był w miarę ok, ale mam wrażenie że pełnił rolę wypełniacza – takie nieco rozwinięte write’upy zadań z CTF’ów, a niestety część rzeczy t.j dojść do danych informacji na temat programu została pominięta, a szkoda. Liczyłem na bardziej rozbudowane artykuły z sekcji CTF „Programisty”, a otrzymałem nawet coś mniej.

W mojej opinii książka jest dobra, z jednej strony mamy różne podejście wielu osób co pokazuje różny sposób myślenia, z drugiej strony brakuje jakiejś jednolitej formy: np dla każdego rozdziału wspomniany patent z „readelf”, trzymanie kompletnych źródeł z książki w jednym miejscu i linkowanie ich w odpowiednich miejscach rozdziału.

Sama książka na pewno zaciekawi osoby zaczynające swoją zabawę z inżynierią wsteczną i to właśnie takim osobom polecam tę książkę, pozostałym osobom radziłbym się zastanowić bo w sieci można znaleźć bardziej opisane i zaawansowane artykuły niż te zebrane w „Praktycznej Inżynierii Wstecznej”.

Code ON!


  • Maksymilian

    Bardzo fajnie , że wypuściłeś już recenzje, ja mam na oku tą książkę i planuje zabrać się za nią, bo z tego co napisałeś jest ona jak najbardziej dla mnie z powodu brak doświadczenia w inż. wstecznej. Obecnie zacząłem czytać „Zrozumieć programowanie” Coldwinda, domyślam się, że masz ją za sobą. Jeśli tak to zastanawia mnie jaka jest twoja opinia na jej temat – czy w dalszej części jest tak konkretna jak w pierwszych rozdziałach? (o ile pamiętasz). Na razie czytam ją powoli jako zajęcie w wolnym czasie, ale zastanawia mnie również czy wyciągnę z niej coś jeśli chodzi o pisanie gierek w sfml2? Wgl to zaszedłem na bloga z nadzieją, że wróciłeś do tego nowego kursu do SFML’a bo ostatnio robię większe projekty (dzięki staremu kursowi pomogłeś mi pokazać jak pisać w nim programy obiektowo orientowane, dzięki!), widzę że jest bomberman więc zabieram się za analizę kodu i przede wszystkim szukania jakiś nowych inspiracji jeśli chodzi o styl kodowania. Pozdrawiam.

    • Czy konkretna to nie pamiętam (czytałem rok temu), ale głównie skupia się na programowaniu „niskopoziomowym”, a na pewno nie skupia się na gamedevie.

      Co do nowych wpisów to z nimi ciężko, bo po prostu już nie spędzam tak dużo wolnego czasu przed komputerem ;)