Tools to reverse engineer C++ ( i.e. to view C++ classes )

两盒软妹~` 提交于 2019-12-04 15:49:41

You could always use doxygen, it'll give you full documentation on your set of header (inheritance, usage, ...) It can also generate graphs out of the class hierarchy.

another possibility is to customize your own tool, by extending an existing C++ compiler

There are two compilers which you could extend:

  • LLVM & Clang (but I can't help, because I don't know much them).
  • GCC (version 4.6 please) is extensible thru plugins or by coding a MELT extension MELT is a high-level domain specific language to extend the GCC compiler; it is easier to code your extension in MELT than a plugin in C. [I am the main author of MELT]

Extending GCC is in my (biased) view the good way to do it. But I do admit that (even with t he help of MELT) it is non-trivial, because you need to partly understand GCC main internal representations (Gimple, Tree) and internal passes. (I guess that you have same issue with LLVM/Clang: to extend it you need to understand it).

GCC extensions (in MELT) or plugins (in C) are mostly working on the Gimple representations (after template expansion).

If interested in using MELT, feel free to ask more to me.

Some costly proprietary tools exist, like e.g. coverity - but there are so expensive that I have no idea of what they are able to do.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!