본문 바로가기

TLS Callback

Anti Debugging - Static Anti Debugging - Static 프로세스에서 자신이 디버깅 당하는지 여부를 파악하는 기법입니다. 만약 디버깅 중이라고 판단되면 일반 실행과 다른 코드를 실행하는 것입니다.디버거를 탐지하거나 디버깅 환경을 탐지하거나 디버거를 강제 분리 시키는 방법이 있습니다. 대부분의 Static Anti Debugging은 OS에 의존하고 있어서 XP에서는 되는데 7에서는 안되고 7에서는 되는데 10에서는 안되는 경우가 있습니다. Process Envritonment Block (PEB) PEB에서 BeingDebugged, Ldr, ProcessHeap, NtGlobalFlag 멤버를 확인해야 합니다. BeingDebugged 멤버는 디버깅 여부를 표시하는 Flag로 사용됩니다. Ldr, ProcessHea.. 더보기
Thread Local Storage CallBack (TLS) Thread Local Storage CallBack (TLS) Thread Local Storage (TLS)는 Thread 별로 독립된 데이터 저장공간 입니다. Thrad 내에서 프로세서의 전역 데이터나 정적 데이터를 마치 지역 데이터 처럼 독립적으로 취급하고 싶을 때 사용합니다. 마찬가지로 Windows 10 환경에서 시도해 보겠습니다. OllyDBG에 붙여서 실행을 했음에도 불구하고 Hello :)가 출력이 되었습니다. 원래는 Debugger Detected!가 출력이 되어야 합니다. 그래서 혹시나 OllyDBG Plugin 때문에 그러지 않을까 싶어서 Plugin을 모두 제거하고 실행을 했지만 마찬가지 였습니다. 그래서 reversecore.com에서 직접 실습예제를 다운 받아서 실행해 봤더니 .. 더보기