본문 바로가기

전체

(49)
[Dynamic 안티디버깅] Assembly instructions 'Anti-Debug Assembly instructions' 설명 CPU가 특정 명령을 실행할 때 디버거가 작동하는 방식에 따라 디버거의 존재를 탐지하는 방법 1. INT 3 2. INT 2D 3. DegubBreak 4. INT1 5. Stack Segment Register 6. POPF and Trap Flag 7. PREFIX REP INT 3 INT3은 소프트웨어 브레이크 포인트로 사용되며 INT3이 호출되면 EXCEPTION_BREAKPOINT (0x80000003)가 발생하고 예외 처리기가 호출된다. 일반적인 실행 인 경우 예외가 발생되면 예외 처리기에 의해 제어되지만 디버깅중일 경우는 예외처리를 디버거가 받기 때문에 예외 처리기가 실행되지 않은 상태에서 코드가 실행되는 것을 이용 주로 S..
악성코드 분석 악성 코드란? 악성코드는 컴퓨터 시스템을 손상시키고 데이터에 해를 끼치거나 사용자의 정보를 훔치거나 파괴하는악의적인 목적을 가진 소프트웨어를 말한다. 악성코드는 주로 이메일 첨부 파일, 웹 사이트로 경로로부터 다운로드, 네트워크,USB 드라이브와 같은 이동식 미디어를 통해 시스템으로 확산된다.이는 바이러스, 웜, 트로이 목마, 스파이웨어, 랜섬웨어, 애드웨어 등 다양한 형태의 악성 소프트웨어를 포함한다. 악성 코드의 역사악성코드는 컴퓨터 보안 분야의 중요한 부분이며 컴퓨터와 인터넷이 발전함에 따라 다양하고 고급화된형태로 발전해오고 있다. 컴퓨팅 초창기에는 주로 플로피 디스크나 기타 저장 매체를 통하여 바이러스가 유포되었다.이후 1990년대 윈도우 운영체제의 보급으로 악성코드가 더욱 증가하였다.일명 ..
GameHacking 5. 스피드 핵의 동작원리에 대해 에임류 , 월핵류를 제외하곤 플레이에 영향을 주는 대표적인 핵이 또 무엇이 있는가? 'SpeedHacking' 약 20여 년 전만 하여도 Game은 Online 게임보단 Single 게임이 주류를 이뤘다. 이때 Single 게임은 스토리 모드, 퀘스트 같은 컨텐츠를 주로 하였는데 단지 게임을 빨리 클리어하고 싶다던지 좀 변칙적인 게임을 즐기기 위해 Game Hacking이 등장했다. 추 후 Online 게임이 등장하면서 Online게임들이 주류를 이루게 되는데 게임은 더 이상 혼자만 하는 것이 아닌 남들과 같이하는 , 경쟁하는 구도로 바뀌게 되면서 게임 중독성 및 경쟁의식을 강하게 키워 주었다. 공평한 조건에서 시작하는 Online 게임은 남들과 달리 변칙적인 행동이 있어야 게임 승산이 커지는 건 당연한..
GameHacking 4. 에임봇 핵의 동작원리에 대해 앞에서 FPS 게임의 월핵에 대해서 알아보았다면 이번에는 에임핵에 대한 글을 다뤄 보자 한다. 흔히 에임핵으로 불리는 에임봇은 사용자가 적을 직접 조준하지 않아도 자동으로 에임을 적에게 조준해 주는 핵을 말한다. 내가 직접 Target을 조준하지 않아도 자동으로 Target을 조준하는 작업을 해주는 프로그램이 있다면 이 얼마나 편할 것인가? 게임 플레이에 있어 월핵만큼 영향을 많이 줄 수 있는 핵이라 볼 수 있다. 에임봇핵의 구현방식은 어떻게 될까? 에임(커서)를 적에게 자동으로 조준시킬 수 있는 방법은 꽤나 몇 가지가 존재한다. 각도를 계산하여 내 Camera를 회전시킨다. ㄴ회전할 각도를 계산하여 내 Camera를 회전시켜 적을 조준하는 일반적인 에임봇 방식. 화면좌표로 계산하여 마우스 좌표를 이동시..
GameHacking 3. ESP 핵의 동작원리에 대해 2편에서는 그래픽 모듈을 후킹 하여 사용하는 월핵에 대해서 알아보았는데 월핵은 무조건 그래픽 모듈을 후킹하는 방법의 월핵만 존재하는가? 꼭 그렇다고 할 순 없다. 그래픽 모듈을 건드리는 방법을 제외하고 상대방의 위치를 알 수 있는 월핵의 종류도 몇 가지 존재한다. 전 편에서 다룬 DirectX 함수를 후킹 하여 ZBuffer를 비활성화하는 그래픽 모듈을 변조하는 월핵이 있고 플레이어 정보가 담긴 게임 구조체의 메모리를 읽어와 플레이어 정보를 화면에 그려주는 ESP (ExtraSensory Perception)라는 월핵이 있다. 또한 물리엔진을 이용한 월핵도 존재한다. 게임 클라이언트 폴더의 Resource 파일에 접근하여 물체를 담당하는 models 파일들을 변조하여 사용하는 월핵도 있다. 이처럼 상대방..
GameHacking 2. WallHack의 동작원리 와 사례 FPS 게임을 하다 보면 종종 불법 프로그램 사용자를 만날 수 있는데 그 중 제일 많이 보이는 핵을 손에 꼽아 말한다면 "월핵"이라 할 수 있다. FPS 게임을 망치는 주범이며 월핵은 무엇이길래 불법 프로그램 사용자들이 주로 사용할까? 요번에는 FPS 게임이면 자주 발견 할 수 있는 "월핵" 에 대해서 이야기를 다뤄보자 한다. '월핵 ?' 월핵은 영어 단어로 벽을 뜻하는 "Wall"에서 따왔다. 벽을 뚫고 상대방을 본다. 라는 개념인데 Wallhack(월핵)은 벽을 통과해 상대방 Character(캐릭터) 모델을 투시할 수 있는 핵이다. FPS 게임에서 상대방 (적군)의 위치를 알고 있다면 플레이가 매우 쉬워질 것이다. 즉슨 게임의 승패를 좌우할 만큼 FPS 게임에서의 상대방의 위치는 매우 중요한 요소로..
GameHacking 1. 게임 핵의 동작 원리 와 사례 소프트웨어 산업 시장이 규모가 커지면서 여러 소프트웨어들이 주목받고 있는 가운데 최근 한국 게임 산업 시장이 20조 원을 돌파하여 세계 시장 점유율 4위를 차지하고 있다. 한국 게임 시장 증가율이 세계 시장 성장률을 상회한 것이다. 이 처럼 게임 프로그램은 전 세계 시장의 주를 이룰 정도로 여러 사람에게 주목받는 시스템이며 사랑받고 있다. 하지만 게임 산업의 걸림돌이 되는 불법 핵 프로그램 사용 유저에 의해 여러 게임 회사들이 손해를 겪고 있으며 게임물 관리 위원회에 따르면 불법 프로그램 탓에 발생하는 총 피해액은 연간 2조 4323억 원에 달할 것으로 추정했다. https://it.chosun.com/site/data/html_dir/2019/11/20/2019112003604.html "연간 2.4조..
[static 안티디버깅] BlockInput() ' BlockInput() ' 설명 키보드 및 마우스 입력 이벤트가 애플리케이션에 도달하지 못하도록 차단합니다. 함수 원형 BOOL BlockInput( [in] BOOL fBlockIt ); fBlockIt : 이 매개 변수가 TRUE이면 키보드 및 마우스 입력 이벤트가 차단됩니다. 이 매개 변수가 FALSE이면 키보드 및 마우스 이벤트가 차단 해제됩니다. 디버깅 중 BlockInput(True); 함수가 호출되면 키보드와 마우스 이벤트 동작이 먹통이 되므로 다른 안티디버깅 루틴 처럼 디버깅 여부를 탐지 해내기 보다는 분석을 하는 행위에 직접적으로 방해를 주는 안티디버깅 기술 이다. 내부적으로 NtUserBlockInput() 를 호출 하여 키보드 , 마우스 이벤트 동작을 차단한다. CODE #incl..