Communications of the ACM
Dynamic weaving for aspect-oriented programming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Software Engineering
RAD: A Compile-Time Solution to Buffer Overflow Attacks
ICDCS '01 Proceedings of the The 21st International Conference on Distributed Computing Systems
A selective, just-in-time aspect weaver
Proceedings of the 2nd international conference on Generative programming and component engineering
Virtual machine support for dynamic join points
Proceedings of the 3rd international conference on Aspect-oriented software development
An expressive aspect language for system applications with Arachne
Proceedings of the 4th international conference on Aspect-oriented software development
Supporting autonomic computing functionality via dynamic operating system kernel aspects
Proceedings of the 4th international conference on Aspect-oriented software development
Proceedings of the 4th international conference on Aspect-oriented software development
An API for Runtime Code Patching
International Journal of High Performance Computing Applications
Detection and prevention of stack buffer overflow attacks
Communications of the ACM
Statically detecting likely buffer overflow vulnerabilities
SSYM'01 Proceedings of the 10th conference on USENIX Security Symposium - Volume 10
StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks
SSYM'98 Proceedings of the 7th conference on USENIX Security Symposium - Volume 7
Transparent run-time defense against stack smashing attacks
ATEC '00 Proceedings of the annual conference on USENIX Annual Technical Conference
Modular implementation of adaptive decisions in stochastic simulations
Proceedings of the 2009 ACM symposium on Applied Computing
Hi-index | 0.00 |
An emerging software engineering paradigm, Aspect-Oriented Programming, can be used to facilitate moving common interests or requirements from individual software functions into a separate module. Aspect code is woven into the software on either a static (compilation) basis or dynamic (runtime) basis. Existing systems necessitate the use of syntactic sugar. which is added to programs to indicate the join points in the software where aspects could potentially be applied. Static weaving inserts code, at compilation time, into these join points, while dynamic weaving might compile in code which can be activated at runtime. This paper describes a new approach to the implementation of dynamic aspects in C/C++. Our method uses a tool which operates using the GCC compiler suite on Linux; it is a runtime event monitoring system we call "dynamicHook". The tool tests each potential join point at run time for the required activation of advice. If advice code is necessary at the join point it is loaded on the fly from shared libraries, retained for future use, and called dynamically. No additions or modifications to the source code need to be made other than recompiling and linking in our library. The tool is thus targeted at adding aspect oriented methodologies to existing C/C++ code. We have demonstrated the tool by obtaining open-source web servers and adding dynamic aspects dealing with security and intrusion detection.