| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1396 人关注过本帖
标题:请问:如何更改代码段中的数据,内详。
只看楼主 加入收藏
hwbnet
Rank: 1
等 级:新手上路
威 望:2
帖 子:355
专家分:0
注 册:2004-12-9
收藏
 问题点数:0 回复次数:7 
请问:如何更改代码段中的数据,内详。
cmp dword ptr [ebx+16],60
jnz @F
;这里要实现上面的60改为200,请问如何实现。
@@:
ret
搜索更多相关主题的帖子: 数据 内详 代码 
2007-12-10 19:44
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
方法1:
cmp dword ptr [ebx+16],60换成cmp dword ptr [ebx+16],eax,每次到这里的时候设置eax的值

方法2:
cmp dword ptr [ebx+16],60这一句后面加一个标号,如:
value1:nop
然后把DS赋值为CS,偏移量为offset value1-4的位置就是60这个数了,直接修改就好

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-12-10 19:53
hwbnet
Rank: 1
等 级:新手上路
威 望:2
帖 子:355
专家分:0
注 册:2004-12-9
收藏
得分:0 
改成这样,结果可以编译,运行出错。
cmp dword ptr [ebx+16],60
@cs:
nop
nop
jnz @F
    mov eax,offset @cs
    push ds
    mov ax,cs
    mov ds,ax
    mov DWORD ptr [eax-4],61
    pop ds
@@:
ret

胡文斌 本人论坛:http://hwbnet.bbs./
2007-12-10 23:27
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
DATAS SEGMENT
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    mov ax,cs
    mov ds,ax
    
    mov ax,'A'
    mov cx,26
    l1:
        mov dl,'A'
        value1:
        mov ah,02H
        int 21H
        inc al
        mov bx,offset value1
        mov [bx-1],al
    loop l1
    mov ah,4CH
    int 21H
CODES ENDS
    END START
这样可以运行,显示结果A~Z

你上面的程序,用了ax来改变ds,后面又用到了eax,这个时候eax已经不是offset @cs了
另外,你写的是16位还是32位的程序,不能混着用的

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-12-11 08:47
hwbnet
Rank: 1
等 级:新手上路
威 望:2
帖 子:355
专家分:0
注 册:2004-12-9
收藏
得分:0 
我写的是WIN32汇编,用AX传CS值更正后还是运行出错。
听说要将代码节改为可写,不知道怎样改。

胡文斌 本人论坛:http://hwbnet.bbs./
2007-12-11 13:23
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
Win32汇编我就不懂了

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-12-11 13:43
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
/section:.text,RWE
在link后面加上上面的 就将代码段改成可读可写可执行

对于你那个问题 如果是改一个别人的程序可以用一些调试工具试试比如OllyDBG

win32汇编
病毒 加密
目前兴趣所在
2007-12-11 16:39
hwbnet
Rank: 1
等 级:新手上路
威 望:2
帖 子:355
专家分:0
注 册:2004-12-9
收藏
得分:0 
是我自己的程序中要这样做,不是改别人的程序。
添加连接属性后运行还是出错,请看下面的代码有什么问题。
方案一:
cmp dword ptr [ebx+16],60
@cs:
nop
nop
jnz @F
    push ds
    mov ax,cs
    mov ds,ax
    mov eax,offset @cs
    mov DWORD ptr [eax-4],61
    pop ds
@@:
ret
方案二:
cmp dword ptr [ebx+16],60
@cs:
nop
nop
jnz @F
    mov eax,offset @cs
    mov DWORD ptr cs:[eax-4],61
@@:
ret

胡文斌 本人论坛:http://hwbnet.bbs./
2007-12-11 17:59
快速回复:请问:如何更改代码段中的数据,内详。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018471 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved