首页
社区
课程
招聘
[原创]全面修正IDA Freeware Version 4.9的边界线问题
发表于: 2008-11-9 18:59 5137

[原创]全面修正IDA Freeware Version 4.9的边界线问题

2008-11-9 18:59
5137
由于不同语言字符集问题,使得IDA中的边界线在中文环境下不能正确显示,通常有以下几种情况:

1) 程序头首行:
; 赏屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?

2) 程序头第2或第3行:
; ?    This file is generated by The Interactive Disassembler (IDA)        ?

3) 程序头第4行:
; ?                     Licensed to: Freeware version                      ?s

4) 程序头第5行:
; 韧屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?

5) 每个段(Segment)的起始行:
; 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?

6) 在子程序(SUBROUTINE)开始处:
; 圹圹圹圹圹圹圹?S U B R O U T I N E 圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹?

7) 在无条件跳转指令(jmp)后、在子程序结束后面有数据或者在指令与数据之间:
; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?

经查,情况1)、2)、4)可以通过修改ida.hlp文件解决;解决情况3)要修改ida.hlp及ida.wll两个文件;
情况5)、6)、7)可以修改ida.wll文件解决。

修改后的期望效果如下:
1) 程序头首行(C9h -> 2Bh, CDh -> 3Dh,BBh -> 2Bh):
; +=========================================================================+

2) 程序头第2或第3行(BAh -> 7Ch):
; |     This file is generated by The Interactive Disassembler (IDA)        |

3) 程序头第4行(BAh -> 7Ch):
; |                      Licensed to: Freeware version                      |

4) 程序头第5行(C8h -> 2Bh,CDh -> 3Dh,BCh -> 2Bh):
; +=========================================================================+

5) 每个段(Segment)的起始行(CDh -> 3Dh):
; ===========================================================================

6) 在子程序(SUBROUTINE)开始处(DBh -> 23h):
; ############### S U B R O U T I N E #######################################

7) 在无条件跳转指令(jmp)后、在子程序结束后面有数据或者在指令与数据之间(C4h -> 2Dh):
; ---------------------------------------------------------------------------

以Windows XP Pro SP2 中文版的notepad.exe为例,修改的效果对比如下:

修改前的情况:
; Windows XP Pro SP2 中文版 notepad.exe (file size=151050 bytes, time stamp = 2006-11-02 29:32:28)
.idata:01001000 ;
.idata:01001000 ; 赏屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
.idata:01001000 ; ? This file is generated by The Interactive Disassembler (IDA) ?
.idata:01001000 ; ? Copyright (c) 2006 by DataRescue sa/nv, <ida@datarescue.com> ?
.idata:01001000 ; ? Licensed to: Freeware version ?s
.idata:01001000 ; 韧屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
.idata:01001000 ;
.idata:01001000 ; File Name : d:\temp\notepad.exe
.idata:01001000 ; Format : Portable executable for 80386 (PE)
.idata:01001000 ; Imagebase : 1000000
.idata:01001000 ; Section 1. (virtual address 00001000)
.idata:01001000 ; Virtual size : 00008F58 ( 36696.)
.idata:01001000 ; Section size in file : 00009000 ( 36864.)
.idata:01001000 ; Offset to raw data for section: 00000400
.idata:01001000 ; Flags 60000020: Text Executable Readable
.idata:01001000 ; Alignment : default
.idata:01001000 ;
.idata:01001000 ; Imports from ADVAPI32.dll
.idata:01001000 ;
.idata:01001000
.idata:01001000
.idata:01001000 unicode macro page,string,zero
.idata:01001000 irpc c,<string>
.idata:01001000 db '&c', page
.idata:01001000 endm
.idata:01001000 ifnb <zero>
.idata:01001000 dw zero
.idata:01001000 endif
.idata:01001000 endm
.idata:01001000
.idata:01001000 .686p
.idata:01001000 .mmx
.idata:01001000 .model flat
.idata:01001000
.idata:01001000 ; 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
.idata:01001000
.idata:01001000 ; Segment type: Externs


.text:0100138D ; 圹圹圹圹圹圹圹?S U B R O U T I N E 圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹?
.text:0100138D
.text:0100138D ; Attributes: bp-based frame

.text:01001409 retn 10h
.text:01001409
.text:01001409 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:0100140C dd 90909090h
.text:01001410 db 90h


修改后的效果:
; after files ida.hlp and ida.wll were modified
.idata:01001000 ;
.idata:01001000 ; +=========================================================================+
.idata:01001000 ; | This file is generated by The Interactive Disassembler (IDA) |
.idata:01001000 ; | Copyright (c) 2006 by DataRescue sa/nv, <ida@datarescue.com> |
.idata:01001000 ; | Licensed to: Freeware version |
.idata:01001000 ; +=========================================================================+
.idata:01001000 ;
.idata:01001000 ; File Name : d:\temp\_tc\notepad.exe
.idata:01001000 ; Format : Portable executable for 80386 (PE)
.idata:01001000 ; Imagebase : 1000000
.idata:01001000 ; Section 1. (virtual address 00001000)
.idata:01001000 ; Virtual size : 00008F58 ( 36696.)
.idata:01001000 ; Section size in file : 00009000 ( 36864.)
.idata:01001000 ; Offset to raw data for section: 00000400
.idata:01001000 ; Flags 60000020: Text Executable Readable
.idata:01001000 ; Alignment : default
.idata:01001000 ;
.idata:01001000 ; Imports from ADVAPI32.dll
.idata:01001000 ;
.idata:01001000
.idata:01001000
.idata:01001000 unicode macro page,string,zero
.idata:01001000 irpc c,<string>
.idata:01001000 db '&c', page
.idata:01001000 endm
.idata:01001000 ifnb <zero>
.idata:01001000 dw zero
.idata:01001000 endif
.idata:01001000 endm
.idata:01001000
.idata:01001000 .686p
.idata:01001000 .mmx
.idata:01001000 .model flat
.idata:01001000
.idata:01001000 ; ===========================================================================
.idata:01001000
.idata:01001000 ; Segment type: Externs

.text:0100138D ; ############### S U B R O U T I N E #######################################
.text:0100138D
.text:0100138D ; Attributes: bp-based frame


.text:01001409 retn 10h
.text:01001409
.text:01001409 ; ---------------------------------------------------------------------------
.text:0100140C dd 90909090h
.text:01001410 db 90h


IDA Freeware Version 4.9 的下载:
1)访问网页
http://www.hex-rays.com/idapro/idadownfreeware.htm

2)直接下载(地址可能会有变化)
http://85.17.201.4/files/idafree49.exe

如果想直接使用请下载修改好的文件: IdaFreeware_V4.9_Border_Patched_files.rar

如果想自己打补丁请下载修改前后的比较及内含的AnyPatch程序: IDA_Freeware V4.9_Border_Problem_Patch.rar

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
哈哈,我一直就看着

屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?

过来的,已经挺习惯了,哈。

话说hex-rays的插件快过期了。
2008-11-9 19:14
0
雪    币: 67
活跃值: (66)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
IDA Freeware Version 4.9 我也收藏了 呵呵
2008-11-9 22:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
呵榀,我也有啊啊
2008-11-9 22:15
0
游客
登录 | 注册 方可回帖
返回
//