2010-05-03 15 views
18

Zakładając, że przyzwoite zrozumienie montażu w popularnych architekturach procesorów (np. X86), w jaki sposób można zbadać potencjalną ścieżkę (karierę, zabawę i zysk itp.) W dziedzinie inżynierii wstecznej? Jest tak mało przewodników edukacyjnych, więc trudno jest zrozumieć, jakie potencjalne zastosowania ma to dzisiaj (np. Czy wciąż poszukuje się exploitów przepełnienia bufora, czy też programy monitorowania stosów czynią to obselete?). Nie szukam żadnego programu krok po kroku, tylko niektóre istotne informacje, takie jak wskazówki, jak skutecznie znaleźć określony obszar programu. Podstawowe rzeczy w handlu. A także do tego, do czego jest obecnie używany.Rozważając rozpoczęcie inżynierii wstecznej/demontaż

Podsumowując, jakie obecne zastosowania obecnie zapewniają inżynierię odwrotną? I jak znaleźć podstawowe informacje na temat tego, jak się uczyć w handlu (znowu nie musi to być krok po kroku, pomocne może być wszystko, co może dzięki wskazówkom).

Odpowiedz

14

Główne, o którym wiem, jak wspomniano wcześniej, jest związane ze złośliwym oprogramowaniem. Jednym z podstawowych zadań naukowców pracujących dla firm skanujących jest pobranie próbki i debugowanie jej w laboratorium lub środowisku wirtualnym.

W ramach tych samych linii istnieje wiele obszarów związanych z bezpieczeństwem, które korzystają z inżynierii odwrotnej/demontażu. Komputerowa kryminalistyka to dziedzina, w którą możesz zajrzeć. Skonfiskowany komputer może zawierać programy sterujące i polecenia (ale bez źródła) dla różnych działań (botnet polecenia i kontroli, programy ataków DoS itp.). Zazwyczaj o wiele łatwiej jest ominąć schematy danych chronionych przez odwrotną inżynierię programu, który chroni, a nie wymyśla hasło lub klucz.

DRM/ochrona bezpieczeństwa w sprzęcie i oprogramowaniu to duży obszar inżynierii odwrotnej.Zauważ, że może to dotyczyć "strony" problemu (i prawa). Weź pod uwagę programy do kopiowania DVD, usuwanie zabezpieczeń, możliwość odtwarzania muzyki z iTunes na innych urządzeniach, możliwość uruchamiania programów homebrew na Wii, równoległego do siatki PS3, odblokowywania iPhone'a, itp. Oczywiście istnieje również wiele opcji poza prawem (reverse opracować zegar automatu do gier, uwierzytelnienie bankomatu itp.).

Stara konwersja programów to ogromna szansa w wielu dziedzinach, zwłaszcza w administracji, finansach, produkcji itp. Istnieją programy o znaczeniu krytycznym, które działają od 30 lat na antycznym komputerze typu mainframe lub mini, do którego nikt nie ma kodu źródłowego. Zespoły muszą wykonać inżynierię wsteczną, aby przekształcić ją w coś nowszego.

Inne sugestie dotyczące nauki samouczków Win32 są świetne. Ponadto, niestety, niektóre z najlepiej publikowanych prac będą dotyczyły cracków (gier). Wyszukaj na tym i istnieje kilka tutoriali, które pokazują podstawy. Klasa, którą podjąłem, wykorzystała książkę "The Art of Computer Virus Research and Defence" autorstwa Petera Szora, ale bardziej obciążała ona pomysły na złośliwe oprogramowanie, a nie dokładną część demontażu.

W zależności od tego, którą trasę wybierzesz, będziesz potrzebować wiedzy z innych dziedzin, ale wiedząc, że montaż będzie najważniejszą umiejętnością. Nie tylko z "Rozumiem, co ten kod wykonuje głównie" - powinieneś być w stanie pisać rzeczy od zera i dokładnie zrozumieć, co robi dany fragment kodu i zrozumieć inne sposoby, w jakie można napisać ten sam kod. Montaż (kodowanie) polega na znalezieniu jednego rozwiązania problemu i zakodowaniu go. Demontaż polega na ustaleniu, który z wielu różnorodnych rozwiązań został użyty początkowo do rozwiązania problemu - DUŻO cięższy;)

+1

+1 za zilustrowanie różnych pól, w które można wejść. Zacząłem uczyć się odradzania, ponieważ złośliwe oprogramowanie było wtedy nieznanym pojęciem. Spróbuj ulepszyć Notatnik lub Kalkulator za pomocą kodów ASM, to dobry sposób na rozpoczęcie nauki odczuwania kodu :) – anonymous

2

Jedną z największych potencjalnego wykorzystania widzę projekt jest jak samba (http://www.samba.org/)

Tam są zawsze będzie zamknięte systemy własności jak te i zawsze potrzebują inżynierów, aby odwrócić te więc inni mogą go używać zbyt.

5

Czytałem, że inżynieria odwrotna jest wykorzystywana w dziedzinie bezpieczeństwa, aby zrozumieć wewnętrzne działanie szkodliwego oprogramowania i trojanów (niezbyt pewne na temat wirusów). W przypadku artykułów dotyczących inżynierii odwrotnej, które są używane w polu zabezpieczeń, sprawdź: www.openrce.org.

Również inżynieria odwrotna nie zawsze wymaga demontażu. W przypadku aplikacji napisanych w językach takich jak Java lub C#, dekompilatory zwykle dostarczają więcej informacji o kodzie niż dezasemblery.

Moim osobistym zainteresowaniem jest inżynieria wsteczna Win32, mogę tylko wyjaśnić moje opinie dotyczące tego konkretnego systemu operacyjnego. Nie mogę ci pomóc w inżynierii odwrotnej Linuksa wtedy :(

Uważam, że darmowa wersja IDA Pro 4.9 jest świetnym dezasemblerem, wykrywa biblioteki systemowe, dzięki czemu nie tracisz czasu na szukanie niewłaściwych miejsc :) W połączeniu z Debugger jak OllyDbg, jesteś gotowy, aby rozwiązać większość projektów odwracania Win32.

Jeśli zejdziesz z trasy Win32, będziesz musiał w końcu zrozumieć strukturę PE, być może rozpakować i takie tam, ale kluczową rzeczą jest teraz zrozumienie montażu x86. Rozłożony kod dla aplikacji Win32 jest stosunkowo łatwy do zrozumienia, jeśli kodowanie Win32 API zostało wykonane w językach takich jak C.

Aby lepiej zrozumieć montaż 32-bitowy, zdemontuj własne aplikacje i zobacz, jak kod źródłowy odpowiada dezasemblacji wydrukować lub nauczyć się kodować aplikacje Win32 API w języku asemblerowym przez Iczelion's Win32 Assembly tutorials.

3

Obecny opiekun FFMpeg otrzymał swoje kodeki wideo do inżynierii wstecznej, aby mógł pobierać filmy do pracy na Linuksie. Jego blog jest całkiem interesujący i miał recent post mówiąc o książce, którą chciałby mieć, kiedy zaczynał.

2

Jest książka cofania: Sekrety Reverse Engineering napisany przez Eldad Eilam; Elliot Chikofsky mybe pomocny cztery ty

+0

Dobry okrzyk, ta książka jest niesamowita! – Elliott

0

Właśnie natknąłem się na niedawnym sondażu wskazującego tę lukę aplikacja została główną troskę zarządzania IT w dużych organizacjach , więc wiedza o tym, jak oprogramowanie jest łamane, może być bardzo przydatna w ocenie architektury aplikacji i kodowaniu oceny podatności.

Powiązane problemy