首页
社区
课程
招聘
不理解。。
发表于: 2006-11-6 13:07 3928

不理解。。

2006-11-6 13:07
3928
.386
.model flat, stdcall
option casemap :none

include                windows.inc
include                kernel32.inc
includelib        kernel32.lib

.code

code_start:
call @f
@@:
code_size equ ($-code_start)
sztmp dd 90909090h

start:
        mov        eax,code_size
        invoke        ExitProcess,code_size
        invoke        ExitProcess,addr sztmp
end start

;///////////////////////////////////////////////////////
00401000    E8 00000000     CALL 00401005
00401005    90              NOP
00401006    90              NOP
00401007    90              NOP
00401008    90              NOP
00401009 >  B8 05000000     MOV EAX,5
0040100E    68 0A000000     PUSH 0A
00401013    E8 0A000000     CALL <JMP.&KERNEL32.ExitProcess>
00401018    68 05104000     PUSH 00401005
0040101D    E8 00000000     CALL <JMP.&KERNEL32.ExitProcess>
00401022  - FF25 00204000   JMP [<&KERNEL32.ExitProcess>]            ; kernel32.ExitProcess

谁可以解释下吗

不用call @f就正常

code_start:
nop
nop
nop
nop
nop
code_size equ ($-code_start)
sztmp dd 11111111h

start:
        mov        eax,code_size
        invoke        ExitProcess,code_size
        invoke        ExitProcess,addr sztmp

00401000    90              NOP
00401001    90              NOP
00401002    90              NOP
00401003    90              NOP
00401004    90              NOP
00401005    1111            ADC [ECX],EDX
00401007    1111            ADC [ECX],EDX
00401009 >  B8 05000000     MOV EAX,5
0040100E    68 05000000     PUSH 5
00401013    E8 0A000000     CALL <JMP.&KERNEL32.ExitProcess>
00401018    68 05104000     PUSH 00401005
0040101D    E8 00000000     CALL <JMP.&KERNEL32.ExitProcess>
00401022  - FF25 00204000   JMP [<&KERNEL32.ExitProcess>]            ; kernel32.ExitProcess


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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
不至于吧,你确定?
2006-11-6 13:51
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
3
mov eax, $ - code_start
push $ - code_start
2006-11-6 13:59
0
雪    币: 294
活跃值: (578)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zxc
4
2006-11-6 15:19
0
雪    币: 1309
活跃值: (232)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
和编译原理有关, equ 是 define 的语义.
第一次计算得到5,
第一次引用, 值是5, then重新计算一次, 得到A
第二次引用, 值是A, then重新计算一次, 得到F
...
  多试试一些编译器, 确定一下
2006-11-6 15:29
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
6
等高人调试编译器
2006-11-6 16:08
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
7
上面几个说的应该是正解
2006-11-7 08:56
0
游客
登录 | 注册 方可回帖
返回
//