首页
社区
课程
招聘
xxxxxx
发表于: 2008-4-15 15:30 3517

xxxxxx

2008-4-15 15:30
3517
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
xxxxxx
2008-4-15 19:20
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
我看出点端倪来,你看看对不对:
你的pop esp 那条指令不对,堆栈中已经压入了一些数据,弹出的值不是你要保存的值。
而且即使你将这条指令改正,我想程序也可能不对,因为你将数据放在栈里,就在当前栈区的顶部,而栈区里的数据会随着程序的执行发生变化,比如CALL指令,你的数据就被破坏了。

我给你点建议,不一定对啊,但可以参考

你不是找到一块空白的内存区域来写汇编指令吗,在这里再写入一个字符串常量,然后直接引用这个地址,可以使用OD的LABEL功能,就是按一下英文的"分号",不用记地址,大概是这样的:

009335D7 lea eax, [Number]
00xxxxxx jmp 005B8EF1     ;跳回去

Number: db "xxxxxxxxxxx"
2008-4-15 19:47
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
xxxxxx
2008-4-15 19:58
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
5
就在你打代码补丁的地方啊,反正字符串是只读的,写在代码中就可以了。
不记得在汇编语言的书中常见这样的代码吗?
mov eax, offset V1
jmp _goon
V1   dd  0
_goon:
...
2008-4-15 20:03
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
6
等我下过来看看
2008-4-15 20:04
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
7
xxxxxx
2008-4-15 20:16
0
雪    币: 107
活跃值: (1628)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=;]...[/QUOTE]
我们学校拿证 要靠软件考试 草、   报了个程序员
2008-4-15 20:26
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
9
我刚才看了一下,大体说几点:
1,VB字符串是UNICODE编码,你DB时需要编码转换,可能用OD的数据窗口,按CTRL+E直接输入UNICODE
2,LZ你所找的不是关键点,即使用你说的方法打了补丁,程序还是不能按你的意思执行,因为它不只是在这里读取你的输入的号码,而你打补丁的地方应该在读取用户输入的地方
3,注意VB中用到的变量都是VARIAL类型的,不是简单的UNICODE STRING,注意嵌套指针的层数,即LEA和MOV要弄对。
4,今天我没时间深入跟它,LZ自己试试吧
2008-4-15 20:57
0
游客
登录 | 注册 方可回帖
返回
//