在我给我的IDA加一个findcrypt3插件想查看文件里面有哪些加密的时候,发现我下载的脚本在IDA插件里面确实出现了,但是运行的时候总是提醒我那个脚本.py文件什么什么行有什么问题,大概就像下面这一幅图一样:
然后我就在博客里面疯狂搜索,可算是找到一篇文章说明这种情况的原因:大概是因为yara-python 4.3.0这一个版本对
yara.StringMatch 做了修改,现在 yara.StringMatch不是列表了。
解决办法也很简单,就是找到我们的python脚本的 yarasearch 函数,按以下方式修改:
def yarasearch(self, memory, offsets, rules):
print(">>> start yara search")
values = list()
matches = rules.match(data=memory)
for match in matches:
for stringR in match.strings:
name = match.rule
for string in stringR.instances:
if name.endswith("_API"):
try:
name = name + "_" + idc.GetString(self.toVirtualAddress(string.offset, offsets))
except:
pass
value = [
self.toVirtualAddress(string.offset, offsets),
match.namespace,
name + "_" + hex(self.toVirtualAddress(string.offset, offsets)).lstrip("0x").rstrip("L").upper(),
stringR.identifier,
repr(string.matched_data)
]
idaapi.set_name(value[0], name
+ "_"
+ hex(self.toVirtualAddress(string.offset, offsets)).lstrip("0x").rstrip("L").upper()
, 0)
values.append(value)
print("<<< end yara search")
return values
这样一来就解决了这个问题
参考来自于:IDA findcrypt3插件在yara-python 4.3.0以上版本的问题_findcrypt插件-CSDN博客
Comments | NOTHING