能力值:
( LV10,RANK:163 )
|
-
-
2 楼
你这个内存搜索不能带通配符, 给你一个带通配的。
int CSearchMem::SearchAddress(int inStartAddr, int inSize, const byte* pOpCode, int inOpSize, bool bDirection, int inOffset)
{
int inRet = 0;
try
{
if ((0 == inStartAddr) || (inSize <= 0) || (NULL == pOpCode) || (NULL == inOpSize))
{
return inRet;
}
int inFindCount = 0;
byte* pData = (byte*)inStartAddr;
for (int i = 0; i < inSize; i++, pData++)
{
const byte* pOpData = pOpCode;
for (int j = 0; j < inOpSize; j++, pOpData++)
{
while (0xFF == *pOpData)
{
inFindCount++;
i++;
pData++;
j++;
pOpData++;
}
if (*pData == *pOpData)
{
inFindCount++;
i++;
pData++;
}
else
{
inFindCount = 0;
break;
}
}
if (inFindCount == inOpSize)
{
break;
}
}
if (inFindCount == inOpSize)
{
inRet = (int)pData - inFindCount;
if (bDirection)
{
inRet = inRet + inOffset;
}
else
{
inRet = inRet - inOffset;
}
}
}
catch (...)
{
inRet = 0;
}
return inRet;
}
char chOpCode[] = "\x6A\x04\x8D\x86\x5C\x01\xFF\xFF\x50\x6A\x04\x68";
dwRet = SearchAddress(dwModuleBase, dwModuleSize, (const byte*)chOpCode, ::strlen(chOpCode), true, 0x13);
|
能力值:
( LV3,RANK:35 )
|
-
-
3 楼
https://github.com/mrexodia/TitanHide/blob/master/TitanHide/ssdt.cpp 一直用的这个SSDT的找法,到目前最新的win10 1809系统也没发现什么问题
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
yimingqpa
你这个内存搜索不能带通配符, 给你一个带通配的。
int CSearchMem::SearchAddress(int inStartAddr, ...
通配符有个很尴尬的问题,万一通配符就是特征呢?
|
能力值:
( LV10,RANK:163 )
|
-
-
5 楼
lononan
通配符有个很尴尬的问题,万一通配符就是特征呢?
不影响啊.
|
能力值:
( LV6,RANK:80 )
|
-
-
6 楼
https://github.com/mrexodia/TitanHide/blob/master/TitanHide/ssdt.cpp +10086
|
|
|