memory analysis tool GUI development

GUI Development for System Memory Analysis Tool 

Executive Summary

Our customer is a well-established hardware-based security solutions provider. They provide comprehensive hardware-based security solutions for protecting PCs, network and consumer devices. The technology can be applied in computer systems, set top boxes, network and consumer devices.

Our customer decided to develop a memory analysis tool (forensic tool). The tool should work in conjunction with the customer PCI Express card and kernel software to provide information and visualize physical memory, virtual memory, memory binary files and present automatically detected malicious activity and modifications in memory.

ennovate was engaged to develop a GUI for a software which would communicate with the low level API developed by the customer. ennovate successfully developed multi-tier functional GUI application using agile scrum methodology and delivered it to the customer on time for their product launch.

The Customer

  • Our customer is a well-established hardware-based security solutions provider. They provide comprehensive hardware-based security solutions for protecting PCs, network and consumer devices. These hardware-assisted services include software protection and anti-tamper, malware protection, information privacy and digital media rights management. The technology can be applied in computer systems, set top boxes, network and consumer devices

The Challenge

  • Unavailability of Low Level API
  • Voluminous data with low memory usage
  • Representation of Complex and bulky data
    • Unavailability of Low Level API – Low level API was planned to be developed in parallel with the UI development and without using them it was not possible to develop the functional UI. Owing to the delay in development of low level API, ennovate team started developing mock implementation of the low level API
    • Voluminous data with low memory usage –The basic purpose of the software is to analyze the memory of the device. The data that needs to be shown to the user is always high in volume, and it is not possible to load the whole data into the memory, as it would occupy memory which will be analyzed by the tool. Hence, the UI should use least possible memory to show the data. We needed to show and keep in memory only that much data which is visible on the screen. We took this challenge and developed customized components which were fetching and loading the data on demand and flushing it as soon as it goes out of view. The components used only that much memory which is required for data in the visible area. It helped us a lot in saving the memory and meeting the constraint of the project
    • Complex data representation – Almost all the objects in the software are complex data structure. The data was also high in volume, adding more complexity to the user to analyze. The challenge was to represent this complex and bulky data to users in an accessible and comprehensible manner. We divided and organized the data to be displayed in logical manner which provides better user experience
    • Overall the project was executed with the following 3 phases
      • Phase-1 – GUI Designing
      • Phase-2 – Functionality Development
      • Phase-3 – Integration with Low Level API

The Technology

Java Technology was used to develop the software to achieve platform independency for supporting multiple Operating Systems. GUI was developed using Java Swing. Java Native Interface was used for communicating with the low level API to be developed by the customer.

image_memory_analysis

The Benefits

  • ennovate provided multiple options for GUI for various functionalities, thus enabling the customer to make a decision to choose the best possible UI for their product
  • Mock implementation approach adopted by ennovate due to unavailability of low level API modules ensured that the project timelines were maintained thus enabling the customer to hit the time to market window