| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 686 人关注过本帖
标题:请问:如何更改代码段中的数据,内详。
收藏  订阅  推荐  打印 
hwbnet
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:356
积分:3848
注册:2004-12-9
请问:如何更改代码段中的数据,内详。

cmp dword ptr [ebx+16],60
jnz @F
;这里要实现上面的60改为200,请问如何实现。
@@:
ret
搜索更多相关主题的帖子: 数据  内详  代码  
2007-12-10 19:44
永夜的极光
Rank: 12Rank: 12Rank: 12
等级:版主
威望:26
帖子:2710
积分:35264
注册:2007-10-9

方法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)
学习VIM中,欢迎访问我的blog  http://hi.baidu.com/newkedison
严重鄙视一切把论坛当成作业生成器和人肉搜索引擎的人
2007-12-10 19:53
hwbnet
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:356
积分:3848
注册:2004-12-9

改成这样,结果可以编译,运行出错。
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.pepo.cn/
2007-12-10 23:27
永夜的极光
Rank: 12Rank: 12Rank: 12
等级:版主
威望:26
帖子:2710
积分:35264
注册:2007-10-9

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)
学习VIM中,欢迎访问我的blog  http://hi.baidu.com/newkedison
严重鄙视一切把论坛当成作业生成器和人肉搜索引擎的人
2007-12-11 08:47
hwbnet
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:356
积分:3848
注册:2004-12-9

我写的是WIN32汇编,用AX传CS值更正后还是运行出错。
听说要将代码节改为可写,不知道怎样改。

胡文斌 本人论坛:http://hwbnet.bbs.pepo.cn/
2007-12-11 13:23
永夜的极光
Rank: 12Rank: 12Rank: 12
等级:版主
威望:26
帖子:2710
积分:35264
注册:2007-10-9

Win32汇编我就不懂了

从BFS(Breadth First Study)到DFS(Depth First Study)
学习VIM中,欢迎访问我的blog  http://hi.baidu.com/newkedison
严重鄙视一切把论坛当成作业生成器和人肉搜索引擎的人
2007-12-11 13:43
无理取闹
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:53
帖子:4266
积分:43014
注册:2006-7-26

/section:.text,RWE
在link后面加上上面的 就将代码段改成可读可写可执行

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

win32汇编
病毒 加密
目前兴趣所在
2007-12-11 16:39
hwbnet
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:356
积分:3848
注册:2004-12-9

是我自己的程序中要这样做,不是改别人的程序。
添加连接属性后运行还是出错,请看下面的代码有什么问题。
方案一:
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.pepo.cn/
2007-12-11 17:59
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.080272 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved