_bittest函数
_bittest(address, bit_offset);这个函数用来检测从address这个地址开始,第bit_offset位是否被置位。
反汇编下就是bt指令

下面这段代码节选自RPCRT4.DLL中的I_RpcBindingInqLocalClientPID函数,用来校验RpcBindingHandle 是否有效
if ( *((_DWORD *)RpcBindingHandle + 2) == 0x89ABCDEF && _bittest((const signed __int32 *)RpcBindingHandle + 3, 0xDu) )
一共两个判断条件:
- 句柄固定偏移处的值,必须为0x89ABCDEF
- 句柄固定偏移处的值,第0xD位被置位,也就是0xD位是1

_bittest函数用于检测指定地址的特定位是否被置位。本文详细介绍了_bittest函数的工作原理,通过RPCRT4.DLL中I_RpcBindingInqLocalClientPID函数的实例,展示了如何使用该函数校验句柄的有效性。
735

被折叠的 条评论
为什么被折叠?



