你好,我正在获取“AttributeError:”tuple“对象在我运行脚本时没有属性”ImplFlags“。我使用的是ironpython,这个脚本只能在ironpython上运行。在
我已经试着改变了“行.ImplFlags“到”row[ImplFlags]”中,但这只会引发以下情况:“NameError:未定义全局名称”“ImplFlags”“”
import clr
clr.AddReferenceToFileAndPath("System.Reflection.dll")
from System.Reflection import MethodAttributes, MethodImplAttributes
def main():
mod = dnlib.DotNet.ModuleDefMD.Load('CrackME.exe')
ss = mod.Assembly.Modules[0].Metadata.StringsStream # Strings stream
ts = mod.Assembly.Modules[0].Metadata.TablesStream # mod.Assembly.Modules[0].TablesStream
size = ts.MethodTable.Rows
for mod in mod.Assembly.Modules:
for typ in mod.Types:
for method in typ.Methods:
for i in xrange(1, size+1):
row = ts.TryReadMethodRow(i)
if row.ImplFlags == int(MethodImplAttributes.IL): # Show only methods having CodeType IL
print 'Name: {0}\tIsSpecial: {1}'.format(ss.Read(row.Name), int(MethodAttributes.SpecialName) & row.Flags != 0)
if __name__ == '__main__':
try:
clr.AddReferenceToFileAndPath('dnlib.dll')
import dnlib
except Exception, ex:
print ex
else:
main()
我真的不知道为什么要这么做。它通常应该打印得很好,但是每次我试图修复元组错误时,它总是抛出新的错误。注意:如果有区别的话,这个脚本应该在IRONPYTHON上运行
目前没有回答
相关问题 更多 >
编程相关推荐