2013-12-15 2 views
0

첨부 된 프로세스의 메모리를 실시간으로 편집 할 수있는 작은 도구를 만들고 있습니다.첨부 된 프로세스 주소에서 숫자 또는 문자열 가져 오기

그래서 도구에는 1 개의 numericUpDown과 2 개의 버튼, get 및 set이 있습니다.

내 설정 코드는 내가 너무 내 부착 공정에서 번호를 얻을 내 numericUpDown로 보낼 수있는 과정을 반전되어 붙어 어딘지

private void sendButton_Click(object sender, EventArgs e) 
{ 
    byte[] stat = BitConverter.GetBytes(Convert.ToInt32(statNumericUpDown.Value.ToString())); 
    SetMemory(0x0175914a, stat); 
} 

을 다음과 같습니다.

나는 충분히 설명하고 어떤 도움을 주시면 감사하겠습니다.

편집 : 더 나은 설명

내가 뭘하려고 설정하고 내 부착 된 프로세스의 메모리에서 값을 얻기 위해 실시간으로 편집 메모리입니다. 그 과정에서 승리라고 부르는 가치가 있다고 말할 수 있습니다. Win32의 메모리 주소는 00000001입니다. 첨부 된 프로세스에서 32 WINS를 말합니다.

이제 수동으로 해당 주소의 바이트를 00000001 복사하여 10 진수 변환기의 16 진수로 이동하여 붙여 넣습니다. 복사 된 바이트 (20)과는 제가 달성하려고하는 것은이 모든 시스템에 의해 수행되는 하나의 버튼을 눌러 32

의 반환 값을 얻을

+0

여기서는 성취하기 위해 무엇을 찾고 있는지 잘 모르겠지만 관리되지 않는 메모리를 직접 읽고 쓰려면 interop 서비스 (마샬 클래스는 훌륭한 유틸리티를 제공)를 사용하는 것이 좋습니다. 자세한 내용은 다음을 참조하십시오. http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal(v=vs.110).aspx –

+0

첨부 된 프로세스에 메모리를 읽고 쓰는 방법을 알고 있습니다. 그게 확장 기능으로 처리 됐어. myextension.setMemory (주소, 바이트) & myextension.GetMemory (주소, 바이트) 나를 위해 이것을 수행합니다. 무엇이 원하는지는 지정된 주소의 바이트를 숫자 값으로 변환 한 다음 해당 숫자를 내 numericUpDown 컨트롤에 표시하는 방법입니다 –

답변

0

확실히 내 numericUpDown 컨트롤에서 반환 된 값의 쇼를 프로세스의 반대는 단순히 당신이 가지고있는 것의 반대 일 것입니다. 즉 :

byte[] statBytes = GetMemory(0x0175914a); 
int stat = BitConverter.ToInt32(statBytes); 
statNumericUpDown.Value = stat; 

바이트 []에서 Int32으로 변환 할 때 키가 BitConverter.ToInt32입니다.

관련 문제