能力值:
(RANK:350 )
|
-
-
2 楼
xxxxxx
|
能力值:
(RANK:260 )
|
-
-
3 楼
我看出点端倪来,你看看对不对:
你的pop esp 那条指令不对,堆栈中已经压入了一些数据,弹出的值不是你要保存的值。
而且即使你将这条指令改正,我想程序也可能不对,因为你将数据放在栈里,就在当前栈区的顶部,而栈区里的数据会随着程序的执行发生变化,比如CALL指令,你的数据就被破坏了。
我给你点建议,不一定对啊,但可以参考
你不是找到一块空白的内存区域来写汇编指令吗,在这里再写入一个字符串常量,然后直接引用这个地址,可以使用OD的LABEL功能,就是按一下英文的"分号",不用记地址,大概是这样的:
009335D7 lea eax, [Number]
00xxxxxx jmp 005B8EF1 ;跳回去
Number: db "xxxxxxxxxxx"
|
能力值:
(RANK:350 )
|
-
-
4 楼
xxxxxx
|
能力值:
(RANK:260 )
|
-
-
5 楼
就在你打代码补丁的地方啊,反正字符串是只读的,写在代码中就可以了。
不记得在汇编语言的书中常见这样的代码吗?
mov eax, offset V1
jmp _goon
V1 dd 0
_goon:
...
|
能力值:
(RANK:260 )
|
-
-
6 楼
等我下过来看看
|
能力值:
(RANK:350 )
|
-
-
7 楼
xxxxxx
|
能力值:
( LV6,RANK:80 )
|
-
-
8 楼
[QUOTE=;]...[/QUOTE]
我们学校拿证 要靠软件考试 草、 报了个程序员
|
能力值:
(RANK:260 )
|
-
-
9 楼
我刚才看了一下,大体说几点:
1,VB字符串是UNICODE编码,你DB时需要编码转换,可能用OD的数据窗口,按CTRL+E直接输入UNICODE
2,LZ你所找的不是关键点,即使用你说的方法打了补丁,程序还是不能按你的意思执行,因为它不只是在这里读取你的输入的号码,而你打补丁的地方应该在读取用户输入的地方
3,注意VB中用到的变量都是VARIAL类型的,不是简单的UNICODE STRING,注意嵌套指针的层数,即LEA和MOV要弄对。
4,今天我没时间深入跟它,LZ自己试试吧
|
|
|