수비수로 이동
https://discord.gg/qeYaYK4JKq
고디펜더
이 Go 패키지는 다양한 형태의 디버깅 도구 및 가상화 환경을 탐지하고 방어하는 기능을 제공합니다. 그런데 빠른 설정을 위해서는 install.bat
실행하세요.
가상화 방지
- 분류 감지 : 시스템이 분류 또는 분석 환경에서 실행 중인지 감지합니다.
- 지표 모니터링 : 시스템 지표를 모니터링하여 가상화를 나타내는 비정상적인 동작을 식별합니다.
- VirtualBox 감지 : Oracle VirtualBox의 존재를 감지합니다.
- VMware 감지 : VMware 가상화 소프트웨어의 존재를 감지합니다.
- KVM 확인 : KVM(커널 기반 가상 머신) 하이퍼바이저를 확인합니다.
- 사용자 이름 확인 : 현재 사용자가 기본 가상화 사용자인지 확인합니다.
- 최근 사용자 활동 : 사용자 활동을 확인합니다. 파일이 20개 미만이면 종료됩니다.
- USB 마운트 : 이전에 USB가 컴퓨터에 연결되었던 적이 있는지 확인합니다.
- VM 아티팩트 : VM(가상 머신)이 남긴 아티팩트를 식별하며, 이는 VM 환경의 존재를 나타낼 수 있습니다.
- Parallels Check : Windows 및 기타 게스트 운영 체제를 실행하는 데 사용되는 macOS용 가상화 소프트웨어인 Parallels Desktop을 감지합니다.
- QEMU 감지 : 오픈 소스 머신 에뮬레이터이자 가상화 프로그램인 QEMU의 존재를 식별하며, 이는 가상 머신 감지를 나타낼 수 있습니다.
디버그 방지
이 모듈에는 실행 중인 프로세스의 디버깅 및 분석을 감지하고 방지하는 기능이 포함되어 있습니다.
- IsDebuggerPresent : 디버거가 현재 프로세스에 연결되어 있는지 확인합니다.
- 원격 디버거 : 원격 디버거가 프로세스에 연결되어 있는지 감지합니다.
- PC 가동 시간 : 시스템 가동 시간을 모니터링하여 시스템 재시작에 따른 디버깅 시도를 감지합니다.
- 블랙리스트에 등록된 Windows 이름 확인 : 프로세스 이름이 디버거에서 일반적으로 사용하는 블랙리스트에 등록된 이름과 일치하는지 확인합니다.
- 실행 중인 프로세스 : 실행 중인 프로세스 목록을 검색하고 잠재적인 악성 프로세스를 식별합니다.
- Parent Anti-Debug : 상위 프로세스가 현재 프로세스를 디버그하려고 시도하는지 감지합니다.
- 잘못된 프로세스를 확인하세요 . 시스템에서 감지되면 옵션에 따라 조치를 취하세요(bool).
- 사용자 모드 AntiAntiDebuggers 감지 : ScyllaHide(BASIC/VMP 플러그인)와 같은 사용자 모드 안티 안티 디버거를 감지합니다.
- 인터넷 연결 확인 : 인터넷 연결이 되어 있는지 확인합니다.
프로세스유틸리티
앱에 필요할 수도 있는 ProcessUtils
- Critical Process : 시스템 운영에 필수적인 핵심 프로세스를 관리하는 기능을 구현합니다.
- 런타임 설정 : 앱 런타임을 지정된 런타임으로 설정합니다:
MacOS,Linux,Windows
- 모든 토큰 활성화 : 현재 프로세스에 대한 모든 토큰 Windows 권한을 활성화합니다.
- IsAdmin - Request Admin : 현재 프로세스에 대해 admin을 요청하고, 현재 프로세스가 Admin인지 확인합니다.
안티 DLL 주입
- Dll 패치 : 바이너리 이미지 서명 완화 정책을 활용하여 타사 바이너리 삽입을 방지합니다.
간단히 말해서
- 함수 주소에 대한 잘못된 지침을 확인하여 일반적인 안티 디버깅 기능에 대한 대부분의 안티 디버깅 후킹 방법을 감지합니다(x64에서 가장 효과적). 또한 ScyllaHide와 같은 사용자 모드 안티 디버거를 감지하고 후킹을 사용하여 응용 프로그램 동작/활동(예: Tria.ge)을 모니터링하는 일부 샌드박스를 감지할 수 있습니다.
크레딧
- https://github.com/AdvDebug : 이 패키지를 만들기 시작하도록 영감을 주었습니다. 그 사람이 없었다면 여기도 없었을 거예요. 그의 GitHub를 확인해 보세요.
- https://github.com/MmCopyMemory : 아이디어 등을 제공했습니다. 그의 GitHub를 확인해 보세요.
- https://github.com/bytepulze: 오류/수정에 대한 도움을 받으려면 Github를 확인하세요.
- 누군가 내 다른 Go 프로그램을 크래킹하거나 분석하려고 한다는 것을 알아차렸기 때문에 이것을 만들었습니다. 이전에는 디버깅 방지 코드 줄이 많았기 때문에(느리게 코딩하여 모든 것을 하나에 넣었습니다) 리버스 엔지니어의 삶을 더 힘들게 만들 수 있는 빠르고 안정적인 코드를 만들고 싶었습니다. 그래서 GoDefender를 만들었습니다.