티스토리 뷰

Reversing/Anti-Reversing

[Reversing] PEB, Anti-Debugging

정짱 정뚱띵 2020. 2. 11. 09:39

[Reversing] PEB, Anti-Debugging


PEB란? Process Environment Block로 프로세스에 대한 환경 정보를 담고 있는 것을 알 수 있다.

각 프로세스들 마다 PEB를 가지고 있으며, 스레드로는 TEB 가지고 있다.

FS:[18] = TEB 주소


PEB의 안티디버깅에 대해 작성을 해보면, PEB Structure 을 살펴봐야 된다.


   +0x002 BeingDebugged    

해당 멤버를 살펴보면 디버깅 중일 때 해당 멤버의 값은 '1'로 설정이 된다.

우회를 하기 위해서는 PEB[2] 값을 '0'으로 수정하면 된다.

참고, Kernel32.dll에서 IsDebuggerPresent() 함수가 이 필드를 참고하여 디버깅 상태 확인 후 리턴값을 준다.

   +0x018 ProcessHeap      

해당 멤버는 [https://jeongzzang.com/89] 설명


   +0x068 NtGlobalFlag     

해당 멤버는 디버깅 중일 때 해당 멤버의 값은 '70'으로 설정이 된다.

우회를 하기 위해서는 PEB[68] 값을 '0'으로 수정하면 된다.

'Reversing > Anti-Reversing' 카테고리의 다른 글

[Reversing] PEB, Anti-Debugging  (0) 2020.02.11
[Reversing] ZwSetInformationThread, Anti-Debugging  (0) 2020.02.10
[Reversing] Anti-Reversing  (0) 2020.01.06
댓글
공지사항
«   2020/02   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
Total
138,729
Today
2