2016-10-29 2 views
1

Blackbone은 여기에 있습니다 :Blackbone을 사용하여 프로세스 메모리 읽기?

https://github.com/DarthTon/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를 읽을 실패에서 비롯됩니다.

혹시 더 많은 도움을 주신다면 미리 감사드립니다.

+0

왜 어떤 곳에서는'const wchar_t *'대신'const char *'를'std :: wcout'에 넘겨 주십니까? – Brandon

+0

@Brando는 그 대회에 익숙하지 않기 때문에 고쳐졌습니다. –

답변

1

괜찮 았군, 여기 간단 해! 그리고 나는 자신을 복잡하게 끝내었다. 내가 무슨 짓을

라는 또 다른 변수 유형 BYTE (unsigned char byte) pResultBytes을 만들고 pResult 출력 버퍼가 Read() 방법에서하고 dwSize 바이트의 수를 새 변수로 복사하는 경우 다음 memcpy(&pResultBytes, pResult, dwSize);을 사용하는 것이 었습니다.

다음으로 바이트 단위로 변수 pResultBytes을 반복 실행하고 상대적인 변환을 수행하여 16 진수 문자열을 만들고 궁극적으로 읽습니다.

내가 말할 것도없고, pResultnew UCHAR[dwSize];으로 초기화 했으므로 궁극적으로 memcpy에 필요한 적절한 공간이 있습니다.

그게 전부 야!

건배!