首页
社区
课程
招聘
[求助]关于应用层内联的问题
发表于: 2011-7-19 18:05 3796

[求助]关于应用层内联的问题

2011-7-19 18:05
3796
前提:
     内联钩子已经跳转成功了。

出问题的代码:
// 自己实现的内核函数
NTSTATUS __declspec(naked) NewNtDeviceIoControlFile(
                                                        HANDLE FileHandle,
                                                        HANDLE Event OPTIONAL,
                                                        PVOID ApcRoutine OPTIONAL,
                                                        PVOID ApcContext OPTIONAL,
                                                        PVOID IoStatusBlock,
                                                        ULONG IoControlCode,
                                                        PVOID InputBuffer OPTIONAL,
                                                        ULONG InputBufferLength,
                                                        PVOID OutputBuffer OPTIONAL,
                                                        ULONG OutputBufferLength
                                                        )
{
        __asm
        {
                push ebp
                push        OutputBufferLength;
                push        OutputBuffer;
                push        InputBufferLength;
                push        InputBuffer;
                push        IoControlCode;
                push        IoStatusBlock;
                push        ApcContext;
                push        ApcRoutine;
                push        Event;
                push        FileHandle;

                call ShowPacketContent;
        }

        __asm
        {
                push        ebx
                mov                ebx,Old_NtDeviceIoControlFile
                add                ebx,5
                mov                Old_NtDeviceIoControlFile ,ebx
                pop                ebx
               
                pop ebp
                mov esp , ebp

                mov                eax,42h;
                jmp                Old_NtDeviceIoControlFile
        }
}

请问错误在哪里?大侠不吝赐教!

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
NewNtDeviceIoControlFile完全不必naked,你这个太纠结了。。。
2011-7-19 19:13
0
雪    币: 225
活跃值: (309)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那我应该怎么写?
2011-7-20 09:30
0
雪    币: 836
活跃值: (2807)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
4
前边调用的函数是_stdcall调用约定吗?若是的话,堆栈不用你自个恢复的,删除pop ebp;mov esp,ebp这句再试试
另外书写格式貌似是 __declspec (naked)  NTSTATUS NewNtDeviceIoControlFile()
2011-7-23 09:53
0
游客
登录 | 注册 方可回帖
返回
//