首页
社区
课程
招聘
[求助]多个HOOK 自定义函数 地址相同
发表于: 2011-2-20 11:13 5289

[求助]多个HOOK 自定义函数 地址相同

2011-2-20 11:13
5289
帮忙看看
VOID  NewKeStackAttachProcess(
        __inout PRKPROCESS PROCESS,
        __out PRKAPC_STATE ApcState
        )
{
        __asm
        {
                _emit 0x90
                _emit 0x90
                _emit 0x90
                _emit 0x90
                _emit 0x90  // 前5字节实现原函数的头5字节功能
                _emit 0x90  // 这个填充jmp
                _emit 0x90
                _emit 0x90
                _emit 0x90
                _emit 0x90  // 这4字节保存原函数+5处的地址
                _emit 0x90  
                _emit 0x90  
                _emit 0x90  
                _emit 0x90
                _emit 0x90  
                _emit 0x90  
                _emit 0x90  
                _emit 0x90  
                _emit 0x90
                _emit 0x90
                _emit 0x90  
                _emit 0x90  
        }
}
VOID  NewKiAttachProcess (
                                                  __inout PRKTHREAD Thread,
                                                  __in PRKPROCESS Process,
                                                  __in PKLOCK_QUEUE_HANDLE LockHandle,
                                                  __out PRKAPC_STATE SavedApcState
                                                  )
{
        __asm
        {
                _emit 0x90
                _emit 0x90
                _emit 0x90
                _emit 0x90
                _emit 0x90  // 前5字节实现原函数的头5字节功能
                _emit 0x90  // 这个填充jmp
                _emit 0x90
                _emit 0x90
                _emit 0x90
                _emit 0x90  // 这4字节保存原函数+5处的地址
                _emit 0x90  
                _emit 0x90  
                _emit 0x90  
                _emit 0x90
                _emit 0x90  
                _emit 0x90  
                _emit 0x90  
                _emit 0x90  
                _emit 0x90
                _emit 0x90
                _emit 0x90  
                _emit 0x90  
        }
}
VOID  NewKiMoveApcState (
                                                 __in PKAPC_STATE Source,
                                                 __out PKAPC_STATE Destination
                                                 )
{
        __asm
        {
                _emit 0x90
                _emit 0x90
                _emit 0x90
                _emit 0x90
                _emit 0x90  // 前5字节实现原函数的头5字节功能
                _emit 0x90  // 这个填充jmp
                _emit 0x90
                _emit 0x90
                _emit 0x90
                _emit 0x90  // 这4字节保存原函数+5处的地址
                _emit 0x90  
                _emit 0x90  
                _emit 0x90  
                _emit 0x90
                _emit 0x90  
                _emit 0x90  
                _emit 0x90  
                _emit 0x90  
                _emit 0x90
                _emit 0x90
                _emit 0x90  
                _emit 0x90  
        }
}
自定义了 3个函数 但是用 DbgPrint 输出的3个函数地址 有两个是相同的,这是为什么
00000703        786.36596680        NewKeStackAttachProcess :0xB16B90D0
00000704        786.36596680        NewKiAttachProcess :0xB16B8F50       
00000705        786.36596680        NewKiMoveApcState :0xB16B90D0

用__declspec(naked) 开头 3个地址都是一样的

有输出了别的 同样也是错误
00000805        1553.90808105        NewKeStackAttachProcess :0xB16550F0       
00000806        1553.90820313        NewKiAttachProcess :0xB1654F70       
00000807        1553.90820313        NewKiMoveApcState :0xB16550F0       
00000808        1553.90820313        NewPsLookupProcessByProcessId :0xB1654F00       
00000809        1553.90820313        NewPsLookupThreadByThreadId :0xB1654F00       
00000810        1553.90820313        NewoldIoCreateFile :0xB1654DA0       
00000811        1553.90820313        NewObOpenObjectByPointer :0xB1654DA0
以前 HOOK 都是单一函数没有发现这个问题,今天同时HOOK 多个函数才发现。。。。。。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
应该是编译器优化成这样的
2011-2-21 18:26
0
雪    币: 1157
活跃值: (847)
能力值: ( LV8,RANK:150 )
在线值:
发帖
回帖
粉丝
3
不会是你的kdprint参数写错了吧,写成了同一个函数的地址,复制粘贴代码经常犯这样的毛病啊
2011-2-21 18:31
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
4
没有弄错 ,不信你复制试验下。。这些HOOK 在单个应用的情况下都OK的,多个同时HOOK 就蓝了,没办法,我都用的UCHAR 数组替代的很正常不会出现上述现象
2011-2-22 12:43
0
游客
登录 | 注册 方可回帖
返回
//