ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2022/03/18][짤막한 이야기 - 예외 기반 분석방지 기술(예시)]
    짤막한 이야기 2022. 3. 18. 11:16
    728x90
    반응형

    [2022/03/18][짤막한 이야기 - 예외 기반 분석방지 기술(예시)]
    분석방지 기술(Anti-Analysis)은 SW 보호 기술 중 한 갈래로, 분석용 도구의 분석을 방해하거나 금지시키는 기술이다.
    예외 기반의 분석방지 기술은 구현하기도 가장 까다로운데, 어떤 예외를 적절하게 일으킬지를 알고 있어야 구현 가능하기 때문이다.
    그림의 함수 소스코드는 C언어로 구현되어 있으며, SingleStep이라는 예외를 강제로 발생시키는 함수(SingleStep의 의미는 다음 포스트에서 확인할 수 있다.)이다.
    예외가 발생하였기 때문에 예외 처리문(Exception Handling)을 실행하게 되는데, 그 코드가 바로 “return FALSE;”이다.
    여기서 FALSE는 분석 도구가 탐지되지 않았다는 의미이다.
    그런데 앞선 포스트를 기억한다면 분석 도구를 이용하여 실행되고 있는 프로그램의 경우 예외 처리문을 실행하지 않고 예외를 스무스하게 넘겨버린다고 하였다.
    그 경우 가장 아래의 “return True;”를 실행하게 되는데, 이는 분석 도구가 탐지되었다는 의미이다.
    즉, 분석 도구 상의 프로그램 실행경로(예외 처리문 미실행)와 메모리 상의 프로그램 실행경로(예외 처리문 실행)가 서로 다르기 때문에 분석 도구 존재 여부를 탐지할 수 있는 것이다.
    이 경우 분석 도구를 사용하고 있음에도 사용하고 있지 않은 척(예외 처리문이 실행되도록)하려면 강제로 예외를 발생시켜버리면 된다.
    분석 도구 자체에서 예외 발생문을 실행하게 된다면, 강제로 예외를 발생시키는 기술이 예외 기반 분석방지 기술을 우회(Anti-Anti-Analysis)하는 가장 대표적인 방법이다.
    위 코드와 여러 타입의 분석방지 기술 구현방법 및 우회방법, 우회코드 구현은 아래 관련된 문서를 통하여 확인할 수 있다.
    [관련된 짤막한 이야기 - 예외 기반 분석방지 기술(개념)[2022/03/17]]
    [관련된 문서 - 핀툴 프로그래밍 기본서[제4부. 핀툴로 Anti-PinTool 우회하기]]
    #이야기 #루니프 #핀 #핀툴 #예외 #분석방지 #예외 #탐지 #대응 #우회 #프로그래머 #해커 #개발자 #분석가 #코딩

    728x90
    반응형
Designed by Tistory.