Okładka książki Praktyczna inżynieria wstecznaKsiążka - „Praktyczna inżynieria wsteczna: Metody, techniki i narzędzia” - skończona i oddana do druku, czas więc na zapowiadany post o tym co nam z tej książki wyszło, co się w niej znalazło, kto ją pisał, jaka jest okładka, grupa docelowa odbiorców i gdzie można ją kupić. Będzie też o spotkaniu autorskim.

Losowe informacje o książce

  • Tytuł: „Praktyczna inżynieria wsteczna: Metody, techniki i narzędzia”
  • Autorzy: (w kolejności rozdziałów w książce): Tomasz Bukowski, Grzegorz Antoniak, Tomasz Kwiecień, Mateusz Krzywicki, Marcin Hartung, Gynvael Coldwind, Hasherezade, Maciej Kotowicz, Michał Kowalczyk, Robert Święcki, Piotr Bania i Mateusz Jurczyk
  • Spis treści: PDF
  • Rodzaj książki: techniczna, specjalistyczna, zbiór opracowań/artykułów
  • Poziom trudności: zależny od konkretnego rozdziału - są rozdziały dla początkujących, dla zaawansowanych i dla profesjonalistów; są też ciekawostki dla wszystkich; taki mix
  • Wydawnictwo: Wydawnictwo Naukowe PWN
  • Data premiery: 4.11.2016 (a przynajmniej taki jest plan)
  • Okładka: miękka
  • Liczba stron: 526
  • Przedsprzedaż: na stronie wydawnictwa, agregat (ceny około 65-80 PLN z tego co widzę)
  • E-book: będzie miesiąc po premierze, tj. w okolicach początku grudnia
  • Redaktorzy prowadzący: Gynvael Coldwind, Mateusz Jurczyk
  • Redaktorzy: Tomasz Łopuszański, Małgorzata Dąbkowska-Kowalik
  • Wydawca: Łukasz Łopuszański
  • Korekta merytoryczna: Mariusz Witkowski, Paweł Zakrzewski, a także Michał Kowalczyk
  • Słowa kluczowa: inżynieria wsteczna, formaty plików wykonywalnych, anty-RE, anty-anty-RE, programowanie, CTF, x86, asembler, GNU/Linux, Windows, .NET, CPython, firmware, bezpieczeństwo niskopoziomowe, buffer overflow, format string, mitygacje, obfuskacja, shellcode

Spotkanie autorskie

Spotkanie autorskie odbędzie się w Warszawie 7 listopada (18:00 - 20:00), w Klubie ARCO, który znajduje się przy ul. Bitwy Warszawskiej 1920 r. 19. Technicznie jest to część agendy konferencji Security PWNing, natomiast samo spotkanie będzie otwarte i bezpłatne.

Rejestracja: click

Na spotkaniu będzie większość autorów książki (tj. Tomasz Bukowski, Tomasz Kwiecień, Mateusz Krzywicki, Marcin Hartung, Maciej Kotowicz, Michał Kowalczyk, Robert Święcki oraz Mateusz Jurczyk) i będzie ono miało formę panelu (prowadzonego przeze mnie), a potem odbędzie Q&A jeśli będą pytania. A na końcu oczywiście stała część spotkań autorskich, czyli podpisywanie książek :)
Dodam, że jeśli wszystko pójdzie dobrze (a na to się zanosi), to będzie stoisko PWN z zapasem książek do nabycia.
Na tą chwilę jest to jedyne przewidziane spotkanie autorskie (dość trudno jest zebrać tak liczną grupę autorów w jednym miejscu w tym samym czasie).

O książce

Jak pisałem już wcześniej, książka jest zbiorem opracowań różnych tematów związanych z inżynierią wsteczną. Autorzy dostali w zasadzie wolną rękę co do tematu - założenie było takie, że jeśli dany autor będzie pisał o tym co chcę (tj. temat nie zostanie narzucony z góry), to treść będzie naturalnie lepszej jakości. Ostatecznie rozdziały wypadły w jedną z trzech grup:
  • Dla początkujących - opisujące podstawy, raczej znane osobom długo siedzącym w branży.
  • Dla zaawansowanych/profesjonalistów - opisujące albo bardziej wymyślne techniki i pomysły, albo dotykające mniej standardowych technologii (tj. nie-x86).
  • Studium przypadku - opisujące konkretny jeden (lub kilka) przypadek inżynierii wstecznej danego oprogramowania.
Oprócz samego RE, przewijającym się motywem jest też niskopoziomowe bezpieczeństwo (buffer overflow i spółka) - na początku się trochę przed tym wzbraniałem wybierając tematy, ale ostatecznie doszedłem do wniosku, że nie zawsze jest sens tłumaczyć RE bez przykładu konkretnego zastosowania (a low-level sec jak najbardziej takim zastosowaniem jest).
Więc ostatecznie wyszedł bardzo ciekawy zbiór artykułów, który powinien (a przynajmniej na to liczymy) przypaść do gustu zarówno bardziej początkującym, jak i zaawansowanym inżynierom.

Fragmenty książki powinny się pojawić na stronie PWN w ciągu kilku dni (podlinkuje je tutaj, jak się pojawią). Wspomnę natomiast, że (podobnie jak było z ZP) w kolejnym numerze Programisty będzie jakiś dłuższy fragment do poczytania (Ba, pamiętacie ten mój konkurs na grę w 1234 bajtach? Dwóch uczestników, którzy dostali Honorowe Wzmianki w tym konkursie napisało krótkie artykuły o konstrukcji swoich prac do Programisty; zapowiada się niezły numer).

To chyba tyle. Jeśli macie jakieś pytania co do Praktycznej inżynierii wstecznej (w skrócie PIW; tak, były sugestie, żeby użyć tytułu „Praktyczna Inżynieria Wsteczna: Opracowania”), to piszcie w komentarzach - postaram się odpowiedzieć w miarę możliwości :)

Comments:

2016-10-25 11:35:49 = lochtcant
{
O, akurat będę w Warszawie na delegacji w terminie spotkania autorskiego. Dodatkowo niedaleko będę miał mieszkanie służbowe (~30minut piechotą) - jest duże prawdopodobieństwo, że uda mi się pojawić :)
}
2016-10-25 11:50:11 = Gynvael Coldwind
{
@lochtcant
Ekstra, long time no see ;)
}
2016-10-25 11:56:28 = lochtcant
{
@Gynvael
Nom, od maja to jest trochę czasu ;)
}
2016-10-25 16:38:27 = Ridż Forester
{
"Praktyczna Inżynieria Wsteczna Oprogramowania", IMHO.
}
2016-10-26 21:36:28 = Pino77
{
O mamuniu, spis treści zapowiada kolejny hit. Zrozumieć programowanie była świetna, a tutaj to już w ogóle bomba!
}
2016-10-28 22:00:06 = php
{
czy spotkanie znowu "nie bedzie techniczne"? jesli tak, tym razem wezme kamere, dyktafon i profilaktycznie notatnik.
}
2016-10-30 11:26:50 = lejzab
{
na arosie za 54 zł. nie wiem jak oni to robią. http://aros.pl/ksiazka/praktyczna-inzynieria-wsteczna-metody-techniki-i-narzedzia
}
2016-10-31 15:40:29 = edwefw
{
A ja mam pytanie czy autor ma jakies sukcesy? jakas karta LTE, moze prosty sterownik czy cos bardziej trudnego. nie musi byc sterownik do grafiki, ale niech bedzie to cos co mozna pokazac
}
2016-10-31 15:56:21 = Gynvael Coldwind
{
@edwefw
Nie do końca rozumiem Twoje pytanie. Który autor? Ta książka ma 12 autorów.
Też nie rozumiem reszty pytania - pytasz o stworzenie sterownika, czy RE sterownika?
}
2016-10-31 18:51:20 = QrA
{
Książka zamówiona. Świetnie że pojawiła się w końcu taka pozycja po polsku, dzięki!
}
2016-10-31 19:27:39 = Anonim
{
@QrA +1 :) Czekam z niecierpliwością na paczkę :)
}
2016-11-02 07:45:04 = yeahlon
{
Świetnie, że spotkanie autorskie jest otwarte. Na konferencji niestety nie dam rady być, ale wieczorem na spotkanie myślę, że wpadnę ;)
pozdrawiam!
}
2016-11-03 03:26:51 = ВЯК
{
A będzie można drugą książkę twojego autorstwa też kupić wtedy?
}
2016-11-03 10:57:51 = Arek
{
spis tresci wyglada bardzo interesujaco! ksiazka zamowiona. Fajnie ze udalo ci sie zebrac tylu ludzi do napisania i polaczyc sily.
}
2016-11-04 09:52:00 = ehmeth
{
No to jest skandal po prostu. :( Pod koniec września zamówiłem preorder dla kolegów i dla siebie, a dziś PWN mi napisał, że anulują moje zamówienie z powodu braku towaru w magazynie.
}
2016-11-04 10:09:10 = Gynvael Coldwind
{
@QrA, @Anonim
Thx! :)

@yeahlon
Wpadnij ;)

@ВЯК
Hmm, jeśli zostaną jakieś sztuki do spotkania autorskiego, to tak (PWN ma trochę tego mieć, ale nie nieskończony zapas, a wcześniej jest jeszcze konferencja).

@Arek
Zgoda ;) Thx!

@ehmeth
Hmm, zamawiałeś tylko PIW? Dziwne, bo preorder nie przekroczył wielkości druku. Puść mi plz mejla z danymi zamówienia, to pingnę wydawcę i dopytam o co chodzi. Brzmi trochę jak błąd systemu (chyba, że zamawiałeś coś oprócz PIW, czego faktycznie nie mają).

}
2016-11-04 18:52:20 = Anonim
{
@Gynvael Coldwind mam to samo. Zamawiałem z HTML5 Komponenty, część zamówienie została wysłana, a ta która bardziej mi zależało, czyli PIW jest anulowany. Przed chwilą dostałem meila. Próbowałem się skontaktować z PWNem, ale nic z tego. "W ciągu 7 dni pieniądze zostaną odesłane na konto" - da się coś z tym zrobić? Wolałbym jednak książkę ;)
}
2016-11-04 21:54:02 = Awal
{
Moje zamówienie na (tylko) PIW również zostało anulowane. Książka była zamówiona już miesiąc temu w przedsprzedaży.
}
2016-11-05 12:31:22 = Jarek
{
Tak czytam, że ktoś zwrot dostał.
Sprawdzam pocztę i to samo :(
}
2016-11-05 16:55:11 = Gynvael Coldwind
{
@Anonim, Awal, Jarek
Napiszcie do BOKu PWNu z pytaniem jaki jest faktyczny stan zamówienia. Okazuje się, że PWN miało drobny bug w systemie i trochę ludzi dostało mejle o anulowaniu zamówienia (mimo, iż książek nie brakuje). Natomiast nie mam informacji czy to była tylko wysłana błędna informacja w mejlu, czy faktycznie zamówienie zostało anulowane - o to musicie się w BOKu księgarni PWNowskiej dopytać.
}
2016-11-05 17:06:04 = Anonim
{
@Gynvael, zrobiłem to od razu, ale odpowiedzi nie widać ;-) No cóż, pozostaje czekać do poniedziałku. Albo zdążą odpisać, albo paczka zdąży przyjść i wyjaśni się samo(dotrze kompletne zamówienie lub bez PIW). Chociaż szczerze powiedziawszy podejrzewam, że jeśli paczka była pakowana i wysłana już po meilu, to zapewne przyjdzie bez. No cóż, miejmy nadzieję, że się mylę :) Dzięki za zainteresowanie.
}
2016-11-07 09:51:08 = Anonim
{
Książki brak, PWN ma dosłać :)
}
2016-11-08 22:30:49 = Linx
{
Nie dość że obniżyli teraz cenę książki (przepłaciłem 13zł) to czekam i czekam na nią. Mimo zamówienia 29października, dostania e-maila o wysłaniu do księgarni 7.11 o 10:00, nie mam nadal książki ani informacji o odbiorze. Ahh te teoretyczne 24h dostawy... ;) I ich profesjonalizm XD
}
2016-11-09 07:58:52 = pszcz
{
Właśnie dostałem informację, że książka miała defekt i dostanę zwrot pieniędzy :-(
}
2016-11-09 09:19:04 = Anonim
{
@pszcz Spróbuj się z nimi skontaktować i napisać, żeby nie zwracali Ci pieniędzy, a wysłali pełnowartościową książkę.
}
2016-11-10 13:50:30 = Gynvael Coldwind
{
@Anonim
I jak tam, książka dotarła?

@Linx
Puść im mejla do BOKu z feedbackiem plz.

@pszcz
Puściłem mejla do wydawcy ocb z 'defektem' ^_-
}
2016-11-10 18:44:24 = Anonim
{
Dotarła, niestety nie poczytam jeszcze. Leci na reklamację. Wczoraj dzwoniłem, wszystko ładnie pięknie, bez problemu przyjmą reklamacje i od razu wysyłają nową książkę. Dzisiaj miał być kurier po egzemplarz który do mnie dotarł, ale się nie pojawił, wysłałem już meila do BOKu. Książka przyszła w tragicznym stanie(częściowo zapewne wina dostawcy, bo nosiła ślady uderzenia, a częściowo zapewne pakowania (nieszczelna paczka i książka latała ), przez co książka nieestetycznie wyglądała(była najzwyczajniej w świecie cała brudna), no i do jeszcze zagięta okładka). Zobaczymy jak się sprawa rozwiąże. Jak pwn rozpatrzy sprawę negatywnie to najwyżej zamówię gdzieś indziej dodatkowy egzemplarz i będę miał egzemplarz do czytania i do stania na półce, co by mój pedantyzm nie cierpiał aż nadto ;)

Albo zamówię książkę bezpośrednio u Ciebie, ale już z Twoim autografem :P

A co do PWN to to nie jest moja pierwsza styczność z tym wydawnictwem, ale chyba pierwszy raz takie cyrki z nimi mam :) Przez ten błąd systemu mają pewnie mocne zamieszanie i nie nadążają ze wszystkim :)
}
2016-11-10 21:39:21 = Linx
{
Przyszła 9.10, 5dni po rozpoczęciu sprzedaży mimo kupienia preorderu. Stan jest zadowalający choć niektóre krawędzie są pogięte i sklejenie pod względem estetycznym pozostawia wiele do życzenia, ale cóż przynajmniej wydrukowana jest na oko porządnie.
}
2016-11-14 10:02:52 = Gynvael Coldwind
{
@pszcz
Mógłbyś mi na mejla wysłać numer zamówienia i jakieś dane identyfikujące?
}
2016-11-20 22:19:59 = Marcin
{
Hej,

Potrzebuję wywołać funkcję dll pod Windowsem a nie mam dostępów do nagłówków ani nic takiego. W tej książce znajdę info jak się za to zabrać? Jeśli nie, to czy ktoś mi podrzuci jakieś info? Dzięki!
}
2016-11-20 22:27:30 = Gynvael Coldwind
{
@Marcin
W zasadzie musisz zrobić dwie rzeczy:
1. Ustalić prototyp funkcji (co zwraca, jakie parametry przyjmuje, ustalić konwencje wywołania).
2. Zlinkować dynamicznie albo statycznie funkcje w swoim programie (zakładam, że mowa o C/C++).

To pierwsze to podstawy - jest kilka stron o tym w pierwszym rozdziale (chociaż nie jest to tutorial od A to Z jak ustalić prototyp funkcji); ew poszukaj po prostu po necie jak to zrobić.

A potem możesz linkować dynamicznie:
typedef int (__stdcall *proto_funkcji)(int param1, int param2);
proto_funkcji funkcja;

HANDLE h = LoadLibrary("jakas.dll");
funkcja = (proto_funkcji)GetProcAddress(h, "jakasprocka");
int ret = funkcja(1, 2);

Albo statycznie, jeśli Twój kompilator na to pozwala (w gcc jest łatwo, w msvc trzeba sobie pliczek .lib jeszcze zrobić).
W gcc to by się sprowadziło do jakiegoś

extern int __stdcall funkcja(int param1, int param2);

i potem kompilacji w stylu: gcc asdf.c jakas.dll

Good luck ;)





}
{
Dzięki wielkie! To już jestem dużo bliżej. Problem tylko w tym, że nie wiem dokładnie jaka funkcja jest wywoływana i to też muszę jakoś podejrzeć. Książkę już mam, wieczorem do niej zajrzę.

Co do kompilatora, to wolałbym użyć gcc na Windows lub innego darmowego. DLLka jest pewnie skompilowana kompilatorem Microsoftu - nie wiem na ile to będzie problem.
}
2016-11-28 14:53:43 = Marcin
{
OK, doczytałem też, że jest cała tablica z funcjami, z której korzysta program. Ale w mojej sytuacji program nie ma wpisanych tych funkcji. Program, których chcę poprawić korzysta z tej dllki ale ma wpisaną tylko ścieżke do niej. Sama dll jest w C/C++ ale program, który z niej korzysta jest w czymś na pweno innym.
}
2016-12-05 10:21:39 = Marcin
{
Nie będę ukrywał, że czekam na podpowiedź jak ugryźć temat i będę wdzięczny za radę. Książka dużo mi przybliżyła, ale dalej nie wiem jak się za to zabrać.
}

Add a comment:

Nick:
URL (optional):
Math captcha: 9 ∗ 8 + 2 =