아날로그 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 " ); }