用VC++6.0编译调试汇编程序

用VC++6.0编译调试汇编程序
    使用汇编的一点心得,还不完善,希望高手指点。
第一步:新建工程
    新建空的Win32控制台程序。
第二步:添加文件
    把源程序和资源文件添加进新建的工程。
当然也可以在VC++6.0里写源程序并编辑资源文件。
第三步:编译设置
    在程序文件上右击,再点设置(Settings),然后在弹出的对话框中设置命令行参数和输出文件名。
  命令行参数:ml /c /coff 123.asm   输出文件名:123.obj (123就是你写的源程序名字)
用VC++6.0编译调试汇编程序_第1张图片 
第四步:其它参数设置
    点击 ToolOptions ,在弹出的对话框中选择Directories页,设置编译汇编程序所需的include文件、lib文件和编译程序ml.exe的路径。
用VC++6.0编译调试汇编程序_第2张图片 
第五步:编译与调试程序
    有待进一步研究,还没有完全搞清楚。编译、调试没问题,但操作还不熟悉。
用VC++6.0编译调试汇编程序_第3张图片 

后话:程序完成后最好用汇编编译器重新编译连接成正式版本。至于原因,试过就知道了。

OK



     使用VC6调试器源码级调试win32汇编程序
                                                                                                                                                     
                                                                                                              作者:溟初
       本人拙笨,如有错误请批评指正,如有更好的方法或者技巧,欢迎互相交流。 [email protected].。
      
       使用一个好的调试器无疑对学习win32汇编是至关重要的,本人更偏爱VC的强大调试环境,能否用VC调试器调试哪,于是从网上搜搜,找到一篇 Spring.W的文章《贴个用VC++在源码级下调试MASM32汇编程序的方法。。。大家交流。。》,此文就是在此基础上的扩充。
 
编程环境:VC6.0,Masm32v8
 
方法如下:
1、  使用VC6新建一个空工程test(win32 console,win32 application等均可)。
2、  把汇编工程中的文件拷至新建工程目录下(hello.asm,makefile),并把这些文件加入工程中管理。
3、  配置IDE:
(1)、 tools/customize…/tools中添加一个工具nmake。在menu contens中添加一项nmake,Command中填入:nmake.exe,Initial Directory中填入: $(WkspDir),选中use output window。这样就在tools菜单下出现了一个新的菜单项nmake。可以把这个菜单项添加到工具栏中。
(2)、tools/option…/editor在save option中选中save befor running tools。
4、   制作makefile文件:
 
EXE = test.exe                    #指定输出文件
OBJS = hello.obj                 #需要的目标文件
 
LINK_FLAG = /subsystem:windows /DEBUG /OUT:debug/test.exe   #连接选项       
#注: (1)/DEBUG必须存在 。
#         (2)/OUT:debug/test.exe输出可执行文件名要与VC建立的工程名一致。
#         (3)/subsystem:windows:如果是控制台程序,这里需要改为/subsystem:console
 
ML_FLAG = /c /coff /Zi                #编译选项        
#注: /Zi必须存在
 
$(EXE): $(OBJS)
                  Link $(LINK_FLAG) $(OBJS)
.asm.obj:
         ml $(ML_FLAG) $<
5、点击菜单项tools/nmake,调用masm32中的ml,link进行编译连接程序。
 
至此就可以使用VC调试器源码级调试汇编程序了,可以设置断点,察看变量、内存、寄存器等,nmake出现语法错误时可以双击output window中的错误行定位到程序中的指定行,改代码时别忘了要用nmake编译。
注:变量最好不要以@开头定义,比如@num,这样的变量名无法再vc下察看。
 
参考:
http://www.pediy.com/bbshtml/bbs5/pediy50355.htm  作者:Spring.W
http://bbs.pediy.com/showthread.php?s=16dcabc8aa048f28da0e3d5b68712147&threadid=12067 作者:Spring.W
http://www.aogosoft.com/bbs/mixpage.asp?mode=viewoktext&fileid=123 作者:crige
http://asm.yeah.net 《Windows环境下32位汇编语言程序设计》pdf及代码 作者:罗云彬
附件:代码及配置图片(下载 http://bbs.pediy.com/showthread.php?s=&threadid=14196)。
                                                                                                                                                                        2005/6/2

你可能感兴趣的:(病毒汇编和调试逆向技术加脱壳)