지금 분석하고 있는데
CRC 체크를 하는데
구조가
메모리 전체를 검사하는 CRC Main 이 있고
CRC Main을 CRC2, CRC3, CRC4가 검사하고 있음
CRC2와 CRC3은 파악이 됬는데
CRC4가
메모리를 임의로 할당한뒤에
거기다가 코드를 주입하고 4-1단계실행
1단계 프로세스가 끝나면 똑같은 위치에다가 코드를 주입하고 4-2단계 실행
이런식인데
메모리를 임의로 할당한거라 메모리 주소도 기준점 없이 계속 바뀌고
심지어 내용물도 지속적으로 바뀌는듯 한데
우회가 가능할까
그 기준점을 바꿔주는애가 누군지 계속 찾아보고 구조를 이해해야지
왜 구조를 이해하다가 말고 여기와서 질문함
좋은방법 없나해서 할당하는 함수 후킹해볼까..
그냥 우회하지 말고 무력화시켜. JMP 시키면 되잖아...
CRC 같은경우 구조를 꼬으려고 하면 얼마든지 꼬을수 있음
메모리 할당 함수를 후킹하는 방법도 있지
jmp nop 같은 방법도 뭐..
결국 crc 우회는 노가다 아닌교
무력화하면 서버하고 임의랜덤 범위에서 CRC값 비교하는데 그게 안되서 CRC2,3은 똑같이 메모리 복사해놓고 그거 참조하게 했어
혹시 CRC 우회해서 코드 패칭하려는 거면 최악의 경우엔 커널 레벨로 내려가서 메모리 클로킹 구현하는 방법도 있음
페이지 테이블 조물딱하고 페이지 폴트 인터럽트 핸들러 후킹하는 건데 x86(32비트)면 가능할 듯