IDA Create Unicode String(English)

unconvert

IDA对Unicode的处理不能说很烂,但是有的时候却比较蛋疼。例如神马中文之类的,但是除此之外,对于英文的字符串处理在部分地方也是有问题的,例如上面的内容。

同样在idb刚创建的时候对于unicode字符串的解析也存在问题,例如下面的内容:

read

真正的字符串内容应该是ReadFromRegistry。但是ida很蛋疼的把第一个R当作dw给处理掉了,于是剩下了一个眉头的身子。

在创建string之后默认是采用的当前idb数据库的字符串格式,如果想要创建正确的字符串需要用到SetAsciiStyle(http://www.hex-rays.com/products/ida/support/idadoc/613.shtml)。

strtype

需要将新创建的字符串设置为Unicode,如果有多个字符串需要创建那么最简单的办法就是将默认字符串类型修改为Unicode,这样新创建的字符串就能正常的识别了,如果不想修改这个东西可以使用下面的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//
//    This idc adds shortcuts to create unicode strings.
//
 
#include <idc .idc>
 
static main() 
{
    DelHotkey("Shift+U");
 
    AddHotkey("Shift+U","createunicodestring");
    Message("Press Shift+U @ EA to create unicode string");
 
    Message("Registered idc functions");
}
 
// http://www.hex-rays.com/products/ida/support/freefiles/ldrmodules.idc
static MakeNameWithType(ea, type)
{
  auto old_type;
  old_type = GetLongPrm(INF_STRTYPE);
  SetLongPrm(INF_STRTYPE, type);
  MakeStr(ea, BADADDR);
  SetLongPrm(INF_STRTYPE, old_type);
}
 
static createunicodestring()
{
    auto ea;
    ea= ScreenEA();
    MakeNameWithType(ea,ASCSTR_UNICODE);
}
</idc>

修改完成之后的数据应该是这个样子的:

convert

但是这个脚本没有办法处理中文字符,同样用ida自带的创建字符串窗口也没有办法处理中文。为了更方便一些可以使用下面的插件,快捷键Shift+U,会自动将当前数据创建为Unicode格式的字符串。

相关 链接:

http://hiddencodes.wordpress.com/2012/02/09/idc-script-create-unicode-string/

http://www.hex-rays.com/products/ida/support/idadoc/613.shtml

http://www.hex-rays.com/products/ida/support/idadoc/1433.shtml

http://www.hexblog.com/?p=18

http://tuts4you.com/download.php?view.3415

http://www.h4ck.org.cn/2012/04/ida-unicode-string-anylist-and-comment-maker/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值