当前位置:专业知识首页 >> 网站安全 >> 让w32dasm中的中文串正确显示
让w32dasm中的中文串正确显示
2007-12-20 15:10:59  作者:  来源:互联网  浏览次数:64  文字大小:【】【】【
  •   毫无疑问,w32dasm 是我们的武器。哪一位破客离得了它呀!IDA虽号称最强大,但我一般不愿去碰它。 (w32dasm我用的是自制的白金版, 不象所谓的黄金版有一个丑陋的小黑窗口) 不过,w32dasm有太多地方需要完善。当反汇编有中文 ...
毫无疑问,w32dasm 是我们的武器。哪一位破客离得了它呀!IDA虽号称最强大,但我一般不愿去碰它。 
(w32dasm我用的是自制的白金版, 不象所谓的黄金版有一个丑陋的小黑窗口) 
不过,w32dasm有太多地方需要完善。当反汇编有中文字串的软件时,遇到的一个显著问题是中文串都以乱码显示, 
这可是大大的不好! 现在让我们来解决它! 
首先,用w32dasm 反汇编一个软件(如:notepad.exe), 然后, 然后怎么呢?当然是按下Ctrl-D祭出我们的 
终极法宝softice啦,下断: 
bpx gdi32!textout 
F5后随便在w32dasm中移动一下光标,softice便拦截下来 
按下F12就回到了 下面45E77E处。把附近的代码稍稍细看一下就会发现,作者对于要显示的字串是逐字符显示的,这样做的目的可能是有时为了以红色显示串的某一部分。如从串资源引用窗口双击某一串时,光标将移到那个串上并以红色显示那个串。在大多数情况下用不着这样。我们只要一口气将串显示出来中文串就能正确显示了,这样显示速度还更快! 

Break due to BPX #0187:0045E782  (ET=4.41 seconds) 
:u 45e754 l  40 
原代码段: 
017F:0045E754  6A01                PUSH      01          ;* Change here 
017F:0045E756  8BD6                MOV      EDX,ESI      ;* and here 
017F:0045E758  03D3                ADD      EDX,EBX      ;* and here 
017F:0045E75A  81C2B4126F00        ADD      EDX,006F12B4 
017F:0045E760  52                  PUSH      EDX 
017F:0045E761  FFB3A0126F00        PUSH      DWORD PTR [EBX+006F12A0] 
017F:0045E767  8B4DF4              MOV      ECX,[EBP-0C] 
017F:0045E76A  0FAFCE              IMUL      ECX,ESI 
017F:0045E76D  8B45F8              MOV      EAX,[EBP-08] 
017F:0045E770  03C8                ADD      ECX,EAX 
017F:0045E772  51                  PUSH      ECX 
017F:0045E773  FFB35C126F00        PUSH      DWORD PTR [EBX+006F125C] 
017F:0045E779  E802060500          CALL      GDI32!TextOutA 
017F:0045E77E  46                  INC      ESI 
017F:0045E77F  8B55FC              MOV      EDX,[EBP-04] 
017F:0045E782  3BF2                CMP      ESI,EDX      ;* Change here 
017F:0045E784  0F823BFFFFFF        JB        0045E6C5 
017F:0045E78A  8B8BADF60100        MOV      ECX,[EBX+0001F6AD] 
017F:0045E790  85C9                TEST      ECX,ECX 
017F:0045E792  747B                JZ        0045E80F 

改成如下代码段: 
================ Sun Mar 25 22:21:53 2001 
:u 45e754 l  40 
017F:0045E754  FF75FC              PUSH      DWORD PTR [EBP-04] ;串的长度 
017F:0045E757  90                  NOP 
017F:0045E758  8BD3                MOV      EDX,EBX            ;EBX串的偏移基址,直接置入edx 
017F:0045E75A  81C2B4126F00        ADD      EDX,006F12B4 
017F:0045E760  52                  PUSH      EDX                ;串的地址 
017F:0045E761  FFB3A0126F00        PUSH      DWORD PTR [EBX+006F12A0] 
017F:0045E767  8B4DF4              MOV      ECX,[EBP-0C] 
017F:0045E76A  0FAFCE              IMUL      ECX,ESI 
017F:0045E76D  8B45F8              MOV      EAX,[EBP-08] 
017F:0045E770  03C8                ADD      ECX,EAX 
017F:0045E772  51                  PUSH      ECX 
017F:0045E773  FFB35C126F00        PUSH      DWORD PTR [EBX+006F125C] 
017F:0045E779  E802060500          CALL      GDI32!TextOutA 
017F:0045E77E  46                  INC      ESI 
017F:0045E77F  8B55FC              MOV      EDX,[EBP-04] 
017F:0045E782  3BF6                CMP      ESI,ESI            ; 不用循环了 
017F:0045E784  0F823BFFFFFF        JB        0045E6C5 
017F:0045E78A  8B8BADF60100        MOV      ECX,[EBX+0001F6AD] 
017F:0045E790  85C9                TEST      ECX,ECX 
017F:0045E792  747B                JZ        0045E80F 

建议保留原来的版本,当需要反汇编中文软件时就用这个改良版。

{tag_点击标签样式三}
相关文章
友情链接 | 诚聘英才 | 关于我们 | 版权声明 | 联系我们 | 广告服务


  • 三七互动
  •     津ICP备05013802号    Powered by Phpcms 2007