首页
社区
课程
招聘
[旧帖] 一段子程序求解 0.00雪花
发表于: 2014-4-27 10:31 1535

[旧帖] 一段子程序求解 0.00雪花

2014-4-27 10:31
1535
11526A70  /$  6A FF         push    -1                               ;  c
11526A72  |.  50            push    eax                              ;  8
11526A73  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
11526A79  |.  50            push    eax                              ;  4
11526A7A  |.  8B4424 0C     mov     eax, dword ptr [esp+C]
11526A7E  |.  64:8925 00000>mov     dword ptr fs:[0], esp
11526A85  |.  896C24 0C     mov     dword ptr [esp+C], ebp
11526A89  |.  8D6C24 0C     lea     ebp, dword ptr [esp+C]           ;  相当于:mov ebp,esp+c
11526A8D  |.  50            push    eax
11526A8E  \.  C3            retn

一直看不明白这段子程序实现了什么,推测不出程序设计者对于这个子程序设计时的思想,求解惑

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
重新构造了一个调用该子函数的函数的栈帧。在最有一个ret执行之前,堆栈结构如下:
esp--->   返回地址     ;调用该函数的下一条指令的地址
               fs:[0]        ;SEH链指针
               eax           ;刚进入该子函数时的eax值
               -1            
ebp--->   上一栈帧的ebp地址
调用ret指令之后,去返回地址处继续执行,但是父函数的实参都被替换了。
2014-4-29 09:22
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=KantSFun;1279040]重新构造了一个调用该子函数的函数的栈帧。在最有一个ret执行之前,堆栈结构如下:
esp--->   返回地址     ;调用该函数的下一条指令的地址
               fs:[0]        ;SEH链指针
               eax           ;刚进入该子函数...[/QUOTE]

若是以C语言的代码将是如何的情况?请问能否还原一下这个函数的c语言版本?
2014-4-30 20:35
0
游客
登录 | 注册 方可回帖
返回
//