04.07.2014 Views

시간 기반 키 생성 방식을 이용한 안티 디버깅 기법 - SERSC

시간 기반 키 생성 방식을 이용한 안티 디버깅 기법 - SERSC

시간 기반 키 생성 방식을 이용한 안티 디버깅 기법 - SERSC

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

보안공학연구논문지 (Journal of Security Engineering), 제 10권 제 3호 2013년 6월<br />

를 이용해서 암호화된 를 복호화시킨다( ). 만약 코드 영역 a가 변조<br />

되었다면 복호화 키 a의 해시 값이 달라져 올바르지 못한 키 값이 생성된다. 올바르지 못한 키 값<br />

으로 복호화 되었을 경우 잘못된 데이터로 변조 되고 오류를 일으킨다. 복호화 과정이 올바르게<br />

진행 되면 원본 영역 b가 나올 것이고 코드 영역 b를 실행 시킨 후 다시 암호화하여 저장 한다<br />

( ).<br />

2.3 명령어 자가 변조 기법<br />

코드가 역어셈블러 되더라고 분석을 어렵게 하기 위해 원본 명령어 셋을 위장 명령어 셋으로<br />

변화하는 방식이다.<br />

[그림 2] 명령어 자가 변조<br />

[Fig. 2] camouflage instruction<br />

노출되고 싶지 않은 보호하려는 대상 명령어 셋을 설정한다. 보호하려는 대상 명령어 셋을 임의<br />

의 다른 명령어 셋으로 변환한다. [그림 2]의 원본 명령어 셋 cmpl과 jne를 movl과 call로 변환하<br />

였다. 실제 실행될 때 원본 명령어 셋이 실행되기 위해서 복원 루틴을 삽입하고 복원 루틴이 실행<br />

되고 원본 명령어 셋이 실행 된 후에 메모리에 원본 명령어 셋이 그대로 남아있기 때문에 은닉 루<br />

틴을 삽입하여 위장 명령어 셋으로 다시 변환한다.<br />

실행될 때는 목표 블록의 시간을 측정해서 실행 시간이 유효 범위 내에 있으면 복원 루틴을 실<br />

행시켜 원본 명령어 셋이 나오게 하고 원본 명령어 셋을 실행 시킨 후 다시 은닉 루틴을 통해 명<br />

령어 셋을 다시 위장시킨다. 만약 실행 시간이 유효 범위 밖이면 위장된 명령어 셋이 실행되어서<br />

잘못된 명령어로 인한 오류가 발생한다.<br />

295

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!