def get_string(addr):
out = ""
while True:
if Byte(addr) != 0:
out += chr(Byte(addr))
else:
break
addr += 1
return out
def getTargetAddressData(addr) #addr 代表目标函数的地址
for x in XrefsTo(addr,flags=0):
#print hex(x.frm)
currentaddr = x.frm
prevaddr = PrevHead(currentaddr) #获取当前地址的前一个地址
#print hex(prevaddr)
if GetMnem(prevaddr) == 'mov': #此处‘mov’需根据实际情况中所遇到的指令修改
data = GetOperandValue(prevaddr,1) #获取地址中的第几个值 例如mov eax,exe.0x4000 1所代表的是exe.0x4000这个值 也就是说data = 0x4000 这个地址
print get_string(data) # 此方法就是将data 所代表地址中二进制的值转化为string
getTargetAddressData(0x68B86642)
此脚本主要用于IDA中获取函数参数输出到控制台