首页
社区
课程
招聘
修改汇编代码问题
发表于: 2005-2-24 02:51 4785

修改汇编代码问题

2005-2-24 02:51
4785




该代码乃是检查时间的关键跳转
把第一次运行时的时间与现在的系统时间对比超过30天则程序自动关闭
改为jne则变为没有超过30天则退出
根据其原理我只要在第一次运行时把时间改成比现在系统时间多30天后再改回来即可
但不明白为什么不能直接nop掉
它下面的jmp就是跳到程序入口(我不懂如何表达反正意思差不多但不是真指OEP)

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
2
将0xC9644的74 76 改为: 90 90。
2005-2-24 08:29
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
3
那行跳转占两个字节,如果只改一个NOP,后面的76会和下面接起来形成新指令。
2005-2-24 09:57
0
雪    币: 204
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
造了个花指令。
2005-2-24 20:36
0
雪    币: 107
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
按楼上的兄弟说法那直接改jmp改如何改已知机器码是E9E7FFF3FF(用jumpgen.v0.4b查的)可问题是原来的只有两个字节能改吗
2005-2-24 20:44
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
6
楼上的说话加上标点好吗?看着有点费劲啊~ 呵呵。
2005-2-24 21:35
0
雪    币: 107
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
晕@@@@@@@@@
我的意思很明白
就是如果原代码只有两个字节但我想改五个字节该怎么改
就象上面那样
000C9644: 7476              je         004C96BC
改为:
000C9644:E9E7FFF3FF        jmp        004C9703     ;其实这是多此一举直接nop既可,因为这条字令相当于它后面的jmp,但如果它后面没有这条jmp的话我可不可以直接改为jmp(这样字节会多出来该怎么办),不果话又说回来如果没有后面那个jmp我也不知道要jmp到该地址呵呵*^_^*
可以改吗
2005-2-24 21:56
0
雪    币: 298
活跃值: (566)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
8
最初由 kkx2008 发布
按楼上的兄弟说法那直接改jmp改如何改已知机器码是E9E7FFF3FF(用jumpgen.v0.4b查的)可问题是原来的只有两个字节能改吗


你都已经改成无条件跳转了,还管它下面的代码作什么,除非还有其他的地方跳回来执行。
2005-2-24 21:58
0
雪    币: 107
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 落魄浪子 发布



你都已经改成无条件跳转了,还管它下面的代码作什么,除非还有其他的地方跳回来执行。


可我的jmp就是要跳到它下面的代码,你说是吧
2005-2-24 22:13
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
10
最初由 kkx2008 发布
晕@@@@@@@@@
我的意思很明白
就是如果原代码只有两个字节但我想改五个字节该怎么改
就象上面那样
000C9644: 7476 je 004C96BC
........


就拿你写的例子来说吧,你要改的地方是000C9644,要jmp去的地方是004C9703,如果你改成功的话,从000C9644到004C9703之间的代码就被你跳过了,所以即使他们被破坏也没关系,也就是可以直接改成5个字节(后面指令的3个字节被破坏)。
当然前提是这之间的代码没有被别的地方再使用。
2005-2-25 08:27
0
雪    币: 122
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
直接改成jmp也行,暴力破解都是一样的啊!!!!!!!!!!!!
2005-2-25 17:20
0
游客
登录 | 注册 方可回帖
返回
//