Olly_heap_vis.txt
上传用户:haohao_zhu
上传日期:2014-08-15
资源大小:2446k
文件大小:3k
源码类别:

PlugIns编程

开发平台:

Visual C++

  1. Olly Heap Vis
  2. Copyright (C) 2005 Pedram Amini
  3. You may have noticed the ghosted 'Heap' option under the 'View' menu in
  4. OllyDBG. The feature is available only under Windows 95 based OSes and
  5. is supposed to display a list of allocated memory blocks. The Olly Heap
  6. Vis plug-in was written to provide this functionality and more on all
  7. modern Windows OSes such as Windows 2000, XP and 2003.
  8. The plug-in can only be run when the process is in a suspended state. It
  9. can be launched from the plug-in menu as well as the CPU and dump
  10. right-click context menus. The following menu options are available:
  11.     - View Heaps
  12.     - Search Heaps
  13.     - Jump to Heap Chunk
  14.     - Create Heap Visualization
  15. 'View Heaps' will generate a native OllyDBG window table listing the
  16. allocated heap blocks for the debuggee. Individual blocks can be double-
  17. clicked to view the relevant memory. Eventually, I would like to write a
  18. custom SPECDUMP routine to display the actual heap chunk structure
  19. information in a pleasant manner.
  20. The 'Search Heaps' option can be accessed from the specified menus or
  21. alternatively, by pressing the hotkey 's' from within the heap list. A
  22. dialog prompting for a search sequence is presented allowing for ASCII,
  23. Unicode or hex byte sequences to be specified. The search is conducted
  24. over all listed heaps, matching blocks are listed in the log window.
  25. This capability is only accessible after 'View Heaps' has generated a
  26. list.
  27. The 'Jump to Heap Chunk' option can be accessed from the specified menus
  28. or alternatively, by pressing the hotkey 'j' from within the heap list.
  29. A dialog prompting for an address is presented allowing for hexadecimal,
  30. signed or unsigned values to be specified. The search is conducted
  31. over all listed heaps. If a heap chunk exists at the specified address,
  32. the entire heap chunk will be displayed.
  33. The 'Create Heap Visualization' feature will generate a Graphviz graph
  34. description suitable for rendering in DOT layout. A sample graph
  35. generated from the startup heap state of Internet Explorer is available
  36. in the 'Documentation' directory as 'iexplore_start_state.png'. Graphs
  37. show the free lists and the heap chunks by size.
  38. A screenshot excerpt of Heap Vis in action is also available in the
  39. 'Documentation' directory as 'skylined_ie_heap_fill.gif'. The screenshot
  40. demonstrates the interesting method Berend-Jan Wever (SkyLined) uses in
  41. the exploitation of heap-based Internet Explorer vulnerability. Details
  42. regarding the vulnerability can be found in MS05-020 or:
  43.     www.idefense.com/application/poi/display?id=228&type=vulnerabilities
  44. Currently, the plug-in can not handle the listing or visualizing of
  45. "broken" heaps. This is due to the reliance on the Heap32xxx() API. In
  46. the future support for this may be added. Also on the todo list is
  47. adding a 'cancel' feature to heap listing as some applications with
  48. numerous heaps can take a long time to enumerate.
  49. If you have any questions, comments or feature requests feel free to
  50. drop me a line.