欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]RadAsm 3.x支持中文注释

[原创]RadAsm 3.x支持中文注释

原版下载地址:
   
https://fbedit.svn.sourceforge.net/svnroot/fbedit/RadASM30/Release/RadASM.zip
        RadAsm是大家熟悉的一款汇编编译器,笔者最近下载了貌似是最新版的,在使用后发现不支持中文注释,如图1

        图1  中文注释乱码
        尽管网上有下载别人共享的中文版本,笔者还是想亲自探个究竟,看下到底是什么原因不支持中文注释,所以,在此记录下修改的过程。
        用OD载入RadAsm.exe,F9 先让程序运行起来,然后下断bp CreateFontA,点击工具栏的快捷按钮新建文档(图2)。断下来后,返回程序领空。

        图2   新建文档
        来到这里。
      

0046644E    E8 6FF70000     call <jmp.&gdi32.GetTextMetricsA>

00466453    0FB645 CF       movzx eax,byte ptr ss:[ebp-0x31]

00466457    8983 AC010000   mov dword ptr ds:[ebx+0x1AC],eax

0046645D    C783 B0010000 0>mov dword ptr ds:[ebx+0x1B0],0x0

00466467    3D 86000000     cmp eax,0x86

0046646C    74 15           je short RadASM.00466483

0046646E    3D 88000000     cmp eax,0x88

00466473    74 0E           je short RadASM.00466483

00466475    3D 80000000     cmp eax,0x80

0046647A    74 07           je short RadASM.00466483

0046647C    3D 81000000     cmp eax,0x81

00466481    75 06           jnz short RadASM.00466489

00466483    8983 B0010000   mov dword ptr ds:[ebx+0x1B0],eax

00466489    FFB3 A4010000   push dword ptr ds:[ebx+0x1A4]

0046648F    FF75 FC         push dword ptr ss:[ebp-0x4]

00466492    E8 DFEAFBFF     call <jmp.&gdi32.SelectObject>


        看上面的00466467处以下,看到很明显的cmp eax,0x86,这里的86就是中国的区号了,那么来个简单粗爆,并且行之有效的修改吧!
0046644E    E8 6FF70000     call <jmp.&gdi32.GetTextMetricsA>

00466453    0FB645 CF       movzx eax,byte ptr ss:[ebp-0x31]

00466457    8983 AC010000   mov dword ptr ds:[ebx+0x1AC],eax

0046645D    C783 B0010000 0>mov dword ptr ds:[ebx+0x1B0],0x0

        将上面这段代码的后三行NOP掉,改为
[COLOR="Red"]mov eax,0x86[/COLOR]

保存并运行,如图3

图3  支持中文注释
        附上修改好的主程序RadAsm.exe:
         RadASM_gb2312.rar

上传的附件 图1 中文注释乱码.jpg
图2 新建文档.jpg
图3 支持中文注释.jpg
RadASM_gb2312.rar

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功