| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
服务导航 我要发布 主力频道 空间域名 精华收集 服务器出租 黑客培训 光盘刻录 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> Hack >> 加密解密 >> 正文 用户登录 新用户注册
汇编环境下的源代码调试         ★★★ 【字体:
汇编环境下的源代码调试
作者:AuthorHu… 文章来源:看雪 点击数: 更新时间:2005-6-27
对AF(asm fans)来说,程序中潜在的未知错误是不可避免的也是最头痛的事情之一.如何在ASM环境下调试程序成了整个环节中耗时很多的工作.

许多其它编译器都附带了源代码级的调试器,VC,TC大家都不会陌生,这使得用这些高级语言调试成了一件相对easy的事情,你可以迅速进入事故现场并排除之.ASM不同,微软并没有为他提供一个集成的开发和调试环境,我们一切都得自己来!

好在我们有强大的SoftIce,这使得汇编下的调试工作变得简单,关于SICE下的源代码调试于很多文章,后面将附上罗云彬罗老的一篇介绍文章,在附带的例子里将提供Sice调试的具体实例,你要作的是修改 \hd目录下的debug.bat的内容使其指向你机器上的SICE路径,然后执行dbg.bat文件,then ok,Go!

一、TRW下的源代码调试的实现

调试的另一个选择是使用trw2000,他同样支持源代码调试.具体如何操作呢,

下载DBGLOAD插件使tr支持Coff符号调试.可从TRW的主页下载,不赘述.

首先编写一个目标程序,如win,显示一个窗口并带有一个菜单,菜单只有一项,即EXIT,在编译时打开ml的Zi选项,产生调试符号,如:

ml /c /coff /Zi win.asm

link打开两个选项:/DEBUG 和/DEBUGTYPE:CV(同时便于用SICE调试)

Link /SUBSYSTEM:WINDOWS /DEBUG /DEBUGTYPE:CV [/MAP:win.map] win.obj res\wnd.res

呵呵,用trw2K 直接Load win.exe,trw会自动加载.pdg文件和源文件,用src调整源代码状态,终于我们在trw下也实现了源代码级调试,酷吧!

注:/MAP:win.map可不选,这里主要是为了说明下面的符号调试

附:关于mapsym的符号调试

下面用Mapsym转化.map-->.sym

mapsym.exe -ms win.map

MAPSYM是用来把链接产生的.map文件转化为tr可用的.sym文件.参数格式如下:

Usage: -> Mapsym [-nologo] [-almnst] [-c pefile] -o outfile] infile

-a include alphebatic sort arrays
-l list map file information
-e edit symbols for NTSD parser
-m use module name from infile
-n omit line number information
-nologo omit signon logo
-o outfile symbol outputfile
-s enable line number support [default]
-t include static symbols


这个文件在DDK里,如果你没有DDK可在我主页软件资源找到下载,例子里面已经内含.



按照trw的说明书如果包含行号的话,应该可以加载原文件而实现源代码调试,可惜试验未能成功,只能进行符号调试,哪位成功请指点一二.



附:二、SoftIce下的源代码调试的实现 (Author:罗云彬)
在 Windows 编程中,Soft-ICE 是一件必不可少的调试工具,但 Windows 程序的编程中有很多的时候是和数据结构和 API 打交道,经过编译以后,原来的 mov stRect.left,eax 之类的代码也就变成了 mov [xxxx],eax,invoke UpdateWindow,hWnd 之类的语句也就变成了 push [xxxx]/call [xxxxx] 之类的语句,如果你不记的源程序了,你就根本无法知道你在向什么数据写或者调用什么 API,在 C++ 编程的时候,我们都可以进行源代码级别的跟踪调试,但在汇编中,这可能吗?


答案是可以的,用 Soft-ICE 就可以实现,本文讨论使用 Masm 的情况下用 Soft-ICE 实现源码调试,具体的实现如下:

首先,在编译的时候要生成带符号信息的 Object 文件,这需要打开 ML 程序的两个选项
ML /coff /Zi ...
/coff 告诉编译器产生符号调试格式的 Object 文件。
/Zi 使 Object 文件中包括符号调试信息。
然后也要设置 Link 文件,因为 Soft-ICE 使用 CodeView 格式的调试信息,所以 Link 也要包括下面的选项
Link /DEBUG /DEBUGTYPE:CV ...
/DEBUG 选项告诉 Link 在 exe 文件中包含调试信息。
/DEBUGTYPE:CV 当然是调试信息要用 CodeView 格式啦。
最后,就是如何使用 Soft-ICE 了,如果要使用符号调试功能,你不能再用 Loader32.exe 程序来装入 exe 文件,而是必须用符号转换程序 nmsym,使用方法是在命令行中打入 nmsym /translate:source,package,always /source:. /load:execute,break 你的exe文件,你可以把它编写成一个 bat 文件如下 nmsym /translate:source,package,always /source:. /load:execute,break %1,假定文件名为 debug.bat ,然后你就可以用 debug xxx.exe 来享受源代码调试的乐趣了。
别的一些必要的设置:你必须把 Soft-ICE 的目录和 Masm 的 bin 目录设置到 path 中,因为这些路径中还有些文件要用到。
责任编辑:华夏总编辑  联系方式  Email:华夏总编辑
电话:51228163
  • 上一篇黑客:

  • 下一篇黑客:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关黑客
    五个反弹型后门源代码
    远程IPC种植木马源代码
    php源代码泄露漏洞发掘
    病毒源代码详解(上)
    Ettercap-交换环境下的嗅探器使用
    给新手引路-浓缩汇编基础
    Win32汇编木马初探
    加固 PHP 环境
    五个反弹型后门的源代码
    汇编“免杀”基础知识
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号