注册 登录
编程论坛 汇编论坛

【下载】RADASM2.2.1.7正式汉化版

非虫 发布于 2009-08-17 14:03, 1376 次点击
RADASM2.2.1.7正式汉化版
汉化说明:
(由于绝大部分汉化来自CCDebugger的语言文件,这里我就不冠名为我个人汉化了。)
非虫部分汉化:fei_cong@

1.程序语言文件为CCDebugger大牛汉化,程序部分汉化部分非标资源。
2.增加dbghelp.dll文件。
3.更新MASM.INI文件。
4.增加masm32.api和macros.api文件(方便列宏和函数)。
5.汉化RADebug.dll文件。

关于RADebug.dll的汉化
使用Radialix 2汉化插件菜单后始终只能显示四个汉字,如第一个切换断点,大小四个汉化,下面的菜单
部分就被切掉,取消“切换断点”的汉化,改下面,“运行”“中断”后,不管如何修改其它的项都不显示。
解决方法:
先使用PASSOLO试试,居然连非标部分都找不出来,使用Sisulizer,程序导演退出,再试试LocPlus(点睛),只能找出第一项“切换断点”,其它项(如“运行”、“停止”)无法找到,最后拿出Restorator,无法找到非标部分。
想了下,以前RADASM作者发过RADEBUG的源码,拿出来一看,发现作者是这样定义的:
MenuItems        db 'Toggle &Breakpoint',VK_TAB,'Ctrl+T',0
                db '&Clear Breakpoints',VK_TAB,'Ctrl+Shift+T',0
                db '-',0
                db '&Run',VK_TAB,'Shift+F7',0
                db '&Stop',VK_TAB,'Alt+F7',0
                db '-',0
                db 'Step &Into',VK_TAB,'F7',0
                db 'Step &Over',VK_TAB,'Ctrl+F7',0
                db 'Run &To Caret',VK_TAB,'Ctrl+Shift+F7',0
                db 'Do not Debug',0
                db 0

再看看处理部分:
CreateDebugMenu proc uses ebx esi edi,hWin:HWND
  LOCAL  mii:MENUITEMINFO

  .if hMnu
    mov    eax,[lpHandles]
    invoke RemoveMenu,[eax].ADDINHANDLES.hMenu,IDAddIn,MF_BYCOMMAND
    invoke DestroyMenu,hMnu
  .else
    mov    edi,offset IDAddIn
    xor    ecx,ecx
    .while ecx<9
      push  ecx
      ; Allocate a new menu id
      invoke SendMessage,hWin,AIM_GETMENUID,0,0
      pop    ecx
      mov    [edi+ecx*4],eax
      inc    ecx
    .endw
  .endif
  invoke CreatePopupMenu
  mov    hMnu,eax
  ;Make menu
  mov    edx,5
  ;Adjust topmost popup if maximized.
  mov    eax,[lpData]
  .if [eax].ADDINDATA.fMaximized
    inc    edx
  .endif
  ;Get handle of edit popup
  mov    eax,[lpHandles]
  invoke GetSubMenu,[eax].ADDINHANDLES.hMenu,edx    ;Edit menu
  push  eax
  ;Add our menuitem
  invoke AppendMenu,eax,MF_POPUP or MF_STRING,hMnu,addr DebugMenu
  mov    edi,offset IDAddIn
  mov    eax,[edi]
  add    edi,4
  mov    mii.cbSize,sizeof MENUITEMINFO
  mov    mii.fMask,MIIM_ID
  mov    mii.wID,eax
  pop    eax
  push  eax
  invoke GetMenuItemCount,eax
  lea    ecx,[eax-1]
  pop    edx
  invoke SetMenuItemInfo,edx,ecx,TRUE,addr mii
  mov    esi,offset MenuItems
  .while byte ptr [esi]
    .if byte ptr [esi]=='-'
      invoke AppendMenu,hMnu,MF_SEPARATOR,0,0
    .else
      ;Add our menuitem
      invoke AppendMenu,hMnu,MF_STRING,[edi],esi
      add    edi,4
    .endif
    invoke lstrlen,esi
    lea    esi,[esi+eax+1]
  .endw
  ret

CreateDebugMenu endp

作者采用循环读取的,由于下面的字符串没有变量名且最后以两个零结尾,即是采用指针方式。
操出OD,超级字符串查找->查找ASCII,看到了:
toggle &breakpoint\tctrl+t,双击后跟随到数据窗口->立即数,数据窗口中看到以下部分:
1000975A  Toggle &Breakpoint.Ctrl+T.&Clear
1000977A   Breakpoints.Ctrl+Shift+T.-.&Run
1000979A  .Shift+F7.Brea&k.Ctrl+Alt+F7.&St
100097BA  op.Alt+F7.-.Step &Into.F7.Step &
100097DA  Over.Ctrl+F7.Run &To Caret.Ctrl+
100097FA  Shift+F7.Do not Debug..MakeFiles
1000981A  .5.3.NoDebug.Show DbgHelp output
1000983A  .Show debug events.Pin output wi
1000985A  ndow.Show register window

直接更改为:
1000975A  切换断点(&B).Ctrl+T.清除断点(&C)
1000977A  .Ctrl+Shift+T.-.运行(&R).Shift+F
1000979A  7.中断(&K).Ctrl+Alt+F7.停止(Alt+
100097BA  F7).-.步入(&S).F7.步过(&O).Ctrl+
100097DA  F7.运行到插入符(&T).Ctrl+Shift+F
100097FA  7.不调试...............MakeFiles
1000981A  .5.3.NoDebug.显示 DbgHelp 输出..
1000983A  .显示调试事件......固定输出窗口.
1000985A  .....显示寄存器窗口.......

(中间分隔的“点”是09H,也就是“\t”),改完后保存,运行,ok!

其它非标部分就使用Radialix来完成,这款工具很强大,最新版现在我的VISTA下运行良好了。
7 回复
#2
nzxhust2009-08-17 20:34
调试工具啊?
#3
zklhp2009-08-17 20:59
好!!!!!!

#4
abcorland2009-08-21 11:36
十分感谢楼主的贡献 谢谢
#5
snowfoxdd2009-08-24 13:35
一定得支持,应该是编程用的工具吧?是调试的么?
#6
xserenade2009-08-30 18:23
版本终于到2.2.1.7了, 支持啊
#7
wotacid2009-09-04 09:27
HELLO
和NASm的连接方法说明在那里可以下载
特别是驱动写法
#8
qwd2009-09-24 20:40
楼主两个文件
有什么不同吗?
1