最后思考,为什么IDA6.4和IDA6.8都是Default(<no conversion>)
却显示结果不同呢,但是他们的帮助文档中关于<default> 和<no conversion>的描述都是相同的,Default(<no conversion>)这句的意思是Default(默认)就是<no conversion>,
,如上图,编码可选列表中也没有<default>这项,足以见得<default>就是<no conversion>
而帮助文档中显示 <default> - the default encoding for this string type (8-bit or 16-bit)
<no conversion> - the string bytes are printed using the current system encoding (after translating with XlatAsciiOutput array in the configuration file).
<no conversion>是the current system encoding(当前系统编码),那么理论上应该简体中文的系统就是简体中文为<no conversion>的代表了。可是IDA6.8中却默认显示乱码,无法正确显示。
足以见得这是一个BUG。
修复方式是:
1.每次新逆向一个程序时,去'Options'->'ASCII string style'中将ANSI字符串设置成简体中文。
2.上面的方案,太麻烦了,要用户留心一个事情,不符合程序设计的初衷,写程序的初衷就是让机器自动去完成那些我们不想记住,不想完成,繁琐机械的任务,提高生产效率。所以接着我写了一个IDA插件,会在IDB初始化时,自动帮你添加一个当前代码页的编码名,并将当前"8位和多字节字符串"设置到这个编码名上。