论坛: 编程破解 标题: 使用Win32Asm的朋友请进,我做了个方便大家的程序。 复制本贴地址    
作者: jhkdiy [jhkdiy]    版主   登录
;--------------------------------------------------------------------------------
;程序名:define to equ
;功能:将C语言的常数定义转换为汇编语言格式。
;
;使用环境:win9x/2000/xp
;开发环境:win2000 + RadASM 2.0.4 汉化版 + MASM32V8
;
;作者:jhkdiy
;E-mail:jhkdiy_gzb@21cn.net
;日期:2005/4/30
;版本:1.0
;最后修改日期:2005/5/3


    使用Win32Asm编程的过程中,经常要用到常数定义,如果是有资源的程序更是如此。
自己当初编程时是先将要转换的C语言常数ID复制到程序的常数区.const中,然后再用查找
替换功能去掉#define语句,再一个个地在常数和数值之间加equ。多的时候麻烦死了。
    于是便想开发一个专门用于将这些C语言格式的常数定义转换为汇编格式的程序,刚好
五一有时间就做了个。现在希望大家帮忙测试一下。程序本身使用Win32Asm开发,整个程序
为7kb。

程序下载: http://3h.aostu.com/jhkdiy/soft/define2equ.rar

功能和用法:
1:可以直接将要转换的#define文本复制到文本框中,然后按下“转换”按钮即可
  完成转换。也可以导入RC资源文件,可以是多个文件,这里顺便谢谢Aogo,因为
  看了他的cocoplayer代码后我才会分离多个文件名。程序会自动搜索资源文件的
  #define语句部分,没有#define文本的行是不会添加的。
2:可以使用Equ定义和等于号定义。这一点RadAsm是没有的。
3:可以自动忽略含有负数的常数定义,这个功能对于窗口程序的资源常数ID转换最
  最有用了。这一点RadAsm也没有。
4:程序会自动编排转换后的文本,如原来的文本为:
                    #define IDD_DLG_MAIN 1000
#define IDC_EDT_SOURCE 1001
#define IDC_STC1 -1
#define IDC_EDT_TARGET 1002
  转换后的文本为:
                    IDD_DLG_MAIN equ 1000
IDC_EDT_SOURCE equ 1001
IDC_EDT_TARGET equ 1002
  自动忽略了负数ID。

5:可以将转换后的文本直接复制到剪贴板或者保存为.inc文件。方便独立管理。

注意事项:
每一个#define语句必须单独一行,这也符合C语言的规定。
单独一个资源文件不能超过4kb,否则程序没有这么大的缓冲区来容纳过多的文本。

    如果大家在使用过程中有任何问题,请致电24小时服务热线:)
    jhkdiy_gzb@21cn.net
    我会尽快解决。



[此贴被 jhkdiy(jhkdiy) 在 05月04日13时57分 编辑过]

地主 发表时间: 05-05-04 13:41

回复: jhkdiy [jhkdiy]   版主   登录
紧急增加对 0x100  转换为  100h  的支持, 下载连接不变。 
今天自己用了一下才突然想起对16进制常数的支持。所以立即增加了这个功能。当程序遇到如:
#define IDC_BTN_CLSSRC  0x1014  或
#define IDC_BTN_CLSSRC  0X1014
都会转换成:

IDC_BTN_CLSSRC      equ    1014h

其它功能保持不变。


B1层 发表时间: 05-05-06 02:03

回复: NetDemon [netdemon]   ADMIN   登录


B2层 发表时间: 05-05-06 19:55

回复: jhkdiy [jhkdiy]   版主   登录
谢谢,好开心啊,第一次受到老大的顶帖。

B3层 发表时间: 05-05-07 00:24

回复: 286 [unique]   版主   登录


B4层 发表时间: 05-05-08 09:06

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号