나는 치트 엔진 (Cheat Engine)으로 알려진 메모리 편집 응용 프로그램을 사용하고 있습니다. 나는 치트 엔진을 게임에 붙인다. 내 게임에는 HP로 알려진 32 비트 정수가 있습니다. HP는 메모리 주소 A에 저장됩니다. 게임을 다시 시작하면 HP는 새 메모리 주소 B에 저장됩니다. 치트 엔진을 사용하면 포인터 스캔을 수행하여 다음을 가리키는 정적 메모리 주소 C를 찾을 수 있습니다. 또 다른 메모리 주소와 이에 수반되는 오프셋 D 및 오프셋을 사용하므로 [D + offset]은 항상 해당 세션 동안 HP의 메모리 주소를 저장합니다. 따라서 [D + offset]을 역 참조하면 항상 HP를 저장하는 메모리 주소를 얻게됩니다. > A 또는 B포인터에 대한 오프셋의 이점은 무엇입니까?
C - -> D
가 어떤 이점
D가 + 오프셋> HP -
A 또는 B : 여기
은 도면 오프셋을 사용합니까? 왜 C가 A 또는 B를 직접 가리킬 수 없습니까? 오프셋을 사용하면 C 언어로 배열을 처리 할 때 유용하다는 것을 잘 알고 있습니다. 포인터에 대한 오프셋을 볼 때마다 포인터가 배열의 첫 번째 요소를 가리키고 오프셋이 배열의 요소 중 하나를 참조한다는 의미입니까?
이 수준의 대답은 코드가 실행될 칩 (또는 가상 컴퓨터)의 아키텍처 및 명령 집합의 영향을 크게받습니다. 일부 명령어 세트는 오프셋 색인화를 위해 빠른 주소 지정 모드를 제공함으로써 그러한 종류의 것을 권장합니다. – dmckee