陷阱技术探秘----动态汉化Windows技术的分析(1) "陷阱"技术探秘----动态汉化Windows技术的分析 摘 要: 四通利方(RichWin),中文之星(CStar)是大家广为熟知的汉化Windows产品, "陷阱”技术即动态修改Windows代码,一直是其对外宣称的过人技术,它究竟是如 何实现的,这自然是核心机密。本文试图解开这个秘密,并同时介躓indows的模块 调用机制与重定位概念,并给出了采用"陷阱"技术动态修改Windows代码的示例源程 序。 一、发现了什么? 作者多年来一直从事Windows下的软件开发工作,经历 了Windows2.0、3.0、3.1,直至WindowsNT,95的成长过程,也遍历 了长青窗口、长城窗口、DBWin、CStar、RichWin等多个Windows汉化 产品。从现在看来,影响最大也最为成功的,当推四通利方 的RichWin,此外,中文之星CStar与RichWin师出一门,其核心技术 自然也差不许多。其对外宣传采用独特的“陷阱”技术动态 修改Windows代码,一直是作者感兴趣的地方。 EXEHDR是MicrosoftVisualC++开发工具中很有用的一个程 序,它可以检查NE(New_Executable)格式文件,用它来分析RichWin 的WSENGINE.DLL或CStar的CHINESE.DLL就会发现与众不同的两点: ( 以CStar 1.20 为 例) C:\CSTAR>exehdr chinese.dll /v .................................. 6 type offset target BASE060aseg 2 offset 0000 PTR 047eimp GDI.GETCHARABCWIDTHS PTR 059bimp GDI.ENUMFONTFAMILIES PTR 0451imp DISPLAY.14( EXTTEXTOUT ) PTR 0415imp KEYBOARD.4( TOASCII ) PTR 04baimp KEYBOARD.5( ANSITOOEM ) PTR 04c9imp KEYBOARD.6( OEMTOANSI ) PTR 04d8imp KEYBOARD.134( ANSITOOEMBUFF) PTR 05f5imp USER.430( LSTRCMP ) PTR 04e7imp KEYBOARD.135( OEMTOANSIBUFF) PTR 0514imp USER.431( ANSIUPPER) PTR 0523imp USER.432( ANSILOWER ) PTR 05aaimp GDI.56( CREATEFONT) PTR 056eimp USER.433( ISCHARALPHA ) PTR 05b9imp GDI.57( CREATEFONTINDIRECT ) PTR 057dimp USER.434( ISCHARALPHANUMERIC ) PTR 049cimp USER.179( GETSYSTEMMETRICS ) PTR 0550imp USER.435( ISCHARUPPER) PTR 055fimp USER.436( ISCHARLOWER) PTR 0532imp USER.437( ANSIUPPERBUFF) PTR 0541imp USER.438( ANSILOWERBUFF) PTR 05c8imp GDI.69( DELETEOBJECT ) PTR 058cimp GDI.70( ENUMFONTS ) PTR 04abimp KERNEL.ISDBCSLEADBYTE PTR 05d7imp GDI.82( GETOBJECT) PTR 048dimp KERNEL.74 ( OPENFILE )