2017-10-31 7 views
0

저는 지금 읽고있는 논문에 대한 질문을 가지고 있습니다. 이것은자가 해싱 메커니즘을 사용하는 일부 변조 방지 소프트웨어에 대한 공격을 시연하는 것입니다. 이러한 종류의 자체 해싱은 작성자가 실행 된 코드가 해시 코드와 동일하다는 가정을하고 있기 때문에 프로세서가 메모리를 조작하는 방식에 대한 일부 조작을 제외하고는 사실입니다."명령 인출"과 "데이터 읽기"의 차이점은 무엇입니까?

다음과 같은 문장이 있습니다. "Aucsmith의 IVK와 네트워크를 사용하는 체크섬 시스템에서의 해싱 (hash)에 대한 중요한 (암묵적인) 가정은 프로세서가 D (x) = I) 여기서 D (x)는 메모리 주소 x에서 "데이터 읽기" 의 비트 문자열 결과이며 I (x)는 x에서 해당 길이의 "명령 페치"의 비트 문자열 결과입니다.

D (x)와 I (x)의 차이점은 무엇입니까? 데이터 읽기와 명령어 페치의 차이점은 무엇입니까? 가 발생 어디에 데이터를 사용하기 전에 저장 될 때 당신의 도움이

답변

1

이러한 작업의 차이에 대한

덕분이다. 대부분의 프로세서는 dedicated caches for instructions입니다. 이는 데이터가 주 메모리에서 두 번 페치된다는 것을 의미 할 수 있습니다. 한 번은 해시를 계산하기위한 데이터 캐시에 넣고 다시 한 번 명령 캐시에 다시 가져옵니다.

지금은 찾을 수 없지만 1 년 전 나는이 두 캐시 간의 캐시 비동기를 유발하여 인텔 프로세서에서 악의적 인 코드를 숨길 수있는 방법을 읽었습니다. 프로세서는 악의적 인 코드를 실행하지만 단순한 데이터와 동일한 메모리를 읽는 다른 도구는 좋은 코드를 볼 수 있습니다. Here is a means of accomplishing this on an ARM chip.

+0

링크를 제공해 주셔서 감사합니다. 데이터 가져 오기와 관련하여 관점이 이해됩니다. – Ecterion