首页
社区
课程
招聘
[旧帖] [求助]这段代码是什么意思? 0.00雪花
发表于: 2009-10-22 18:10 1425

[旧帖] [求助]这段代码是什么意思? 0.00雪花

2009-10-22 18:10
1425
00430723  /.  55            PUSH EBP
00430724  |.  8BEC          MOV EBP,ESP
00430726  |.  83EC 10       SUB ESP,10
00430729  |.  A1 80AA4300   MOV EAX,DWORD PTR DS:[43AA80]
0043072E  |.  85C0          TEST EAX,EAX
00430730  |.  74 07         JE SHORT LRMCU.00430739
00430732  |.  3D 4EE640BB   CMP EAX,BB40E64E
00430737  |.  75 4E         JNZ SHORT LRMCU.00430787
00430739  |>  56            PUSH ESI
0043073A  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
0043073D  |.  50            PUSH EAX                                 ; /pFileTime
0043073E  |.  FF15 10214300 CALL DWORD PTR DS:[<&KERNEL32.GetSystemT>; \GetSystemTimeAsFileTime
00430744  |.  8B75 FC       MOV ESI,DWORD PTR SS:[EBP-4]
00430747  |.  3375 F8       XOR ESI,DWORD PTR SS:[EBP-8]
0043074A  |.  FF15 14214300 CALL DWORD PTR DS:[<&KERNEL32.GetCurrent>; [GetCurrentProcessId
00430750  |.  33F0          XOR ESI,EAX
00430752  |.  FF15 D0204300 CALL DWORD PTR DS:[<&KERNEL32.GetCurrent>; [GetCurrentThreadId
00430758  |.  33F0          XOR ESI,EAX
0043075A  |.  FF15 0C214300 CALL DWORD PTR DS:[<&KERNEL32.GetTickCou>; [GetTickCount
00430760  |.  33F0          XOR ESI,EAX
00430762  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
00430765  |.  50            PUSH EAX                                 ; /pPerformanceCount
00430766  |.  FF15 CC204300 CALL DWORD PTR DS:[<&KERNEL32.QueryPerfo>; \QueryPerformanceCounter
0043076C  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
0043076F  |.  3345 F0       XOR EAX,DWORD PTR SS:[EBP-10]
00430772  |.  33F0          XOR ESI,EAX
00430774  |.  8935 80AA4300 MOV DWORD PTR DS:[43AA80],ESI
0043077A  |.  75 0A         JNZ SHORT LRMCU.00430786
0043077C  |.  C705 80AA4300>MOV DWORD PTR DS:[43AA80],BB40E64E
00430786  |>  5E            POP ESI
00430787  |>  C9            LEAVE
00430788  \.  C3            RETN

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
程序启初期, 得一乱数.
用于各函数入'出口, 防止Stack溢出/漏洞

func001()
  mov var, RetAddr ^ [43AA80]
  ....
  ...
  mov ecx, var ^ RetAddr
  jmp CheckStackOverflow

CheckStackOverflow:
    if ecx=[43AA80]
        { ret }
    else
        {
          ...
          MessageBoxA('Buffer overrn detected!' .... ......)
          ExitProcess;
        }
2009-10-22 19:43
0
雪    币: 273
活跃值: (64)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
3
这个不难吧,你看一下Windows核心就是一个栈帧的创建及几个API函数的调用!
2009-10-22 21:10
0
雪    币: 5417
活跃值: (3502)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
4
是Delphi 的入口,程序的初始化,同步线程时间,获取进程ID
2009-10-24 00:49
0
游客
登录 | 注册 方可回帖
返回
//