아날로그 CRC 안티 디버깅의 목적을 달성

 아날로그 CRC 안티 디버깅의 목적을 달성

기술적 인 원리는 매우 간단합니다, 그냥 교정 완료 후 교정 완료 발견 일관성, 출구, 안티 디버깅 목적을 스레드를 열고, 지속적으로 메모리 바이트의 코드를 읽고있다.

#INCLUDE <STDIO.H> 
#INCLUDE <iostream> 
#INCLUDE <있는 Windows.h> 
#INCLUDE <stdlib.h>
 사용  공간을 성병; 

INT GTOTAL; // 校验总和

DWORD WINAPI ThreadFunc (LPVOID lpParam) 
{ 
    // 循环监测线程
    동안 ( ) {
         INT의 어드레스 = 0x0411000 ;
        INT xTotal = 0 ; 
        CreateThread (NULL, 0 , ThreadFunc, 0 , 0 , 0 );
        대한 ( INT= I 0 ; 나는 < 0x6000 ; I ++ ) {
             바이트 바이트, 
            ReadProcessMemory ((HANDLE) - 1. , (PVOID) 주소, 바이트, 1. , NULL); 
            xTotal + = 바이트; 
            주소를 ++; // 다시 성공적으로 읽 읽기 주소 
        }
         // 비 준수, 출구 모니터링 
        만약에 (xTotal =! GTOTAL를) { 
            출구 ( 0 ); 
        } 
        슬립 ( 1000 ); // 너무 카드를 피하기 위해 일시 정지 1 초 후 
    }
     반환  0  ;
}
 지능 본체 ( 의 INT 는 argc, 숯불 * argv와 []) { 
    
    INT 주소 = 0x0411000 ; 

    // 제 체크섬 계산 
    을 위해 ( INT I = 0 ; I < 0x6000 ; I ++ ) {
         바이트 바이트; 
        ReadProcessMemory ((HANDLE) - . 1 (PVOID) 어드레스, 바이트 1. , NULL); 
        GTOTAL + = 바이트, 
        어드레스 ++; // 판독 다시 정상적으로 판독 어드레스 
    } 

    // 1 체크 합이 계산된다 
    CreateThread의 (NULL을 0, ThreadFunc의 0 , 0 , 0 ); 

    // 일시 정지 스레드 
    시스템 ( " PAUSE " ); 

}

추천

출처www.cnblogs.com/onetrainee/p/12127184.html