Katana databas 1.0
2009 (Swedish)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE credits
Student thesis
Abstract [en]
The task to this thesis has been to create an application, Katana-databas 1.0, for analysing c-code. The generated output gets stored in a data structure which content in the end of the program run gets written in a textfile which gets used by Katana. It's a tool for reverse engineering, developed by Johan Kraft at Mälardalens institute.
Katana-databas has got the following limitations. (1) It can only handle preprocessed files, meaning it doesn't contain any rows beginning with "#". (2) Only complete files can be handled. (3) No references to unknown functions or variables are allowed. (4) A further limitation is that the application can't handle any ADT's. It can only handle primitive types. (5) Finally the application is only written for pure c-code, and thus doesn't handle code written C++.
The task has been solved by creating an automatically generated lexer with Flex and Bison rules in Visual Studio. There after a limited parser has been developed which purpose is to process the lexemes which the lexer generates.
The underlying causes for the thesis is to replace Understand with Katana-databas. Katana has this far used the database in Understand, but it contains closed source code. What is seeked is open source code, which Katana-databas is based on.
Abstract [sv]
Programmeringsuppgiften till detta arbete har bestått i att skapa en applikation, Katana-databas 1.0, för analys av C-kod. Utflödet som applikationen skapar sparas i en datastruktur vars innehåll i slutet av programkörningen skrivs ut i en textfil som används av Katana. Det är ett verktyg för reverse engineering, utvecklat av Johan Kraft på Mälardalens högskola.
Katana-databas har fått följande begränsningar. (1) Den kan bara hantera filer som är preprocessade, dvs. den innehåller inga rader som inleds med ”#”. (2) Endast kompletta filer kan hanteras. (3) Inga referenser till okända funktioner eller variabler är tillåtna. (4) En ytterligare begränsning är att applikationen inte kan hantera ADT:er. Den kan bara hantera primitiva typer. (5) Tillsist är applikationen endast skriven för ren c-kod, och klarar således inte av att hantera kod skriven i C++.
Uppgiften har lösts genom att skapa en automatgenererad lexer med Flex och Bisonrules i Visual Studio. Därefter har en limiterad parser utvecklats vars syfte är att bearbeta de lexem som lexern genererar.
Det bakomliggande syftet med arbetet är att ersätta Understand med Katana-databas. Katana har hittills använt sig av databasen i Understand, men den består av sluten källkod. Det som eftersträvas är öppen källkod, vilket Katana-databas baseras på.
Place, publisher, year, edition, pages
2009. , p. 29
Keywords [en]
reverse engineering
National Category
Information Systems
Identifiers
URN: urn:nbn:se:mdh:diva-7575OAI: oai:DiVA.org:mdh-7575DiVA, id: diva2:278462
Presentation
(English)
Uppsok
Technology
Supervisors
2009-12-032009-11-262025-10-10Bibliographically approved