Blackbone은 여기에 있습니다 :Blackbone을 사용하여 프로세스 메모리 읽기?
지금 내가 달성하기 위해 노력하고 싶은 것을 상기 라이브러리를 사용하여 프로세스 메모리를 읽을 수 있습니다.
나는 패턴 스캔 방법을 사용하여 나중에 읽기 프로세스에서 사용할 주소를 얻었지만, 출력 버퍼에 저장된 데이터를 읽어야하는 방법에 대해 조금 고민하고 있습니다. 읽기 메소드가 사용 중입니다.
그냥 조금 약간 차이가https://github.com/DarthTon/Blackbone/blob/master/src/TestApp/PatternTest.cpp
: 정확히 patternscan 예에서 촬영 같은 접근 방식은 제공https://github.com/DarthTon/Blackbone/blob/master/src/BlackBone/Process/ProcessMemory.h#L57
그리고 난 다음 해요 :
읽기 방법은 여기에 구성되어
:
void FindKeys()
{
Process p;
std::vector<DWORD> procs;
std::vector<ptr_t> results;
ptr_t dwAddress;
size_t dwSize;
PVOID pResult;
bool handleHoles = true;
Process::EnumByName(L"Notepad++.exe", procs);
if (!procs.empty())
{
p.Attach(procs.front());
auto pMainMod = p.modules().GetMainModule();
// Initialize patterns
PatternSearch ps1{ 0x33, 0xC5, 0x89 };
// Scan all allocated process memory
std::wcout << L"[+] Searching for Pattern Scan...\n";
ps1.SearchRemoteWhole(p, false, 0, results);
std::wcout << L"[+] Found at Address: [0x";
std::wcout << std::hex << results[0];
std::wcout << L"]!\n";
dwAddress = results[0];
dwSize = 0x10;
p.memory().Read(dwAddress, dwSize, pResult, handleHoles);
results.clear();
}
else
std::wcout << L"Can't find Notepad++.exe, aborting\n\n";
}
내 질문은, 특히, 내가 바이트의 배열로 읽어 싶습니다에서 나는 성공적으로 읽을 수있는 방법, pResult를 읽을 실패에서 비롯됩니다.
혹시 더 많은 도움을 주신다면 미리 감사드립니다.
왜 어떤 곳에서는'const wchar_t *'대신'const char *'를'std :: wcout'에 넘겨 주십니까? – Brandon
@Brando는 그 대회에 익숙하지 않기 때문에 고쳐졌습니다. –