_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