使用IDA 6.2(以及IDA 6.4),我正在尝试Proximity查看器来查找两个函数之间的路径,如此处hexblog文章所述。显示了清晰的路径:Xrefs From/To-> AllocateVolume-> VolumeSortCmp,如下面的屏幕快照所示。



除了上下文菜单中不存在的CompareVolumeComponentsadd name选项(如如下面的屏幕快照所示,在接近浏览器中进行了描述。

hide childs菜单的确在打开的对话框中列出了find path(因此它对可以访问的内容有所了解)。


但是,当我按search时,我希望看到一个漂亮的简洁图形(再次显示在博客中,并在下面作为参考添加)仅显示了3个相关节点,但似乎没有任何变化到邻近浏览器的布局,因为我仍然看到30个节点。

十六进制缩略语CompareVolumeComponents示例结果掉?还是我在这里做错了什么?

#1 楼

我认为问题在于对“邻近查看器”的工作方式有误解。查找路径时,它不会清除图中的所有其他节点:它只是查找路径并将所需的节点添加到图中。如果要仅查看AllocateVolume和CompareVolumeComponents之间的节点,请执行以下操作:


导航到AllocateVolume并按'-'。
右键单击中心节点AllocateVolume并选择“折叠子项”,然后也选择“折叠父项”。
然后,在邻近视图中右键单击此节点之外,然后选择“添加名称”。
找到“ CompareVolumeComponents”并添加。
执行完此步骤后,右键单击AllocateVolume节点,选择“查找路径”,然后选择唯一的其他可用节点。显示从AllocateVolume到CompareVolumeComponents的路径。如果不是,则Proximity Viewer的当前代码可能存在一些问题(在这种情况下,请与Hex-Rays的支持人员联系以寻求修复)。另外,您可能需要看一下SDK中的“ callgraph”插件:查找路径的算法几乎相同,并且可能会了解为什么它不起作用。

作为一个旁注,对PV的工作原理进行了一些解释:该算法不像(Q)WinGraph32(IIRC)那样考虑仅调用/跳转的路径,而是在存在数据引用时考虑路径。如果函数A以任何方式引用了函数B,则接近查看器将显示该引用(使用灰色边缘而不是蓝色边缘)。顺便说一句,我是写它的人。

评论


谢谢您的解释达到了目的(例如,在节点外部单击以添加名称)。我想我还需要做更多的实验,因为老实说我认为我尝试了所有隐藏选项都没有成功。在副节点上,您是否知道任何选项对话框,以便我们可以配置为查找n路径或所有路径?目前,它只找到1,而不是全部。请参阅单路径,并在所有路径的手动帮助下,否则,我将尝试支持十六进制射线。

– ixje
13年4月5日在9:14

@justsome还没有。这是Hex-Rays中讨论的内容,但至少在当前的公共版本中未实现。

– joxeankoret
13年4月5日在11:16

在IDA 6.8中找不到“添加名称”,尝试在该节点旁边的图标上的文本上单击该节点。这应该什么时候出现?

–翻转
17年5月29日在15:51

#2 楼

屏幕快照显示的不是邻近浏览器。这是IDA的5.x版本中已经包含的Wingraph32旧版本。请参阅所附图片,了解真实外观:


(直接链接到全尺寸图片)

可以在View-> Open subviews下找到它- > Proximity browser

请记住,如果仍然使用6.2,则可能会有Qt版本(idaq.exe)和旧的Windows GUI版本(idag.exe)。您将希望前者可用于邻近浏览器。

评论


我知道这是Wingraph32,屏幕截图中的窗口标题也是如此。该屏幕快照还指的是屏幕快照上方的文本(“ Xref to / from”)。我试图指出,旧的Wingraph32具有“清晰的路径”,而新的邻近浏览器(我没有添加屏幕截图)的路径更糟,更混乱。

– ixje
13年4月4日在21:40

@justsome:好的,从您的问题来看并不是很明显。也许您可以添加一个屏幕截图,并指出出现在您看来“混乱”的部分。关键是您可以展开节点,并在节点周围放大和缩小。在这种情况下,请澄清您的问题,我会尽力回答。

– 0xC0000022L♦
13年4月4日在23:35

我已经添加了所有图片并重新措辞了一些文字,以期最终使我的问题变得明确:-)我现在还尝试使用IDA 6.4进行尝试,以排除原因是旧版本。

– ixje
13-4-5在6:56



@justsome:我看到一位Hex-Rays的前雇员已经更好地回答了您的问题。使用屏幕截图,您想要的东西更加明显。

– 0xC0000022L♦
13年4月5日在13:11

我打算将这样的屏幕截图放入其中,但是时间压力迫使我只能添加一个。仍然感谢您的努力! -edit-由于某种原因,我似乎无法以@ 0xC0000022L开头我的评论,该评论会自动删除。

– ixje
2013年4月5日15:40