吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6491|回复: 3
收起左侧

[Other] RADASM2.2.1.7正式汉化版

  [复制链接]
Hmily 发表于 2009-8-17 16:46
RADASM2.2.1.7正式汉化版
汉化说明:
(由于绝大部分汉化来自CCDebugger的语言文件,这里我就不冠名为我个人汉化了。)
非虫部分汉化:fei_cong@hotmail.com

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.7z

1.43 MB, 下载次数: 483, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 1热心值 +1 收起 理由
china豪 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

o97 发表于 2009-8-17 17:09
已下过 用了下还不错
crackforchin 发表于 2009-8-22 09:42
兰州烧饼 发表于 2014-6-26 00:07
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-25 13:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表