【下载】RADASM2.2.1.7正式汉化版
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下运行良好了。
radasm2.2.1.7.part01.rar
(976.14 KB)
radasm2.2.1.7.part02.rar
(894.47 KB)