2

IDA7.0 中文字符搜索的实现方法(17.10.13更新内容)

LOCKLOSE 2017-10-2 02:37 5101
2017.10.13更新
主要更新CLT文件内容, 去掉了u20..u7F,因为会影响到F5高亮功能(感谢 地狱怪客 反馈),另外提供一种修改方法.
方法1:
1:保存Chinese.clt文件到IDA\CFG目录中.
将以下内容保存为clt文件,
u2000..u206F,
u2F00..u2FDF,
u3000..u303F,
u31C0..u31EF,
u3400..u4DBF,
u4E00..u9FFF,
uF900..uFAFF,
uFE30..uFE4F,
u20000..u2A6DF,
u2A700..u2BA7F,
u2B740..u2B81F,
u2F800..u2FA1F;

2:修改IDA.CFG文件中ENCODING_CULTURES项目.添加一条GB2312:Chinese, 注意格式别写错.这里的Chinese对应上面保存的clt文件.不需要.clt扩展名.

ENCODING_CULTURES =
        1250: Central_Europe,
        1251: Cyrillic,
        1252: Latin_1,
        1253: Greek,
        1254: Turkish,
        1255: Hebrew,
        1256: Arabic,
        1257: Baltic,
        1258: Vietnam,
        874: Thai,
        GB2312: Chinese, //这里是添加的.
        cp863: Latin_1 Greek;

方法2:
1:同样保存clt文件到ida\cfg目录下,但并不修改ENCODING_CULTURES项目.
2:添加StrlitChars项目Culture_Chinese,注意:这里使用clt文件需要加上Culture_.作为声明.否则IDA不会查找clt文件并使用.

两种方法,使用的都是clt文件.当然也可以使用内置的Culture_CJK_Unified_Ideographs.该项目在NameChars中注释.


最后.看下同一个文件OD的ustrref插件搜索与IDA搜索的对比.

上传的附件:
  • 1.jpg (50.90kb,16次下载)
最新回复 (40)
chixiaojie 2017-10-2 02:51
2
真的解决了吗?感谢!
2
LOCKLOSE 2017-10-2 02:57
3
目前我这里测试中文是没什么问题了.当然乱码情况还是有的.有些还是需要手动去A一下的.睡觉了,现在真困了.
最好等IDA自动分析完成以后在搜索字符.否则会有乱码.
chixiaojie 2017-10-2 04:20
4
经测试,对于Delphi  7  写的程序无效,还是会乱码。
无边 2017-10-2 04:45
5
chixiaojie 经测试,对于Delphi 7 写的程序无效,还是会乱码。
Delphi  7不是unicode。
killbr 2017-10-2 05:22
6
chixiaojie 经测试,对于Delphi 7 写的程序无效,还是会乱码。
是的,没错,楼主能否上传个样本文件?供大家测试你的那个作为依据的参考效果,不然张三一个样本,李四一个样本,最终结果哪个也跟你的结果不一样,因为参考物不一致啊。
jgs 2017-10-2 09:14
7
谢谢楼主,该方法确实有效
atompure 2017-10-2 09:17
8
谢谢分享,  国庆假期快乐!
xie风腾 2017-10-2 09:30
9
多谢楼主分享哟
rongge 2017-10-2 09:38
10
支持ida6.7吗
boyving 2017-10-2 09:40
11
感觉为什么还是乱码呀?是不是还需要哪里设置一下哦。
MaYil 2017-10-2 11:25
12
感谢分享
chhzh 2017-10-2 13:32
13
不错,可以显示!!感谢分享
nqxcwl 2017-10-2 14:47
14
有没有demo程序看看??
8
kanxue 2017-10-4 15:53
15
ASCII版程序的中文字符串可以显示,但Unicode版的显示还是乱码
chixiaojie 2017-10-4 16:13
16
所以说这个手术做的还不够完美,有待完善。
2
LOCKLOSE 2017-10-4 18:17
17
kanxue ASCII版程序的中文字符串可以显示,但Unicode版的显示还是乱码
发个UNICODE的例子.UNICODE的是IDA本身的问题了吧.我这自己写程序测试.没问题.
8
kanxue 2017-10-4 19:01
18
这里,供参考。
上传的附件:
2
LOCKLOSE 2017-10-4 20:08
19
IDA自己的问题.识别错了...但是能显示出来.需要手动处理一下.
这个应该是它自己的问题.要自动识别出来估计只能写插件实现了.

上传的附件:
chixiaojie 2017-10-4 20:16
20
恭喜一刀再一次完美解决中文显示问题,看来还是IDA本身的问题。
聖blue 2017-10-5 20:28
21
感谢分享!!!!
chixiaojie 2017-10-6 16:28
22
期待一刀大牛放出最终完美解决的方案。
值得怀疑 2017-10-6 21:38
23
LOCKLOSE IDA自己的问题.识别错了...但是能显示出来.需要手动处理一下.这个应该是它自己的问题.要自动识别出来估计只能写插件实现了.
对啊  unicode  识别不了啊···
5
china 2017-10-8 21:53
24
一刀,做个插件出来吧
66
KuNgBiM 2017-10-9 14:40
25
感谢一刀,我来补充一下:
u20..u7F,
u80..uFF,
u2000..u206F,
u2E80..u2EFF,
u2F00..u2FDF,
u2FF0..u2FFF,
u3000..u303F,
u3100..u312F,
u31A0..u31BF,
u31C0..u31EF,
u3200..u32FF,
u3300..u33FF,
u3400..u4DBF,
u4DC0..u4DFF,
u4E00..u9FFF,
uA000..uA4FF,
uAC00..uD7FF,
uF900..uFAFF,
uFE10..uFE1F,
uFE30..uFE4F,
uFF00..uFFEF,
u20000..u215FF,
u21600..u230FF,
u23100..u245FF,
u24600..u260FF,
u26100..u275FF,
u27600..u290FF,
u29100..u2A6DF,
u2A700..u2B73F,
u2B740..u2B81F,
u2B820..u2CEAF,
u2CEB0..u2EBEF,
u2F800..u2FA1F;
chixiaojie 2017-10-9 17:52
26
老k补充的完美吗?
2
LOCKLOSE 2017-10-9 21:19
27
基本全了.有些感觉用不到.我就给省略了.
yzlong 2017-10-9 22:04
28
不知道各位大神手感如何,    我这边基本都是手动A出来字符串的
chixiaojie 2017-10-9 22:14
29
LOCKLOSE 基本全了.有些感觉用不到.我就给省略了.
Unicode  字符的识别还是乱码呀,然道没有一个能给出完美的解决方案吗?
2
LOCKLOSE 2017-10-9 22:46
30
ida本身支持Unicode,不能自动识别而已,手动一样可以显示,自动识别我目前在找最优方法
考拉 2017-10-10 12:09
31
感谢分享 
2
LOCKLOSE 2017-10-11 08:39
32
Unicode的显示加上一条就行了.不过效果不理想.
ida.cfg添加cp_utf16le:Chinese,
这样就可以显示一些了.但是代码分析那部分还是老样子.该识别错的依然是识别错的.
2
地狱怪客 2017-10-13 15:43
33
根据楼主的描述操作发现1个大问题,F5的选中高亮无法使用了。。。现在点一下直接选中一整行

2
LOCKLOSE 2017-10-13 15:54
34
地狱怪客 根据楼主的描述操作发现1个大问题,F5的选中高亮无法使用了。。。现在点一下直接选中一整行
可以将clt文件加到StrlitChars下面.但需要"Culture_clt的文件名",这种形式,在去掉ENCODING_CULTURES项目中添加的.F5功能就正常了.也不影响中文ANSI.
2
地狱怪客 2017-10-13 16:06
35
LOCKLOSE 可以将clt文件加到StrlitChars下面.但需要"Culture_clt的文件名",这种形式,在去掉ENCODING_CULTURES项目中添加的.F5功能就正常了.也不影响 ...
我把u20..u7F,去掉就好了。。
2
LOCKLOSE 2017-10-13 16:44
36
....好吧.原来是英文字符那个惹得.
chixiaojie 2017-10-14 17:38
37
具体怎么改,在哪一行改,在哪里添加,要说清楚一点,不然我们怎么入手。
2
LOCKLOSE 2017-10-14 22:24
38
chixiaojie 具体怎么改,在哪一行改,在哪里添加,要说清楚一点,不然我们怎么入手。
修改IDA.CFG.搜索我说的ENCODING_CULTURES或者StrlitChars进行定位.按照原有格式添加逗号.把我说的内容添加上去就可以了.
xinyangs 2017-11-14 15:39
39
问下楼主,我用的是mac  版本的ida  使用您说的第一种方法,还是没有显示中文字符串
VIPJK 2017-12-5 07:46
40
厉害厉害
2
LOCKLOSE 2017-12-5 10:29
41
xinyangs 问下楼主,我用的是mac 版本的ida 使用您说的第一种方法,还是没有显示中文字符串
MAC下的默认中文不是GB2312吧应该.要把GB2312改成对应的才行.
返回