4.8 IDA 6.0的idautils.Segments()返回的不是list
http://scz.617.cn/misc/201103081652.txt
A: scz@nsfocus 2011-03-08 16:52
以前IDAPython的idautils.Segments()返回list,得用s[i]获取各个段的起始地址。 不知从哪个版本开始,idautils.Segments()不再直接返回list,而是调用了yield, 这意味着Segments()变成一个"生成器函数"。可用如下方式获取各个段的起始地址:
for ea in Segments() : print ea
至少IDA 6.0自带的IDAPython是这样的,两年前写的一个脚本今天被迫做了改动。
D: rmmu
最小修改方案是将Segments()改成list( Segments() )
D: scz
我对Python研究不深,原来"生成器函数"还可以用list()直接转换成list,长见识了。