Skip to main content

Vad är programskivning?

I programvaruapplikationer är programskivning en metod för att identifiera kärnelementen i ett program och extrahera dem försiktigt från den mer komplicerade koden som gör att programmet kan fungera.Processen för programskivning är särskilt viktig för mjukvaruteknikinsatser, eftersom det gör det möjligt för programvaruingenjören att hitta vägen genom komplicerade kodsträngar för att få åtkomst till källkoden som faktiskt driver applikationen.Att kunna extrahera dessa underprogram och se källkoden gör det möjligt att identifiera ett brett utbud av potentiella buggar och därmed göra programvaran att köra med mer effektivitet.

Det är inte ovanligt att koden är avsiktligt komplicerad.En av de främsta orsakerna till denna åtgärd är att de mer komplicerade delarna av koden hjälper till att skydda källkoden från korruption av virus och hackingförsök.Vanligtvis kommer en programmerare att lägga till en hel del extra kod som i huvudsak gör det nödvändigt att gå igenom ett antal extra steg för att uppnå det som kan hanteras av källkoden med bara några steg.Även om detta är ett önskvärt tillstånd från perspektivet att skydda programvaran från möjlig korruption, finns det situationer där det finns ett behov av att komma till källkoden.Det är där programskivning spelar in.

Det finns två grundläggande tillvägagångssätt eller dimensioner för programskivning.Den semantiska dimensionen fokuserar på elementen i kodsträngen som är nödvändig och därmed kommer att behållas.Både statiska och dynamiska funktioner identifieras och bevaras genom att använda specifika skivningsmetoder som lämnar efter sig de väsentliga elementen men tar bort mycket av koden som infogas som en del av maskeringsprocessen.Med semantisk programskivning har ingenjören en hel del diskretion när man bestämmer vad, om någon, av den extra koden som faktiskt återstår.

Syntaktisk programskivning ger inte ingenjören samma mängd alternativ.Med detta tillvägagångssätt tas allt som inte är nödvändigt för kodens kärnfunktion.Om en sträng har visat sig inte tjäna något verkligt syfte och inte har någon inverkan på semantiken av intresse som finns i koden, går den.Detta tillvägagångssätt hjälper till att bevara programmets ursprungliga syntax utan extra krusiduller.

En andra och allt vanligare användning av syntaktisk programskivning kallas amorf programskivning.Med detta tillvägagångssätt är målet att göra det möjligt för skivan att fortsätta arbeta med alla syntaktiska funktioner som hjälper till att upprätthålla de semantiska begränsningarna som ingenjören vill bevara i koden.