Książka "Praktyczna inżynieria wsteczna" + konkurs!

21

Są na tym świecie rzeczy, które się fizjonomom nie śniły!” – kto kojarzy taki cytat? W programowaniu są z kolei obszary, w które zapuszczają się nieliczni-li jedynie śmiałkowie.

Good news everyone: ci śmiałkowie zebrali się do kupy i napisali książkę. Ksiązkę, którą każdy CRUDowiec powinien dostać pod choinkę.

O jakie obszary chodzi? I co to za książka? Cyk:

clip_image001

Kilkunastu uznanych speców, pod okiem innych uznanych speców, napisało księgę opisującą tajemnice skrywane przez przeróżne technologie. Znajdziemy tam zarówno ogólne koncepcje związane z RE (Reverse Engineering), jak i rozdziały poświęcone .NETowi i Pythonowi. Na uwagę zasługuje bardzo ciekawy rozdział o wstrzykiwaniu kodu w inne procesy. W sumie dostajemy 12 części traktujących o okolicach inżynierii wstecznej właśnie.

Pozycja ta wyszła całkiem niedawno i aktualnie jest w promocji. Lećcie i bierzcie póki ciepłe <link>!

W książce palce maczał Gynvael Coldwind, z którym miałem przyjemność nagrać podcast. Do posłuchania tutaj: DevTalk#33: O programowaniu z Gynvaelem Coldwindem.

Konkurs

I uwaga, uwaga, achtung!

Mam do rozdania trzy (słownie: trzy) egzemplarze tej książki. Co zrobić, aby wygrać? Wykonać jedno z zadań:

  1. opisz działanie dowolnego obfuskatora dla platformy .NET
  2. napisz artykuł opisujący dowolny dekompilator dla .NET, np. dnSpy, IL Spy, Reflector
  3. opisz jedną z metod powodujących błąd dekompilacji za pomocą dnSpy, IL Spy, Reflectora lub innego narzędzia
  4. napisz program, który po uruchomieniu wykona kod niewidoczny podczas dekompilacji

Zadania tekstowe (1-3) mogą być opublikowane w dowolnym, dostępnym publicznie, miejscu. Może być to Twój blog, może być Medium, może być jako gist na GitHubie… Język: polski lub angielski. Jeśli artykuł będzie wysokiej jakości i wyrazisz taką wolę to pomyślimy nad publikacją go tutaj, na devstyle. Rozwiązanie zadania to umieszczenie linku w komentarzu do tego posta.

Rozwiązanie zadania z kodowaniem (4) musi być umieszczone na GitHubie, a link do niego wpisany w komentarzu pod tym postem.

Lista zwycięzców zostanie ogłoszona we środę 21 grudnia. Do roboty! :)

P.S.

Jako devstyle.pl objąłem patronat medialny nad książką. I dobrze.

Share.

About Author

Programista, trener, prelegent, pasjonat, blogger. Autor podcasta programistycznego: DevTalk.pl. Jeden z liderów Białostockiej Grupy .NET i współorganizator konferencji Programistok. Od 2008 Microsoft MVP w kategorii .NET. Więcej informacji znajdziesz na stronie O autorze. Napisz do mnie ze strony Kontakt. Dodatkowo: Twitter, Facebook, YouTube.

21 Comments

  1. Biorąc pod uwagę, że jako jedno z miejsc docelowe jest wskazane “Medium” to rozumiem, że tekst może być po angielsku.

    Pozdrawiam,
    Paweł

  2. ANDRZEJ BARGAŃSKI on

    Warto przeczytać jak zabezpieczać programy przed nielegalnym użytkowaniem. Bo niby jest HASP, i inne cuda, a okazuje się że wystarczy parę NOP-ów żeby to obejść. Patrzyłem w spis treści i widzę że nie ma o wstrzykiwaniu się do JVM. Temat zbyt banalny ? (Sam się wstrzykuje do JVM z Weblogiciem)

  3. Hmm, świetny pomysł na arta. I… chyba napiszę bo aż mnie korci. Choć pewnie będzie nie do końca na temat, ale będę chciała pokazać ciekawy myk.

        • OKej… choć nie widzę tutaj błędu dekompilacji. Nic się nie wywala, nic nie rzuca błędem.
          Ale fajnie pokazana zależność using/IDispisable z try/finally :).

          • Dekomplilacja w mojej ocenie powinna odwzorować kod tak jak został on napisany. Tutaj pokazuje coś innego niż napisał programista, więc popełnił błąd. Starałem się go pokazać i wyjaśnić dlaczego wystąpił :)

            • Aaa, OKej. Choć chodziło o co innego (widocznie moja wina, nie do końca dobrze wytłumaczyłem): o wywalenie się narzędzia do dekompilacji. Tak jak przedstawiono to chociażby w komentarzu niżej, u Pawła Łukasika.

              • Mimo niezrozumienia mam nadzieję, że to co napisałem kogoś zainteresuje i pokaże coś fajnego :)

  4. Jak dokładnie rozumieć punkt 4 “napisz program, który po uruchomieniu wykona kod niewidoczny podczas dekompilacji” – czy za niewidoczny można rozumieć kod zaszyfrowany? Czy np. wy-Emit-owany kod w runtime będzie ok? Czy chodzi o powiązanie np. techniki z punktu 3 z kodem?

    Pozdrawiam,
    Paweł

  5. Pingback: Gmeranie w cudzym kodzie przy pomocy dotPeek - Code Faster!

Newsletter devstyle!
Dołącz do 2000 programistów!
  Zero spamu. Tylko ciekawe treści.
Dzięki za zaufanie!
Do przeczytania wkrótce!
Niech DEV będzie z Tobą!