본문 바로가기

Anti Debugging

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.. 더보기
Anti Debugging Anti Debugging 안티 디버깅은 디버거를 방해하는 것으로 특정 OS 버전에서만 동작하는 경우가 있고, 디버거의 종류에 따라서 적용되는 안티 디버깅 기법도 조금씩 다릅니다.안티 디버깅은 Static과 Dynamic 으로 나뉩니다. 안티 디버깅 분류 Static 안티 디버깅 Static 기법은 디버거를 탐지하여 프로그램이 정상적으로 실행되지 못하도록 하는 거입니다. 디버거에 프로그램을 올렸을 때 실행이 안되게 하는 것입니다. Dynamic 안티 디버깅 Dynamic 기법은 디버거 트레이싱을 방해해서 원본 프로그램의 코드와 데이터를 확인 할 수 없게 만드는 것입니다. 더보기