gpt4 book ai didi

c++ - 如何捕获内存异常?

转载 作者:可可西里 更新时间:2023-11-01 11:27:07 27 4
gpt4 key购买 nike

我在捕获异常时遇到问题,这是错误:

Unhandled exception at 0x01034BB1 in Hello.exe: 0xC0000005: Access violation reading location 0x02343DA2.

这是我的代码:

bool VerifyAddress(HANDLE hwnd, DWORD dwAddress, char* bMask, char *szMask )
{
PBYTE *pTemp = { 0 };

for ( int i = 0; *szMask; ++szMask, ++bMask, ++i )
{

try {
if ( !ReadProcessMemory( hwnd, reinterpret_cast<LPCVOID>(dwAddress + i), &pTemp, sizeof(pTemp), 0 ) ){
failedRPM++;
return false;
}
} catch(...) {
failedRPM++;
return false;
}

if ( *szMask == 'x' && reinterpret_cast<char*>(pTemp) != reinterpret_cast<char*>(*bMask)){
failedMask++;
return false;
}
}
return true;
}

DWORD FindPattern(HANDLE hwnd, char* bMask, char *szMask )
{
for ( DWORD dwCurrentAddress = 0x015A1DB4; dwCurrentAddress < 0x7FFFFFF; dwCurrentAddress++ ){
if ( VerifyAddress( hwnd, dwCurrentAddress, bMask, szMask )) {
return dwCurrentAddress;
}
}
return 0x0;
}

我有一个问题:为什么抓不到?

最佳答案

这不是您可以捕获的 C++ 异常,它正在访问无效内存。不能保证该过程处于捕获任何东西的正常状态。

在您的特定情况下,pTemp 可能有问题,也许它是一个常量。向我们展示代码。

关于c++ - 如何捕获内存异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32528444/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com