2015-05-07 68 views
1

我正在使用一个有SDK和一堆开发工具的应用程序,我也使用IDA Pro进行了很多代码分析,所以我对它很满意。简而言之,它是一个游戏服务器应用程序,所以你可以看到我正在处理的东西:支持mods,所以它有一些记录在内部的内容,这使得它更容易处理它的装配。分析没有源代码的编译代码?

但是,源代码没有被释放,所以我很难将自己的手指放在我想说的“CPU开销”的源头上,以便可能使用DLL注入来重写该部分例如“取代”有问题的代码,甚至取消它,这取决于它的需要。

我想知道,是否可以剖析一个二进制可执行文件,你无法获得源代码?可以在操作码/汇编级别分析代码的东西?

谢谢!

+0

这有什么意义吗?即使你有很好的调试信息,分析器可以使用,但你仍然没有办法让程序更快。这只是浪费时间。 –

+0

@HansPassant该陈述并非真实 – Yannick

回答

1

传统的配置文件(如gprof)在编译时插入了额外的代码并且在当前情况下不会有所帮助,这是正确的。

也许像Valgrind这样的工具可以提供帮助。

+0

嗯,我对Valgrind的说法不太了解,但我只是偶然发现了关于Callgrind的一篇论文。它是否需要以像gprof这样的高级时尚编译代码,或者它是否可以在编译代码中使用? – Yannick

+0

是Callgrind是Valgrind的一部分。它不需要在编译时插入额外的代码,这就是我推荐它的原因。 – user4495048