最新版IDA8.3安装教程已更新,请点击以下链接查看,谢谢支持!
接上次x64dbg的话题,现在想用ida(本人安装的是IDA7.6)静态调试程序,但是发现utf-8的字符串都无法显示。如图:
可以看到IDA7.6上和X64dbg不同,String字符串窗口(快捷键Shift+F12打开)中连中文乱码都没有,都是纯ANSI码(纯英文),看来是IDA解析出毛病了,一番搜索后发现吾爱论坛有个帖子,链接如下:(https://www.52pojie.cn/thread-648679-1-1.html)给出解决方法,确实如猜测,是IDA默认按照英文文件环境在解析程序,如帖子中所说的,需要在启动时,添加一个-dCULTURE=all参数,我查阅了下,这个参数是,文化设置(Culture)用于表示程序的语言、区域、日期格式、数字格式等信息。而IDA默认的Culture是英文环境,所以会忽略除ASCII码的一切其他字符串,当然也包括中文,所以我们需要把CULTURE参数设置成ALL,全部解析所有国家的编码。吾爱帖子中,给出的方案是需要写一个批处理来调用ida全编码解析程序,我尝试了下,并不是太方便,因为换一个程序又要重新改写个批处理,比较麻烦,所以请按如下方法更简单。
1.首先,复制一个新IDA快捷方式,并随便取名
2.右击新的图标的快捷方式,点属性,在目标栏的ida路径最后添加如下代码,最后点确定:
-dCULTURE=all
注意:此代码和原来的ida路径后面有一个空格,不要忘记添加。
通过上面的方法设置后,用新的IDA快捷方式重新打开刚刚要分析的程序,可以发现,Strings窗口已经多了一些乱码的字符串,字符串的总数也变多了。如下图:
但是,中文乱码的问题没解决,其实中文乱码也很简单,如下图设置即可。
1.点击IDA菜单栏-Options选项-General选项
2.在打开的IDA Options窗口中,点击Strings选项卡,把Default 8-bit中的GB2312改成UTF-8
3.选择如下图的UTF-8,然后点OK
4. 在确认一遍已修改成功后,再点一次确认,关闭窗口。
如下图,乱码已正常显示。
你可能已注意到上图中左下角的字符串总数并没有变化,那是因为我们应用了新的设置后,由于IDA是静态反编译,读写都是一次性的,并不是动态的,所以我们需要用IDA重新分析下程序,不然会漏掉一些字符串,如下图。
可以发现上图中并没有我们需要的字符串, 所以我们还是老老实实的再分析下程序,最简单的重分析如下:
首先,右击IDA窗口左下角的状态栏中的AU:idle字样,会弹出一个小菜单,点击里面的Reanalyze program,点击后idle字样会不断变化成,重分析的地址,等待重分析结束,变回AU: idle字样即可,进行下一步。
在Strings窗口的任意选一个字符串右击,然后点Rebuild即可。
可以看到识别出的字符串数量又增加了。
再搜索下刚刚的字符串,发现能找到了。
如果你搜索的字符串很短,只有两个字或者一个字,那么需要如下设置.
1.右击Strings窗口中的任意项字符串,点击Setup菜单项
2.在弹出的设置窗口中把Minimal string length改成你需要识别的大小,比如2个字,就改成2即可,最后点确认。(注意:图中标注的Unicode C-style(16 bits),请在上面修改乱码操作失败时,再尝试,本人并未用到)
至此,IDA显示中文的问题已写完,望大家能解决这个问题,大家有什么问题,可以评论或私信我,谢谢观看!