옵션창에 옵션 체크가 해제되도 해당 기능이 작동하는 경우

Posted on

PC 오류 현상은 그 양상이 제각각 다르기도 하다. 현상적으로는 맞는데 논리적으로는 아니게 되는 경우가 있다. 예를 들면 옵션창에 옵션 체크가 해제된다고 하면 논리적으로는 작동을 안해야 하는데 작동을 하기도 한다. 이를 논리적으로는 아니어도 현상적으로는 가능한 현상이라고 말해볼 수 있다.

난 보안 공부를 하지 않았고 메모리 덤프 분석도 아주 잠시 동안만 했었는데 이번에 발상한 것을 글로 써보겠다.

옵션 체크가 되어 있을때도 기능이 작동안하거나
옵션 체크가 안되어 있을때도 기능이 작동하는 것

이 현상은 메모리 상의 상태에 따라 달라진다. 옵션 체크 정보가 저장된 구간이 있고 기능 작동이 되거나 안될때의 저장된 구간이 따로 있는 경우다. 이 경우 서로 논리적으로 반대가 되게 작동하는 이유를 상정해보면 이렇다.

옵션창의 구현이 어떻게 되어 있는지의 차이인데, 옵션창에서 실시간으로 옵션 체크 여부와 기능 작동 여부를 감지하도록 만들어졌다면, 옵션과 작동 현상을 매칭되게 할 수 있다. 즉 옵션 체크가 안되어 있을때 메모리 인젝션 등의 적용으로 작동이 되고 있을 수 있고 이를 감지해서 옵션이 체크되어 있게 만든 경우에 UI 표시와 기능 작동이 일치되게 표시할 수 있다.

다시 말해

기능 작동 여부를 실시간 감지
작동 여부가 확인되면
UI에 옵션 체크가 되어 있게 조정

이렇게 작동하는 것이다. 이게 구현이 안되었거나 메모리 인젝션이 고약하게 일어나면 논리적으로는 불가능해도 현상적으로는 가능한 오류가 있게 된다. 한 예다.

이게 왜 중요한가? 많은 PC 사용자들이 생각하는 능력이 있다면, 옵션 체크와 기능 작동이 서로 현상적으로 반대일때 그 부당함을 다들 느낄 수 있다. 그러나 기술적인 것이 익숙하지 않으면 석연찮게 그냥 넘어간다.

때로는 논리적인 것을 우선시한다면 지금 내가 쓴 글의 매커니즘을 더 깊이 있게 살펴보는 것만으로도 해결 능력이 향상된다.

달리 말하면 메모리 인젝션과 같은 기능이 겹치면 옵션창의 메모리 구간에 의해 논리적으로는 불가능해도 현상적으로는 가능한 상황이 일어난다. 이에 대한 인식이 가능하다면 그분은 실력도 있고 배려도 하는 학습자가 될 수 있다는 것이다. 또, 기술적으로 가능하다는게 설명되면 해당 오류를 경험못한 분들에게도 납득되게 할 수 있다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다