SEARCH
0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Prev | Current Page 608 | Next

Shon Harris, Allen Harper, Chris Eagle, and Jonathan Ness

"Gray Hat Hacking, Second Edition"


The preceding examples demonstrate control flow analysis. Another form of flow analysis
examines the ways in which data transits a program. Reverse data tracking attempts
to locate the origin of a piece of data. This is useful in determining the source of data
supplied to a vulnerable function. Forward data tracking attempts to track data from its
point of origin to the locations in which it is used. Unfortunately, static analysis of data
through conditional and looping code paths is a difficult task at best. For more information
on data flow analysis techniques, please refer the Chevarista tool mentioned in
Chapter 12.
Memory Monitoring Tools
Some of the most useful tools for black box testing are those that monitor the way that a
program uses memory at runtime. Memory monitoring tools can detect the following
types of errors:
??? Accessing uninitialized memory
??? Access outside of allocated memory areas
??? Memory leaks
??? Multiple release (freeing) of memory blocks
PART IV
Chapter 14: Advanced Reverse Engineering
343
Figure 14-2
Cross-references
to the send
function
CAUTION Dynamic memory allocation takes place in a program??™s heap space.
Programs should return all dynamically allocated memory to the heap
manager at some point.


Pages:
596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620