Inżynieria Wsteczna Oprogramowania

Inżynieria wsteczna, inżynieria odwrotna, reverse engineering, odkryj ukryte sekrety plików binarnych i skompilowanych aplikacji.

Czym jest inżynieria wsteczna?

Inżynierią wsteczną czy też inżynierią odwrotną (ang. reverse engineering) nazywamy proces analizy oprogramowania, w celu uzyskania szczegółowych informacji o jego budowie i funkcjonowaniu. Wiedza ta może być wykorzystana do uzyskania z pozoru niedostępnych informacji o oprogramowaniu czy też jego modyfikacji.

  • odzyskiwanie kodu źródłowego
  • analiza wirusów komputerowych i złośliwego oprogramowania
  • lokalizacja gier i oprogramowania
  • analiza zaszyfrowanych protokołów komunikacji sieciowej
  • analiza struktur i danych skompilowanych aplikacji
  • odszyfrowanie plików aplikacji (pliki konfiguracyjne, bazy danych etc.)
  • analiza porzuconego oprogramowania i jego algorytmów
  • odtwarzanie algorytmów szyfrowania i kompresji użytych w aplikacjach
  • modyfikacja aplikacji bez dostępu do kodów źródłowych
  • rozszerzenie funkcjonalności istniejącego oprogramowania

Doświadczenie w inżynierii wstecznej

Byłem zafascynowany inżynierią wsteczną od czasów swojej szkoły średniej, kiedy to otrzymałem pierwszą pracę przy lokalizacji gier dla prasy komputerowej. Od tego czasu pracowałem nad wieloma projektami związanymi z tematyką reverse engineering, kilka przykładów z czym miałem do czynienia:

Projektowanie systemów zabezpieczeń oprogramowania
Zabezpieczenia oprogramowania
Analiza malware
Analiza malware
Lokalizacja oprogramowania
Lokalizacja oprogramowania
Modyfikacja oprogramowania
Modyfikacja oprogramowania
Zabezpieczające klucze sprzętowe (aka dongle)
Zabezpieczające klucze sprzętowe (aka dongle)
Audyty zabezpieczeń oprogramowania
Audyty zabezpieczeń oprogramowania

Analiza złośliwego oprogramowania

Inżynieria wsteczna używana jest w codziennej pracy przy analizie złośliwego oprogramowania w laboratoriach antywirusowych. W przeszłości pracowałem dla znanej polskiej firmy antywirusowej, pisząc moduły rozpakowujące systemy zabezpieczeń aplikacji, aby oprogramowanie antywirusowe mogło przeanalizować tak chronione i skompresowane pliki wykonywalne. Pracowałem także w innej firmie antywirusowej, gdzie zajmowałem się skomplikowaną analizą polimorficznych infektorów plików wykonywalnych oraz tworzeniem narzędzi do dezynfekcji tak zarażonych aplikacji.

Audyt zabezpieczeń oprogramowania

Całe swoje doświadczenie z inżynierii wstecznej i programowania zostało użyte do stworzenia mojego własnego oprogramowania zabezpieczającego jak PELock, .netshrink i Obfuscator. Wykorzystywałem moje zdolności do wykonywania audytów bezpieczeństwa oprogramowania przed złamaniem dla firm z kompletnymi raportami dotyczącymi słabości systemów zabezpieczeń i licencjonowania oprogramowania z rekomendacjami, jakie zmiany należy wprowadzić, jakich forteli warto użyć i jakich narzędzi najlepiej wykorzystać, aby poprawić zabezpieczenia oprogramowania.

Masz pytania?

Jeśli masz jakieś pytania odnośnie usług inżynierii wstecznej, kosztów projektu — proszę napisz do mnie, z miłą chęcią odpowiem na wszystkie Twoje pytania. Pamiętaj, aby opisać jak najwięcej szczegółów technicznych, co pomoże mi dokładniej zrozumieć i odpowiedzieć na twoje pytania.