Abstract
OSCAL is a useful online library that helps students trying to learn Operating system concepts and AICAL is a similar online library with Artificial Intelligence concepts. Both these libraries offer graphical animations of operating system and artificial intelligence concepts. The new concepts that are being added to OSCAL are Buffer Overflow Attack and Access Control Matrix Implementation. The new concept being added to AICAL is Adversarial search technique using Minimax Algorithm and an Evaluation Function for the game of Tic-Tac-Toe. Adversarial search is finding the best next move for Max in a two-player game, where Max represents the agent. The problem domain used to apply this search is the game of Tic-Tac-Toe with a 3*3 board. The Minimax Algorithm is used to find the best move by employing a depth first search where all possible moves of Max are explored. Hence, in order to reduce the computation and size of game tree, an Evaluation function is used. The game tree during the course of the game and how the evaluation function is applied, is graphically explained in this applet. Buffer Overflow occurs when a program’s input is not bounded, that is, the program while writing data to the buffer, overruns the allotted space of the buffer and starts to write to the adjacent memory. This security attack is based on memory violation. Buffer overflow attack is aimed at gaining control of the attacked program, or results in a root shell or other privileged command execution. To achieve this, the attacker must first arrange for suitable code to be available in the program’s address space and then get the program to jump to that code, with suitable parameters loaded into registers and memory. In this applet, we demonstrate how the stack is initialized with local parameters, frame pointer and return address and then how the buffer overflows and the return address is manipulated to gain control of the program. Access Control Matrix represents how access rights of different objects are enforced and implemented. The rows in the access matrix represent different domains such as different users and columns represent different objects such as files or printers. An access control matrix consists of access rights such as read, write, execute, owner, etc. Domains can also be added as objects in the access matrix to control domain switching, that is, when a process switches from one domain to another. This applet demonstrates the implementation of the Access Matrix and, addition and modification of access rights. The applets are being developed in JAVA using Eclipse IDE.