바이너리 파일이 있는데 암호를 해독해야합니다 (숙제). 주어진 함수 (이진 파일의 일부인 함수)도있었습니다. 이 함수는 입력 문자열이 문자별로 올바른 비밀번호 문자와 비교되어 문자가 잘못되었을 때 즉시 false를 반환 함을 보여주었습니다 (안전하지 않은 방법입니다. 누수가 시간이 걸리기 때문에 올바른 비밀번호 길이에 대한 아이디어를 얻습니다) 예). 그러나 우리 선생님은 우리에게 조금 더 어려워지기 위해 결과 (수정 / 잘못된)를 반환하는 임의 타이머를 추가했습니다 ...
어쨌든, 나는 이미 리버스 엔지니어링으로 성공적으로 수행했으며 올바른 암호를 얻었습니다. 이제 명령 줄에서 놀고 있습니다.
/usr/bin/time -v ./program_name enter_password
이 명령을 사용하면 시스템 시간, 스왑, 실행 시간과 같은 많은 정보를 얻을 수 있습니다. 그러나 가장 흥미로운 것은 "자발적 컨텍스트 전환"인데, 입력 한 암호의 정확한 문자가 많을수록 "자발적 컨텍스트 전환" " 나는 얻다!
더 잘못된 문자를 입력할수록 "자발적 컨텍스트 전환"이 더 많이 나타납니다.
명령을 입력하고 문자를 입력하고 "자발적 컨텍스트 전환"을 관찰하는 것만으로도 암호를 해독하는 데 거의 2 시간이 걸렸습니다. 하나의 문자가 정확할 때마다 "자발적 컨텍스트 전환"이 1 씩 감소했습니다.
제 질문은, "자발적 컨텍스트 스위치"란 정확히 무엇이며 왜 암호 해독에 도움이 되었습니까?