我目前正在开发一个插件和一个导出相当大的 JSON 文件的 ida-python 脚本。
我刚刚注意到,两者有时都会切断输出文件而没有错误消息。有时他们会在 8192 个字符处截断,有时在大约 220000 个字符处截断。我特别感兴趣的是文件的构造不同。
在 C++ 插件中,我打开一个文件指针并构建 JSON-Data,同时循环浏览我的示例,如下所示:
FILE *fp;
fp = qfopen("C:\\output.json" ,"w");
qfprintf(fp,"{\"filename\": \"%s\", \"functions\":[ ", filename);
在 Python 脚本中,我构建了一个(大)字典并使用
fn=GetInputFile()+'.json'
f=open(fn,'w')
f.write(json.dumps(jsonfunc))
当然,我需要完整的输出文件,但我在谷歌上找不到任何帮助。我仍然觉得我错过了一些非常微不足道的东西。
最好的祝福
编辑:通过使用修复
qflush(fp) //<-within the workloop
qfclose(fp)
并分别用于python脚本:
f.close()