감지 softice를 호출하여 int 끝에서


  Share  
|


이 중가 장 잘 알려진 안티 - 디버깅 트릭, 그리고 그것을 사용하는 뒷문으로 softice 그 자체입니다. 이 작품의 모든 버전에서 창을 사용하고이를 기반 전화 int 텍스트와 함께 다음과 같은 값을 포함하는 레지스터 : eax = 04h 및 ebp = 4243484bh. 이것은 실제로 "bchk"문자열입니다. softice이 활성화된 경우에 메모리를 eax 레지스터에는 값이 포함되어 이외의 다른 네.

이 트릭이 자주 사용된 코드에서 다양한 압축 및 인코딩 프로그램을 사용하고이 잘 알려져 있기 때문에 그 범위를 사용합니다. 사용하면 잘, 그것은 더 많은 경험을 크랙커에도 문제를 일으킬 수있습니다.

  0.386 
  . 모델을 평면, stdcall 
  
  현지인 점프 
  유니 코드 = 0 
  포함 w32.inc 
  extrn setunhandledexceptionfilter : 프로 시저입니다. 데이터 message3 message2 delayesp 이전합니다. 코드 데시벨 "탐지하여 전화 int 끝에서", 0데시벨 "softice 없음", 0데시벨 "softice를 찾을 수없습니다", 0 dd 0 
  ; 가 esp 레지스터는 여기에 저장됩니다.  dd 0; esp의 주소가 등록이 저장됩니다 
  ; 이전 seh 서비스가 여기에있습니다. 
  시작 : 
  ;------------------------------------------------- ----------------------------------------------- 
  -; 세트 seh의 경우 오류가 
  ;------------------------------------------------- 2002-02-12 
  mov [delayesp], esp 
  푸시 오프셋 오류 
  전화를 setunhandledexceptionfilter 
  mov [이전], eax 
  ;------------------------------------------------- 2002-02-12 
  ; 새 주소에 대한 구조적 예외 처리 (seh)를 설정하려면 여기를 보장하는 경우에 대비해의 
  ; 오류,이 프로그램은 계속 주소가 오류 분류하고 올바르게 종료됩니다.  이것이 중요 
  ; 예를 들어,이 프로그램 호출 인터럽트를 제대로 수행하는 경우에만 해당됩니다 softice 
  ; 이 활성하지만 이는 오류와 충돌을 일으킬 경우이 프로그램 softice이 활성화되지 않았습니다. 
  ; 마지막으로, 이전의 seh 서비스 주소가 저장됩니다. 
  ;------------------------------------------------- 2002-02-12 eax, 4 mov ebp, "bchk"int 각 밀어 eax; "매직"값을가 발견; softice가 활성화되어 있는지 여부 
  ; 호출 int 각 중단; 구원의 반환 값 
  ;------------------------------------------------- 2002-02-12 
  ; 세트를 이전 seh 서비스 
  ;------------------------------------------------- 2002-02-12 밀어 dword ptr [이전] 
  전화를 setunhandledexceptionfilter 
  ;------------------------------------------------- 2002-02-12 
  ; 세트가 원래 seh 서비스 주소 
  ;------------------------------------------------- 2002-02-12 팝 eax cmp eax, 4 jnz jump 계속 :; 복원의 반환 값 
  ; 시험이 있는지 eax가 변경되었습니다; 만약이 변경된 경우, softice가 활성; 이 메모리에 
  
  전화를 messageboxa, 0, 오프셋 message2, \ 오프셋 message1, 0 
  ;------------------------------------------------- 2002-02-12 
  ; 경우에 반환 값은 4 softice를 찾을 수없습니다과 프로그램 오류 메시지를 출력합니다. 
  ;------------------------------------------------- 2002-02-12 호출 exitprocess , -1 
  ; 엔드 프로그램 
  jump : 
  전화를 messageboxa, 0, 오프셋 message3, \ 오프셋 message1, 0 
  ;------------------------------------------------- 2002-02-12 
  ; 을 표시하는 메시지가 softice이 발견; 모든 코드에는 다음이 지점입니다. 
  ;------------------------------------------------- 2002-02-12 호출 exitprocess , -1 
  ; 엔드 프로그램 
  오류 : 
  ; 새 seh 서비스가 시작될 경우에 대비하는 중 오류가 발생합니다.  mov esp, [delayesp] 
  푸시 오프셋을 계속 ret 
  ;------------------------------------------------- 2002-02-12 
  ; 이 프로그램에 오류가 발생하면, seh을 보장하는이 프로그램은 계속에서; 오류를 분류합니다. 
  ;------------------------------------------------- 2002-02-12 종료 일자 
  최종 시작 
  ; 끝 프로그램 
이것은 문서가 추가 샘 petrone

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions