Embedded Internet of Things (IoT) products are taking up a larger part of the market thanks to smaller, cheaper and more advanced components. For companies that spend time and resources on developing software for these products, it is important to keep that software secure to maintain the advantage gained. This can be done in multiple ways, each with its own advantages and disadvantages. One way is by utilizing code obfuscation to make the software more difficult to understand and therefore harder to reverse engineer. However, changing the code comes at a cost, this thesis aims to find out what that cost is. This is done by comparing two versions of code: the original code and its obfuscated version. These versions were compared with respect to execution time and readability. The results of the tests indicate a small increase in execution time for the obfuscated version, but it also showed a big increase in how difficult it was to read. This means that obfuscating code will have a small performance penalty, but is much more resilient to reverse engineering. It is also important no note that manually obfuscating code is not practical for a production environment, since a large part of the development time will be spent on obfuscating the code instead of improving it. Therefore, it is important to have an automated obfuscation tool. / Inbyggda IoT produkter tar upp en större del av marknaden tackvare billigare, mindre och mer avancerade komponenter. För företagen som spenderar tid och resurser på att utveckla mjukvara till dessa produkter är det viktikgt att hålla den mjukvaran säker. Detta kan göras på många olika sätt, varje med sina fördelar och nackdelar. Ett sätt är att använda kodobfuskering för att göra mjukvaran svårare att förstå och darmed svårare att baklängeskonstruera (reverse engineer). Men, att ändra koden kommer med ett pris, denna uppsats försöker hitta vad den kostnaden är. Detta görs genom att gämföra två versioner av kod: orginalet och en obfuskerad version av den. Dessa versioner gämförs sedan på exekveringstid och lasbarhet. Resultatet av testet visar en liten ökning i exekveringstid för den obfuskerade versionen, men en stor ökning i hur svår den är att förstå. Detta betyder att obfuskerad kod kommer ha en lite sämre prestanda, men är mycket med tålig för baklängeskonstruktion (reverse engineering). Det är också viktigt att påpeka att manuell kod obfuskering inte är praktiskt för en produktionsmiljö, då mycket tid kommer läggas på att obfuskera koden istället för att förbättra den. Därför är det viktigt att ha ett aotumatisk obfuskerings verktyg.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-344250 |
Date | January 2023 |
Creators | Karlsson, Fredrik |
Publisher | KTH, Skolan för elektroteknik och datavetenskap (EECS) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-EECS-EX ; 2023:910 |
Page generated in 0.1686 seconds