<p>当name与I匹配时,我试图得到j的值。但不幸的是,我得到的只是Functions()中的最后一个元素。我想这是有道理的。但是,当name与GetFunctionName()的列表匹配时,如何获得j的值呢?你知道吗</p>
<p>有没有一行代码可以这样做?你知道吗</p>
<pre><code>func_ea = [j for i in [GetFunctionName(j) for j in Functions()] if name in i]
</code></pre>
<p>编辑:谢谢埃里克解决了第一个问题
有没有可能进一步减少到一行呢?你知道吗</p>
<pre><code>def LocateBytesInFunctions(self, searchterm, *funcname):
foundaddress = []
for name in funcname:
func_ea = [i for i in Functions() if name in GetFunctionName(i)]
for startea in func_ea:
endea = GetFunctionAttr(startea, FUNCATTR_END)
self.debugprint("Start: " + hex(startea) + " End: " + hex(endea))
foundaddress.extend(self.LocateBytes(searchterm, startea, endea))
return foundaddress`
</code></pre>