3 Methodology
This chapter provides the brief overview of the processes, techniques and algorithms used and implemented in this project. The sequence and details of these processes, techniques and algorithms are discussed in the sub-chapters which will develop a clear understanding of all the phases involved in implementation of the system.
Phase 1
3.1 Reverse Engineering
Reverse engineering is a process which involves breaking down of an object for the purpose of understanding how it works in order to duplicate and enhance the object. Reverse Engineering was originally applied only to hardware, but since its inception different techniques were invented and various tools became available in the market and now it is applied to software, databases…show more content… In this technique data packets transferred between two devices communicating with each other are captured using different tools. We used USBPcap and Wireshark the two recommended and open source sniffing tools available in the market to sniff data packets sent or received by Zeiss Visucam Pro (Device) to the system with the software and vice versa.
We installed USBPcap and Wireshark on the system with the software. The system and Zeiss Visucam Pro (device) were connected via two interface serial interface and 1394 Firewire interface. After connecting both machines we launched the sniffers and software to control Zeiss Visucam Pro on the system. As the buttons on the software were pressed the values on sniffers kept changing.
During the process of reverse engineering we disassembled Ziess Visucam Pro and realized that the microcontroller inside the device is responsible for every operation that the device performs. Every command or instruction sent by the software to device is processed by microcontroller and after processing microcontroller notifies the component for which the command or instruction was sent for. For example if fundus photograph is to be taken the capture button in the software would trigger a signal that would be processed by microcontroller and them it would notify the digital camera and flash to capture the photograph with flash intensity…show more content… A DIB consists of two distinct parts: a BITMAPINFO structure describing the dimensions and colors of the bitmap, and an array of bytes defining the pixels of the bitmap. The bits in the array are packed together, but each scan line must be padded with zeroes to end on a LONG data-type boundary. If the height of the bitmap is positive, the bitmap is a bottom-up DIB and its origin is the lower-left corner. If the height is negative, the bitmap is a top-down DIB and its origin is the upper left corner.
A bitmap is packed when the bitmap array immediately follows the BITMAPINFO header. Packed bitmaps are referenced by a single pointer. For packed bitmaps, the biClrUsed member must be set to an even number when using the BI_RGB mode. BI_RGB means that the bitmap is uncompressed.
Then we used CreateBMPFile to save the bitmap it takes 5 arguments the hwnd which owns the bitmap, the filename in this case "Frame.bmp" a PBITMAPINFO structure which we have just went over, a HBITMAP object and a HDC, handle to device context. First of all is pbih which is a