固件在解压之后,调用strings工具命令直接获取固件的字符串偏移地址信息。
str_addr_list = []
###num_str输出字符串所在地址和字符串信息,信息如下:
'''
2515844 A_SizeOfUnsignedInt64
2515868 A_SizeOfUnsignedInt
2515888 A_SizeOfObjectId
2515908 A_SizeOfInt
'''
# # str_addr_list=[item.strip().split(' ')[0] for item in Popen(["strings", "--radix=d",filename], stdout=PIPE).communicate()[0].split('\n')]
num_str = Popen(["strings", "--radix=d",filename], stdout=PIPE).communicate()[0].split('\n') ##输出字符串地址和字符串名
for item in num_str:
str_addr = item.strip().split(' ')[0] ###截取字符地址
str_addr_list.append(str_addr)
str_addr_list.remove('')
map(int, str_addr_list)
###最终以列表值为int的形式输出