首页
社区
课程
招聘
[讨论]请问这三句指令在病毒中有什么作用?笔试题
发表于: 2009-4-2 13:07 10648

[讨论]请问这三句指令在病毒中有什么作用?笔试题

2009-4-2 13:07
10648
最近去个公司应聘,其中有个笔试题是:

下面的代码有什么作用?该代码在病毒中使用较广泛,请问都是在病毒的哪个部分使用,有什么作用。

代码如下:

00401000 >   /E9 00000000   jmp     00401005
00401005     \5D            pop     ebp
00401006      83ED 05       sub     ebp, 5

就只有这三句指令,问功能是干嘛的,有什么作用。

我对比了一下当时做的记录。

是我写错了,不好意思,大家。

第一句是call,不是jmp。

三句机器码是:
E8 00000000
5D
83ED 05

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

收藏
免费 0
支持
分享
最新回复 (35)
雪    币: 235
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
CALL 是重定位
JMP 就不知道了
2009-4-2 13:23
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
重定位第一句是call 00401005,不是jmp 00401005
2009-4-2 13:34
0
雪    币: 1705
活跃值: (41)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
无条件转移指令JMP
堆栈操作指令 PUSH和POP
减法指令SUB(SUBtract)
2009-4-2 13:36
0
雪    币: 151
活跃值: (29)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
第一句是call吧?会不会是先让你改错,然后在说功能的?
2009-4-2 13:41
0
雪    币: 2393
活跃值: (1387)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
第一行應該是 Call 不是 jmp
2F 和 3F 己經是正解.

我再多說一句.
三行指令跑完, BP 就是取得第一行的地址.
也就是 2F 和 3F 所說的, 做重定位之用.
2009-4-2 13:44
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
7
估计这个是正解~~~
2009-4-2 14:00
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
8
主要用来反调试和反跟踪~~~
2009-4-2 14:02
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我对比了一下当时做的记录。

是我写错了,不好意思,大家。

第一句是call,不是jmp。

三句机器码是:
E8 00000000
5D
83ED 05
2009-4-2 14:22
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
10
这公司太没趣了
2009-4-2 15:23
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
11
同楼上。。。。。。。
2009-4-2 15:42
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
12
我来顶楼上~~~~~~~
2009-4-2 15:50
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
00401000 >   /E9 00000000   jmp     00401005
00401005     \5D            pop     ebp
00401006      83ED 05       sub     ebp, 5

jmp 无条件跳向该地址
pop ebp 弹出的堆栈
然后 ebp -5
不知道这段表达什么意思!
2009-4-2 16:05
0
雪    币: 246
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
14
典型的病毒重定位代码,可看看病毒编写基础知识。
2009-4-2 16:26
0
雪    币: 70
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
执行完成后 ebp = 401000
2009-4-2 16:55
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
16
ebp抄成esp, call抄成jmp
就算应试上了.你真敢进去上班?
2009-4-2 17:22
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不敢去,差距太远了。
2009-4-2 18:37
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
18
POP啥都可以
2009-4-2 20:07
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
19
不过esp应该就不行吧。
2009-4-2 20:10
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
20
POP = 做广告海报的, 要会美工
Pointop of purchase
2009-4-2 20:35
0
雪    币: 1145
活跃值: (387)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
看来我出名了
2009-4-3 23:19
0
雪    币: 370
活跃值: (52)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
22
可以翻译成:call @F
         @@:  pop ebp
                  sub ebp,5 ;5是call @F的指令长度,ebp保存病毒代码装入基地,用于重定位
2009-4-3 23:53
0
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
晕,这个公司很好很强大啊!呵呵
2009-4-7 16:48
0
雪    币: 247
活跃值: (42)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24
00401000 >   /E9 00000000   jmp     00401005 无条件跳转到00401005,跟call有类似之处
00401005     \5D            pop     ebp   把ebp出栈,与push ebp是匹配试用
00401006      83ED 05       sub     ebp, 5  把弹出的ebp减去5    ,就是ebp-5的一个减法运算,也可以用 add ebp,-5
2009-4-7 17:45
0
雪    币: 315
活跃值: (23)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
25
好强大的公司,居然用这个问题做笔试。
楼主应该告诉下公司名称............
如果机器码E8 00000000地址处是OEP的话,
那么这段代码功能是求重定位后OEP的偏移。
2009-4-7 17:49
0
游客
登录 | 注册 方可回帖
返回
//