2011-02-15 4 views
0

가능한 중복 :
How to access structure in other program's memory?C# 포인터 다른 응용 프로그램의 메모리에

안녕하세요. 다른 응용 프로그램 메모리에 액세스하려고합니다. 나는 게임 해킹을하고있다. (걱정하지 마라, 그것은 싱글 플레이어 모드에만 해당된다.) 게임의 메모리에서 플레이어 구조에 대한 포인터를 발견했습니다.

개인 구조체의 필드를 읽고 싶기 때문에 pInvoked ReadProcessMemory를 사용하고 싶지 않습니다. 나는 플레이어 구조체 배열이 어디에 있는지 게임의 메모리에있는 주소를 알고 있습니다.

이 경우 pInvoked ReadProcessMemory를 사용하는 것은 그다지 실용적이지 않습니다.

어떻게 C#의 안전하지 않은 포인터를 사용하여 다른 프로세스 메모리를 구조체로 매핑 할 수 있습니까? 직접 포인터를 사용할 수 없다면, readPrcessMemory를 사용하는 방법은 무엇이겠습니까?

나는 결국 그렇게 할 수있게되고 싶다.

플레이어는 메모리에 구조체를 나타내는 일종의 클래스입니다. 플레이어가 일종의 선수입니다.

foreach(player guy in Players) 
{ 
    DrawESP(guy.X, guy.Y, guy.Z); 
} 
+5

이 질문을 이미 받았습니다 (http://stackoverflow.com/questions/4986047/how-to-access-structure-in-other-programs-memory). 우리는 이미 그것을 (어떤 길이로) 대답했다. 왜 다시 묻는거야? 이미 가지고있는 대답이 마음에 들지 않는다고해서 그것이 올바르지 않다는 것을 의미하지는 않습니다. ReadProcessMemory를 사용해야합니다. 이전 질문의 대답 중 하나를 수락하고 다시 게시를 중지하십시오. –

답변

4

그런 메모리에서 단순히 다시 컴파일 할 수는 없습니다.

자신의 응용 프로그램 (class/struct/etc)에 객체의 구조를 만들고 ReadProcessMemory를 사용하여 적절한 바이트를 읽은 다음 해당 바이트를 구조를 채우는 방식으로 intepret하십시오.

그런 식으로 포인터를 사용하는 것에 익숙하지 않은 경우, 필자는 강사를 쓰는 것이 당신에게 적합하지 않으며 정독을 먼저해야한다고 조언합니다.

저는 트레이너를 C++로 작성하는 법을 배우고 자 할 때 '안전하지 않은'코드라는 측면에서 생각하는 것이 훨씬 쉽습니다.

+0

내 게시물을 읽지 않았습니다. ReadProcessMemory를 사용하는 방법을 잘 알고 있습니다. 나는 많은 게임 (Mw2, Black Ops, Battlefield BC2)을 위해 많은 트레이너를 만들었지 만 값으로 structs 값을 읽는 것은 ESP 해킹을 매우 느리게 만듭니다. 그래서 포인터로 해보고 싶습니다. – Hooch

+0

예. 당신은 불가능한 것을 요구하고 있습니다, 그래서 나는 당신을 정중하게 실제 해결책으로 인도하려고 노력하고 있습니다. 메모리를 C# 객체로 '마술처럼 매핑'할 수는 없지만 바이트 (즉, 작업)에서 해석해야합니다. [후손을 위해이 게시물은 '내 게시물을 읽지 않았습니다. 나중에 편집하지 않음] – Rushyo

+1

@Hooch you 특정 필드에 대한 오프셋을 계산하고 ReadProcessMemory로이를 읽을 수 있습니다. – Andrey

1

두 선택해

  • ReadProcessMemory
  • 로드 DLL 후 직접 불안전 포인터를 사용하여 메모리를 액세스 할 수있는 원격 프로세스로 DLL.
+0

확인. 나쁘지 않네. 나는 두 번째 옵션을 의미한다. C#을 관리되지 않는 프로세스에 삽입 할 수 있습니까? 가능하다면 어떻게 그 dll과 통신 할 수 있습니까? – Hooch

+0

@Hooch : 예, 관리되는 DLL을 주입 할 수 있습니다. 이전에는 하나의 .NET 버전 만 프로세스별로 사용할 수 있었지만 .NET 4의 여러 버전을 함께 사용할 수 있으므로 문제가되지 않아야합니다. DLL에 대한 통신에는 소켓, 공유 메모리, 파이프, 커널 이벤트, 메일 슬롯, 파일 등 모든 일반적인 IPC 용의자가 있습니다. –

+0

그 방법을 배울 수있는 일종의 튜토리얼에 대한 링크를 제공 할 수 있습니까? – Hooch

관련 문제