首页
社区
课程
招聘
[旧帖] nt系列函数实现问题 0.00雪花
发表于: 2011-9-7 14:59 4476

[旧帖] nt系列函数实现问题 0.00雪花

2011-9-7 14:59
4476
为什么由的nt函数开头是:(例如ntdeletefile)?
mov edi,edi
push ebp
mov ebp,esp

而有的函数是:(例如ntwritefile)?这个不需要保存ebp之类的操作么?

8057cc6c 6a64            push    64h
8057cc6e 68e0a44d80      push    offset nt!GUID_DOCK_INTERFACE+0x3bc (804da4e0)
8057cc73 e8f8eefbff      call    nt!_SEH_prolog (8053bb70)
8057cc78 33f6            xor     esi,esi
8057cc7a 8975dc          mov     dword ptr [ebp-24h],esi
8057cc7d 8975d0          mov     dword ptr [ebp-30h],esi
8057cc80 89759c          mov     dword ptr [ebp-64h],esi
8057cc83 8975a0          mov     dword ptr [ebp-60h],esi

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学校会的东西没用上,学的东西学不会
2011-9-11 21:57
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
编译原理里面的东西,,跟参数有关。
2011-9-15 12:32
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
应该是你找错了地方
2011-9-20 16:40
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
回复一下, 顺带看看ls怎么解决
2011-9-21 08:30
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持楼主!
2011-9-21 09:13
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
知道栈回栈原理就晓得从哪里分析了。

明显前面可疑的地方就是 call    nt!_SEH_prolog (8053bb70)

你应该跟进去,

相应的还有epilog
2011-9-21 09:20
0
雪    币: 188
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
zwwritefile
7C90DF7E > B8 12010000 MOV EAX,112
7C90DF83 BA 0003FE7F MOV EDX,7FFE0300
7C90DF88 FF12 CALL DWORD PTR DS:[EDX]
7C90DF8A C2 2400 RETN 24



没找到,ntwritefile,  
zwwritefile 也是没有标准函数头的,
1。一般如果函数逻辑非常简单,比如就1-2行基本代码, 标准头就被优化掉了
2。或者函数内栈没什么变化,标准头都可能被优化掉(这条是我自己想的,如果我写会着么做)
3。如果函数是汇编写的, 作者可能不愿意遵循一般约定, 因为标准头主要是方便函数栈管理

第一条是主要原因, 对于vc程序 可以单独设置文件的编译优化选项 可能导致标准函数头被优划掉
2011-9-26 14:02
0
游客
登录 | 注册 方可回帖
返回
//