论坛: 编程破解 标题: [原创教程]Win32汇编开发环境介绍和RadAsm简明教程 复制本贴地址    
作者: jhkdiy [jhkdiy]    版主   登录


由于文章很长,所以完整的教程在我的主页上,提供本教程完整电子书、RadAsm、文章中用到的例子代码。
这里只节选一部分给大家做个介绍:


Win32汇编开发环境介绍和RadAsm简明教程



作者:jhkdiy



邮件:jhkdiy_gzb@21cn.net 



主页:  http://jhkdiy.icpcn.com  



日期:2005-9-25






      现在很多朋友都在学习汇编语言,一方面汇编语言是大学计算机课程的必修课,另一方面则是为了从其它语言转到汇编语言来,无论什么原因,我认为学习汇编语言是件很有趣的事,学习它不但可以深入了解编程语言的内部表现,也是进一步了解操作系统的途径。可是很多朋友不知道汇编语言也可以开发基于Windows的窗口程序,现在64位CPU都已经在应用了,而在学校学的汇编还是十年前的8086/8088汇编语言,不但是基于Dos环境的16位汇编语言,而且用于开发程序的MASM也是不支持32位的。所以很多朋友的感受是在学校学了汇编等于没学,因为学到的知识在Windows平台上根本用不上或不知如何去用。



      有部分朋友原来学过其它语言,如VB、Delphi、C++等等,随着学习的深入而想学习汇编语言,因为学习加解密和逆向工程汇编是必学的语言。而且如果是追求程序的高效和灵活的话汇编更是不二之选。



      学习汇编语言的基础不难,难的是怎么用的问题,如何能在Windows环境下用汇编语言解决一些实际的应用问题正是很多朋友想了解的知识。这里有必要提一下Win32汇编的编程方式,所谓的Win32Asm就是利用汇编语言来直接调用Windows系统提供的API函数,其中不加任何限制和封装。而现在很多语言都或多或少地对API函数进行了封装,诸如我们熟悉的VC中的MFC就把很多API函数封装成类的成员函数,VB就封装得更厉害了。如果你已经有使用API函数的经验,如果你已经有汇编语言的基础,那么你进入Win32Asm只是换个环境而已,没有其它的路障在你面前。那么究竟如何在已有汇编基础的情况下学习Windows环境的编程呢?有这方面的文章或资料吗?可以说很少!但都是精品,Win32汇编界公认的入门经典是Iczelion的Win32汇编教程,网上同时有它的英文版和中文翻译版下载,如果找不到的话给个邮件给我。另外一个就是国内的罗云彬编著的《Windows环境下32位汇编语言程序设计》网上也有该书的pdf文件下载。可是两种教程都没有介绍在Windows环境下的汇编IDE使用,罗云彬的书依然建议用makefile方式来手工编译程序,而源代码的编辑则用editplus来做。老实说,当一个人已经熟悉了一种环境后在另一个环境下总会有所比较,而比较的结果是:用汇编开发程序还是这么麻烦,我已经习惯了VB、VC等Windows环境下的集成开发环境,一下子要自己整合编辑、编译、连接、运行、调试等的工具确实是一个不好的开端。难道就没有一个类似于Vb、VC的汇编集成开发环境吗?还是那句:很少,但都是精品!最多人使用的莫过于RadAsm了,最新版本是RadASM 2.2.0.3d (09-14-2005),整个程序很像我们熟知的VB开发界面,一样可以像VC那样用向导方式建立一个工程。关键字着色、自动完成API函数等,总之在常用开发环境下有的功能它都有,没有的它也有。它支持多种汇编编译器,目前支持MASM、TASM、NASM、FASM、GoAsm、HLA(High Level Assembly);还支持多国语言,够多了吧。另外一个受人瞩目的汇编IDE是WinAsm,最新的版本是WinAsm V5.0.4.142 ,它同样的是一个出色的汇编开发环境,老实说,我个人感觉它和Radasm并没有很大的区别,无论是开发界面和功能上都大同小异。或许造成用户群的多少只是因为个人喜好不同而造成的。遗憾的是它目前只有英文版,只支持MASM。还有一个小有名气的是Easy Code,最新的版本是Easy Code 1.00.0.0029(9-23-2005),这个开发环境好像是VB环境的近亲,因为第一次看到它的时候以为打开了Vb,实在太像了。而且它对窗口和控件做过了一定的封装,如我们知道双击在VB窗口中建立的按钮可以直接跳到该按钮的代码编辑行,而这个Easy Code也有同样的功能。



      前面说的都是国外的IDE,国内有没有呢?有,我目前知道的只有AogoSoft的MASMPLUS,相信很多朋友都知道http://www.aogosoft.com/,这个国内以纯汇编讨论的编程站点汇集了很多的汇编高手,这个MasmPlus正是站长Aogo大哥写的。这个小型的masmplus颇为简洁,但确有很强大的编辑功能,由于还处于开发中,目前只有测试版,有兴趣的朋友可以到上面的主页里下载试试。



      值得一提的是,上面介绍的所有开发环境都是免费的,让我们真诚地对这些无私奉献的程序英雄们说声谢谢吧。那我们到那里下载这些IDE呢?呵呵,这正是这一段的内容:

。。。。。。。。。。。



[此贴被 jhkdiy(jhkdiy) 在 09月29日14时56分 编辑过]


[此贴被 jhkdiy(jhkdiy) 在 09月29日19时43分 编辑过]

地主 发表时间: 05-09-29 14:54

回复: xiaoshi [xiaoshi]   论坛用户   登录
不错的东西 ,辛苦了。

B1层 发表时间: 05-09-30 20:32

回复: xxbtop [xxbtop]   论坛用户   登录
楼主辛苦了。

B2层 发表时间: 05-10-03 19:33

回复: jhkdiy [jhkdiy]   版主   登录
谢谢大家,文章有问题麻烦通知一下,以便改正。

B3层 发表时间: 05-10-05 20:50

回复: xxbtop [xxbtop]   论坛用户   登录
首先,很感谢你的原创作品。给我很大的帮助。
文章有点问题,在这里
“汇编编译器为Masm32V8.2, 下载后也是一个自解压文件,我把它解压到F:\Asm\masm32\ 文件夹中”
下载下来是一个要安装的文件,只能安装到根目录下。
这样就使得,路径设置要改,我不大会改,造成编译的文件,无法成功。
还有输入的 byte "第一个win32汇编程序"
这里的,中文字符无法输入,显示的是乱码。
我的是XP2系统,不知道是什么问题?
希望你的原创作品能带领大家成长。谢谢!!

B4层 发表时间: 05-10-09 00:52

回复: jhkdiy [jhkdiy]   版主   登录
我要谢谢你,自从文章发布以来你是第一个发现有问题的,出现问题的是我直接以自己的环境来介绍(Win2000),并没有在XP上验证过,如果你下载到的masm32是最新版的,下载解压后是一个安装程序,并不是解压就可以用的。但只要你跟着安装向导安装就可以顺利安装,它规定安装在某一个驱动器的根目录下,如安装在“C:\masm32\”目录下。安装好后只要在RadAsm的设置路径中将masm32的目录改为“C:\masm32”就可以了。
至于无法输入中文是因为字体设置问题,可以设置如下:


B5层 发表时间: 05-10-09 17:05

回复: xxbtop [xxbtop]   论坛用户   登录

帮我看看这个是怎么回事??
D:\masm32\Bin\RC.EXE /v "rsrc.rc"
Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823

Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.


Using codepage 936 as default
Creating rsrc.RES

RC: RCPP -CP 936 -f D:\asm\backupDoc\RCa03172 -g D:\asm\backupDoc\RDa03172 -DRC_INVOKED -D_WIN32 -pc\:/ -E -I. -I .


RC : fatal error RC1110 : could not open rsrc.rc



Make error(s) occured.
Total compile time 282 ms
看 不懂。

B6层 发表时间: 05-10-10 18:53

回复: jhkdiy [jhkdiy]   版主   登录
它提示出错主要是无法打开资源文件,有两种情况:
1:建立工程时选择的工程类型错了,本来没有资源的工程但你选择了有资源的工程。
2:资源文件本身出错。
你可以将你的代码贴出来,这样更便于查错。

B7层 发表时间: 05-10-10 19:27

回复: xxbtop [xxbtop]   论坛用户   登录
代码是这样的

路径这2个哪个是对的??
路径1

路径2



B8层 发表时间: 05-10-11 12:17

回复: jhkdiy [jhkdiy]   版主   登录
路径1和2都没有问题,这个程序是没有资源的,而你可能新建了一个有资源的工程,所以会提示找不到资源文件。你新建一个没有资源的工程项目,然后把代码复制过去,编译运行看看。我在文章中已强调过工程类型的选择会影响编译连接的,你要注意。

B9层 发表时间: 05-10-11 13:25

回复: xxbtop [xxbtop]   论坛用户   登录
终于知道错哪了,原来第二个NULL后面多了一个逗号。
谢谢了。问题解决。

B10层 发表时间: 05-10-11 23:53

回复: jhkdiy [jhkdiy]   版主   登录
呵呵,原来如此啊・・・・・・・

B11层 发表时间: 05-10-12 11:05

论坛: 编程破解

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

粤ICP备05087286号