• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Analiza programów

    Przeczytaj także...
    Technika odwracania, inżynieria odwrotna, inżynieria wsteczna, programowanie zwrotne (ang. reverse engineering) to proces badania produktu (urządzenia, programu komputerowego) w celu ustalenia jak on dokładnie działa, a także w jaki sposób i jakim kosztem został wykonany. Zazwyczaj prowadzony w celu zdobycia informacji niezbędnych do skonstruowania odpowiednika. Innym zastosowaniem jest porównanie lub zapewnienie współdziałania z własnymi produktami. Uwaga: inżynierii wstecznej nie należy mylić z business process reengineering czy z reengineeringiem oprogramowania, którego to inżynieria odwrotna jest tylko etapem wstępnym.ltrace to narzędzie analizy kodu badające interakcję programu z używanymi przez niego bibliotekami dzielonymi (shared libraries).
    Metryka oprogramowania – miara pewnej własności oprogramowania lub jego specyfikacji. Termin ten nie ma precyzyjnej definicji i może oznaczać właściwie dowolną wartość liczbową charakteryzującą oprogramowanie.

    Analiza programów – badanie programów komputerowych gotowych do uruchomienia lub w postaci kodów źródłowych. Analiza w trakcie działania programu nazywa się analizą dynamiczną, natomiast badanie bez uruchamiania programu nazywa się analizą statyczną. Najważniejszymi zastosowaniami analizy programów jest znajdowanie i usuwanie przyczyn ich błędnego działania (debugowanie), poprawianie jakości programów (optymalizacja) oraz poznawanie szczegółów zasad działania programu (reverse engineering).

    strace — narzędzie do analizy kodu badające interakcję programu z jądrem systemu operacyjnego. Śledzi wywołania systemowe oraz sygnały w procesie. Może też zliczać i mierzyć czas poszczególnych wywołań.SoftICE – znany debugger dla systemu Windows (95/98/NT/2000/XP), oferujący duże możliwości. Umożliwia śledzenie wykonywania kodu, ma wbudowanego disassemblera. Działa w niskopoziomowym trybie jądra (kernela), przez co umożliwia debugowanie sterowników, jest też często wykorzystywanym narzędziem do łamania zabezpieczeń programów (nag-screen, rejestrowanie, CD-protection itp.)

    Ważniejsze narzędzia[]

  • Debuggery
  • gdb
  • ddd
  • gvd
  • SoftICE
  • OllyDbg
  • edb
  • Debugery pamięci
  • Electric fence
  • Deasemblery
  • IDA
  • ndisasm
  • w32Dasm
  • Emulatory sprzętu
  • Bochs
  • QEMU
  • Narzędzia badające interakcję programu z systemem operacyjnym
  • fenris
  • ltrace
  • strace
  • Narzędzia monitorujące aktywność systemu plików oraz zmiany w rejestrze Windows
  • ProcMon
  • Narzędzia zapisujące ruch sieciowy
  • tcpdump
  • tcpflow
  • Statyczne narzędzia analizy kodów źródłowych
  • CMT++
  • Lint
  • Statyczne narzędzia analizy programów
  • elfsh
  • objdump
  • readelf
  • nm
  • Inne techniki
  • LD PRELOAD
  • Zobacz też[]

  • metryka oprogramowania
  • Program komputerowy (ang. computer program) - sekwencja symboli opisująca obliczenia zgodnie z pewnymi regułami zwanymi językiem programowania. Program jest zazwyczaj wykonywany przez komputer (np. wyświetlenie strony internetowej), czasami bezpośrednio – jeśli wyrażony jest w języku zrozumiałym dla danej maszyny lub pośrednio – gdy jest interpretowany przez inny program (interpreter). Program może być ciągiem instrukcji opisujących modyfikacje stanu maszyny ale może również opisywać obliczenia w inny sposób (np. rachunek lambda).System operacyjny (ang. Operating System, skrót OS) – oprogramowanie zarządzające systemem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Warto wiedzieć że... beta

    Bochs (fonetycznie od ang. box - pudełko, komputer) to emulator komputera rodziny x86 na licencji GNU LGPL. Umożliwia uruchamianie jednego systemu operacyjnego na systemach Unix/Linux, Windows (w wersji 32-bitowej), Mac OS X, AmigaOS, i in.
    Optymalizacja oprogramowania - działanie mające na celu poprawę wydajności programu komputerowego, głównie poprzez zwiększenie szybkości działania i zmniejszenie wykorzystania przez niego zasobów komputera.
    tcpflow to program do odczytywania komunikacji po łączu sieciowym. tcpflow operuje na poziomie strumieni TCP, nie dostarczając informacji o poszczególnych pakietach ani o kolejności otrzymywania danych w różnych strumieniach (w szczególności w strumieniu nadchodzącym i wychodzącym tego samego połączenia).
    tcpdump – sniffer służący do śledzenia komunikacji w sieciach komputerowych. Pozwala na pełne lub selektywne przechwytywanie, wyświetlanie i zapisywanie do pliku pakietów TCP/IP oraz innych protokołów transmitowanych lub odbieranych w sieci komputerowej do której podłączony jest komputer użytkownika. Autorami oryginalnej wersji są Van Jacobson, Craig Leres i Steven McCanne pracujący wówczas w Lawrence Berkeley Laboratory.
    OllyDbg – okienkowy debuger na platformę x86 napisany przez Oleha Yuschuka w roku 2000. OllyDbg jest programem wolnym od opłat, pomimo iż jego licencją jest Shareware. OllyDbg umożliwia prosty sposób poszerzania swoich możliwości poprzez sprawny system wtyczek.
    GNU Visual Debugger (GVD) – wizualny debugger. Jest jednym z nielicznych wolno dostępnych programów napisanych w Adzie.
    Debug tool, Debugger (po polsku - program do usuwania błędów, czytaj dibager - z ang. odpluskwiacz) – program komputerowy służący do dynamicznej analizy innych programów, w celu odnalezienia i identyfikacji zawartych w nich błędów, zwanych z angielskiego bugami (robakami). Proces nadzorowania wykonania programu za pomocą debuggera określa się mianem debugowania.

    Reklama

    Czas generowania strony: 0.018 sek.