• 标 题:IDA4.30文本窗中难看的分界线的patch (1千字)
  • 作 者:softdim[CCG]
  • 时 间:2003-2-1 22:34:46
  • 链 接:http://bbs.pediy.com

IDA4.30文本窗中难看的分界线的patch
    IDA的分界线的显示是调用函数ExtTextOutA
我在这个函数的要显示的字符串入栈后判断并修改这个字符串,并设置了彩色。
原来的分界线: ???????????????????????????????????????????????????????????????????????????
修改后的    :══════════════════════════════════════
程序段如下:
477FC2:    jmp 4E9060;空白的地方
.....
.....
4E9060:
    NOP                         
        push    eax
        push    esi
        mov    esi, [esp]
        lodsd
        cmp    eax, 0DBDB203Bh//字符串"; ???????????"
        jnz    nextfix
        lodsd
        cmp    eax, 0DBDBDBDBh
        jnz    short nextfix
        lodsd
        cmp    eax, 0DBDBDBDBh//我比较了三次,以提高准确性,其实一次或两次就差不多了
        jnz    short nextfix
    PUSH    ColorValue
    push    hDC
    call    SetTextColor
        pop    esi
        pop    eax       
    mov    dword ptr [esp], offset str1 ;//这是我定义的字符串
        push    0
        mov    eax, [ebx+54h]
        jmp    477FC7
nextfix:
        mov    esi, [esp+8]
        lodsd
        cmp    eax, 0C4C4203Bh//这是另一个要修正的字符串
        jnz    short exit
        lodsd
    cmp    eax, 0C4C4C4C4h
    jnz    short exit
    lodsd
    cmp    eax, 0C4C4C4C4h
    jnz    short exit
    PUSH    ColorValue
    push    hDC
    call    SetTextColor
    pop    esi
        pop    eax
        mov    dword ptr [esp], offset str2//这是我定义的字符串
        push    0
        mov    eax, [ebx+54h]
        jmp    477FC7

exit:
        pop    esi
        pop    eax
        push    0
    mov    eax, [ebx+54h]
    jmp    477FC7
至于为什么要拦截ExtTextOutA这个函数,各位看一下MSDN
that's all
另:对汉化补丁有兴趣或需要的朋友,可以mail to me:
softdim@vip.sina.com
因为这个补丁我还没有制作,我只是汉化过的idag.exe这个文件.