能力值:
( 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 楼
727K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0M7X3g2^5L8$3c8A6j5g2)9J5c8W2c8A6N6r3q4F1d9r3W2V1k6g2)9J5c8X3u0D9L8$3u0Q4x3V1k6E0j5i4y4@1k6i4u0Q4x3V1k6f1K9i4c8S2L8V1S2A6k6r3g2Q4x3V1k6K6M7$3c8@1i4K6u0W2j5%4m8H3i4K6t1$3L8X3u0K6M7q4)9K6b7R3`.`. 一直用的这个SSDT的找法,到目前最新的win10 1809系统也没发现什么问题
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
yimingqpa
你这个内存搜索不能带通配符, 给你一个带通配的。
int CSearchMem::SearchAddress(int inStartAddr, ...
通配符有个很尴尬的问题,万一通配符就是特征呢?
|
能力值:
( LV10,RANK:163 )
|
-
-
5 楼
lononan
通配符有个很尴尬的问题,万一通配符就是特征呢?
不影响啊.
|
能力值:
( LV6,RANK:80 )
|
-
-
6 楼
61cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0M7X3g2^5L8$3c8A6j5g2)9J5c8W2c8A6N6r3q4F1d9r3W2V1k6g2)9J5c8X3u0D9L8$3u0Q4x3V1k6E0j5i4y4@1k6i4u0Q4x3V1k6f1K9i4c8S2L8V1S2A6k6r3g2Q4x3V1k6K6M7$3c8@1i4K6u0W2j5%4m8H3i4K6t1$3L8X3u0K6M7q4)9K6b7R3`.`. +10086
|
|
|