首页
社区
课程
招聘
关于OD的使用
发表于: 2013-3-6 23:17 3413

关于OD的使用

2013-3-6 23:17
3413
有一个程序有OD 要改其他一个代码,将“SETE DL”  nop掉

原程序如下:
0095C480    8B85 30FCFFFF        MOV EAX,DWORD PTR SS:[EBP-3D0]
0095C486    BA BCCA9500           MOV EDX,0095CABC
0095C48B    E8 F091AAFF            CALL 00405680
0095C490    0F94C2                    SETE DL
0095C493    8B03                         MOV EAX,DWORD PTR DS:[EBX]
0095C495    E8 16FEF2FF            CALL 0088C2B0
0095C49A    68 74CA9500           PUSH 0095CA74        

我改写的代码如下:
MOV DWORD PTR DS:[95C490],90
MOV DWORD PTR DS:[95C491],90
MOV DWORD PTR DS:[95C492],90

为什么程序在运行时,不止把“SETE DL”代码nop掉,也将后面的3个字节也改为00。
是我写错了吗? 求大侠帮帮忙

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
MOV BYTE PTR DS:[95C490],90
2013-3-6 23:59
0
雪    币: 455
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上正解,,
2013-3-7 00:03
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
原因是你MOV DWORD PTR DS:[95C490],90的时候是吧从95C490开始的4个字节改成了00000090所以你把后面的换成了0了 应该写成mov word ptr ds:[95C490],9090;mov byte ptr ds:[95C492],90;这样就达到了修改3字节,而你的确修改了6字节而你的最后一个mov dword ptr ds:[95C493],90等于修改了从95C493开始的4个字节 而90四字节却是00000090在内存以byte显示为90000000所以从95C493开始就是后面的3字节被改成0 了
2013-3-7 04:37
0
雪    币: 605
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢啊,看了一晚的代码,头昏眼花的,居然这么小的问题都没看出来
2013-3-7 07:19
0
游客
登录 | 注册 方可回帖
返回
//