首页
社区
课程
招聘
第一次用od调试简单程序不成功,很郁闷[求助]
发表于: 2006-2-23 13:08 6664

第一次用od调试简单程序不成功,很郁闷[求助]

2006-2-23 13:08
6664
简单程序如下:
.386
.model flat, stdcall
option casemap:none

.data
var byte ?

.code
start:
        mov al,01H
        mov bl,01h
        add al,bl
        mov var, al
        ret
end start

我想看看变量var的值,可是刚把exe程序用od打开,就弹出对话框:
“不知如何继续,因为内存地址77E6B70C不可读,请尝试更改EIP或忽略程序异常”

我就没办法进行下去了。。
请问这是什么原因啊?如何用od查看一个变量的值啊?
请高手赐教,如果能截个图说明一下就更好了。。
领我这个菜鸟入门吧。。谢谢了。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (12)
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
我试验了一下, 没有出现你说的情况
编译和连接命令如下:
D:\TOBECR>ml /c /Cp /coff a.asm
Microsoft (R) Macro Assembler Version 7.10.4035
Copyright (C) Microsoft Corporation.  All rights reserved.

Assembling: a.asm

D:\TOBECR>link /subsystem:windows a.obj
Microsoft (R) Incremental Linker Version 7.10.4035
Copyright (C) Microsoft Corporation.  All rights reserved.
2006-2-23 16:16
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
我测试过没有问题.可能是你的OD某个插件有问题吧.
2006-2-23 16:22
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
NASM+VC的LINK测试:
global _entry
section .bss
	var resb 1
section .text
_entry:
	mov al,01h
	mov bl,01h
	add al,bl
	mov [var], al
	ret

命令行:
nasmw -f win32 1.asm -o 1.obj
link /entry:entry /subsystem:windows /out:1.exe 1.obj
2006-2-23 16:26
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
最初由 thebutterfly 发布
我试验了一下, 没有出现你说的情况
编译和连接命令如下:
D:\TOBECR>ml /c /Cp /coff a.asm
Microsoft (R) Macro Assembler Version 7.10.4035
Copyright (C) Microsoft Corporation. All rights reserved.
........


你用的masm是哪个软件包带的?Windows Server 2003 SP1 DDK?
我的VC2003中自带ml.exe版本是7.10.3077.
2006-2-23 16:41
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 thebutterfly 发布
我试验了一下, 没有出现你说的情况
编译和连接命令如下:
D:\TOBECR>ml /c /Cp /coff a.asm
Microsoft (R) Macro Assembler Version 7.10.4035
Copyright (C) Microsoft Corporation. All rights reserved.
........


我的是:
I:\OtherPrograme\HuiBian\test>ml /c /coff /Zi TestDebug.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

Assembling: TestDebug.asm

I:\OtherPrograme\HuiBian\test>link /subsystem:console /debug /debugtype:cv TestD
ebug.obj
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

我的masm用的是装masm32 v8。0

我发现有2个地方和上面兄弟用的不同,一个是ml和link的版本。。一个是/subsystem:console
2006-2-23 16:48
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
7
正是, 另外我同学装了VS2005, 里面带的ml版本是8.0, 可惜拷贝过来一运行就提示什么程序未安装成功, 不知该怎么办
2006-2-23 16:48
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 dwing 发布
我测试过没有问题.可能是你的OD某个插件有问题吧.


我用的OD就是从看雪下的啊,除了od那个rar里面自带的插件,其他看雪里面有下载的插件我都没用,我想那个rar包里的插件应该是配置好的吧
2006-2-23 16:50
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
MASM是可以自动link的,如下:
ml /link /subsystem:console 1.asm
用OD打开无问题.

另外VC2005自带版本为8.00.40607.16的ml.exe,可以单独运行,只需要提取以下文件:
mspdb80.dll
msvcr80.dll
link.exe
ml.exe
Microsoft.VC80.CRT.manifest
2006-2-23 17:18
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
10
我用PEiD打开那个msvcrt80.dll, 提示不是有效的PE文件, 是不是这个文件是64位的?
2006-2-23 17:29
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
最初由 dwing 发布
MASM是可以自动link的,如下:
ml /link /subsystem:console 1.asm
用OD打开无问题.

另外VC2005自带版本为8.00.40607.16的ml.exe,可以单独运行,只需要提取以下文件:
........


我发现可能是OllyDbg的问题,我用其他地方下的1。09版本可以打开,用看雪下的1。1版本打不开。。

不知道是不是看雪下的这个OllyDbg不行。。
2006-2-23 17:40
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
最初由 thebutterfly 发布
我用PEiD打开那个msvcrt80.dll, 提示不是有效的PE文件, 是不是这个文件是64位的?

没有msvcrt80.dll,只有msvcr80.dll(572K,版本:8.0.40607.42),是标准PE32的DLL.
2006-2-23 17:44
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
基本搞定了。
重新下了一个OD1。1,打开exe,如果弹出错误对话框,就把光标点到程序的第一行,重新设置EIP,然后F8单步运行就可以跟踪结果了。
2006-2-23 22:49
0
游客
登录 | 注册 方可回帖
返回
//