Skip to main content

Co to jest krojenie programu?

W aplikacjach krojenia programu jest metodą identyfikacji podstawowych elementów oprogramowania i delikatnego wyodrębnienia ich z bardziej skomplikowanego kodu, który umożliwia funkcjonowanie programu.Proces krojenia programu jest szczególnie ważny dla wysiłków inżynierii oprogramowania, ponieważ pozwala inżynierowi oprogramowania znaleźć drogę poprzez skomplikowane struny kodu w celu uzyskania dostępu do kodu źródłowego, który faktycznie napędza aplikację.Możliwość wyodrębnienia tych podprogramów i przeglądania kodu źródłowego umożliwia identyfikację szerokiego zakresu potencjalnych błędów, a tym samym uczynienie oprogramowania z większą wydajnością.

Nie jest niczym niezwykłym, że kod jest celowo skomplikowany.Jednym z głównych powodów tego działania jest to, że bardziej skomplikowane części kodu pomagają chronić kod źródłowy przed uszkodzeniem przez wirusy i próby hakowania.Zwykle programista dodaje wiele dodatkowego kodu, który zasadniczo sprawia, że konieczne jest przejście do wielu dodatkowych kroków, aby osiągnąć to, co może zarządzać kodem źródłowym z zaledwie kilkoma krokami.Chociaż jest to pożądany stan z perspektywy ochrony oprogramowania przed możliwą korupcją, istnieją sytuacje, w których istnieje potrzeba dotarcia do kodu źródłowego.W tym miejscu wchodzi w grę krojenia programu.

Istnieją dwa podstawowe podejścia lub wymiary do krojenia programu.Wymiar semantyczny koncentruje się na elementach niezbędnego ciągu kodu, które zostaną zachowane.Zarówno funkcje statyczne, jak i dynamiczne są identyfikowane i zachowane poprzez wykorzystanie określonych metod krojenia, które pozostawiają niezbędne elementy, ale usuwają znaczną część kodu wstawionego w ramach procesu maskowania.Dzięki krojeniu programu semantycznego inżynier ma sporo dyskrecji przy podejmowaniu decyzji o tym, co, jeśli w ogóle, dodatkowego kodu.

Krojenie programu syntaktycznego nie zapewnia inżynierowi takiej samej liczby opcji.Dzięki temu podejściu wszystko, co nie jest niezbędne dla podstawowej funkcji kodu, jest usuwane.Jeśli stwierdzono, że ciąg nie służy żadnego prawdziwego celu i nie ma żadnego wpływu na semantykę zainteresowań znalezionych w kodzie, to się dzieje.Takie podejście pomaga zachować oryginalną składnię programu bez żadnych dodatkowych falbanowych.

Drugie i coraz powszechniejsze stosowanie krojenia programu syntaktycznego jest znane jako krojenie programu amorficznego.Dzięki takiemu podejściu celem jest umożliwienie plasterze kontynuowania pracy z dowolną funkcją składniową, która pomaga utrzymać ograniczenia semantyczne, które inżynier chce zachować w kodzie.