감지 softice를 호출하여 int 끝에서
이 중가 장 잘 알려진 안티 - 디버깅 트릭, 그리고 그것을 사용하는 뒷문으로 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
|
|||
|