Return to search

Katana databas 1.0

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. / 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å.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:mdh-7575
Date January 2009
CreatorsBärling, Leo
PublisherMälardalens högskola, Akademin för innovation, design och teknik
Source SetsDiVA Archive at Upsalla University
LanguageSwedish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0022 seconds