반응형

게임해킹 28

프로세스 아이디 가져오는 방법

메모리에 접근하기 위해 OpenProcess를 사용하려면 프로세스 아이디가 필요하기 때문에 알아보겠습니다.CreateToolhelp32Snapshot 함수를 사용해 가져오는 방법FindWindow와 GetWindowThreadProcessId 함수를 사용해 가져오는 방법CreateToolhelp32Snapshot 함수 사용 HANDLE CreateToolhelp32Snapshot( [in] DWORD dwFlags, [in] DWORD th32ProcessID);_In_DWORD dwFlags스냅샷에 포함할 정보, 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.(MSDN 참고)_In_DWORD th32ProcessID스냅샷에 포함할 프로세스의 프로세스 식별자 (0을 넣으면 모든 프로세스 스냅샷..

기본적인 게임해킹 방법과 최근 게임해킹 방법 (안티치트 우회, 드라이버 해킹)

게임 해킹이 어떻게 이루어지는지 과정입니다.내용 없이 설명만 하지 않고 직접 해볼 수 있게 작성할 예정입니다.게임 해킹 처음 접할 때 보시면 좋습니다. 게임 해킹 순서 메모리 스캔으로 원하는 값 찾기 (+덤퍼)베이스 주소(imagebase) 가져오기메모리 읽기, 쓰기원하는 작업안티 치트로 보호돼있으면? (최근 게임 해킹 방법)  1. 메모리 스캔 메모리 스캔은 치트 엔진 같은 툴로 원하는 값을 찾는 겁니다. (체력, 돈, 위치, 뷰 메트릭스 등)원하는 값은 다 메모리에 있으니까요.어떻게 값을 찾는지는 치트 엔진 카테고리에 예시들이 있습니다.언리얼 엔진 게임이라면 언리언 덤퍼를 사용하면 오프셋을 찾기 정말 쉬워집니다.덤퍼를 사용하면 게임에서 사용하는 변수(체력, 위치, 아이템, 오브젝트 등)함수(현재 위치..

[게임해킹] 모듈 베이스 얻어오기 CreateToolhelp32Snapshot

게임 해킹에 꼭 필요한 베이스 주소 가져오는 방법입니다. CreateToolhelp32Snapshot 함수를 사용해 가져오는 방법입니다.HANDLE CreateToolhelp32Snapshot( [in] DWORD dwFlags, [in] DWORD th32ProcessID);_In_DWORD dwFlags스냅샷에 포함할 정보, 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.(소스코드와, MSDN 참고)_In_DWORD th32ProcessID스냅샷에 포함할 프로세스의 프로세스 식별자 (프로세스 아이디 넣으면 됩니다.) 예제 코드#include #include // 함수 사용을 위한 헤더#include uintptr_t GetBase(int pid, LPCSTR procname) { uint..

[게임해킹] PEB구조체로 베이스 주소 얻어오기

많이 들어본 PEB구조체를 게임 해킹 어디에 쓰는지 알아봅시다. PEB(Process Environment Block)는 유저 레벨에서 프로세스에 대한 정보를 저장하고 있는 구조체입니다.PEB를 게임 해킹에서 활용은 주로 베이스 주소를 얻어올 때 사용합니다.소스코드 아래 코드는 메모장의 베이스 주소를 얻어오는 코드인데,"제목 없음 - Windows 메모장"을 수정하면 원하는 게임창을 가져올 수 있습니다. // 프로세스의 기본 정보를 받을 때 사용하는 구조체 PROCESS_BASIC_INFORMATION pbi = {}; DWORD returnLength = 0; DWORD pid; // 윈도우 창 핸들을 찾아서 HWND hwnd = FindWindow(0, "제목..

안티 치트가 프로세스 핸들을 보호하는 방법 (치트엔진 검색 안 되는 이유) [게임해킹]

설명커널 안티 치트로(뱅가드, 이지안티치트, 배틀아이)보호된 게임을 치트 엔진으로 메모리 검색을 해보면, 검색이 안 되는 경우가 있는데핸들 생성을 모니터링할 수 있게 해주는 ObRegisterCallbacks 사용해 핸들을 보호하기 때문입니다. 추가 설명ObRegisterCallbacks : 프로세스, 스레드 핸들 조작을 위한 콜백 함수를 등록하는 함수요청된 작업 Pre(이전)과 Post(이후) 동작을 설정할 수 있습니다.콜백 함수 : 응용 프로그램이 제공하며, 특정 이벤트 발생 시 운영체제에게 호출당하는 함수콜백 함수를 해석해보면응용 프로그램이 제공 : 우리가 등록했기 때문이고특정 이벤트 : 핸들 작업(open, duplicate)이고호출당하는 함수 : 우리가 등록한 함수즉, 게임 핸들을 보호하기 위해..

엔디비아 오버레이를 이용한 ESP핵 만드는법 (nvidia overlay hijack)

ESP핵을 만들기 위해화면 좌표를 얻어왔으면ESP만드는 과정 좌표에 그리기를 위해따로 창을 만들어 띄우거나게임창에 그대로 그리기를 해버리면안티 치트에 탐지될 확률이 높기 때문에탐지율을 낮추기 위한 그리는 방법 중 하나인nvidia overlay hijack입니다.https://github.com/es3n1n/nvidia-overlay-renderer참고한 소스코드입니다. main함수부터 따라 핵심만 뽑아내main에 쭉 늘려보면int main( ) { // 여기부터 엔디비아 오버레이 설정     // 엔디비아 오버레이창의 핸들을 얻어와서 vars::m_window_hwnd = FindWindowW(L"CEF-OSC-WIDGET", L"NVIDIA GeForce Overlay");     // 확장 창 스타..

[게임해킹 C++] 입출력 cout, cin, 메모리 읽기 쓰기

다른 곳에서 배운 C++을 게임에 어떻게 쓰는지 보여주는 목적이라특정 문법 설명이 없을 수 있습니다. 1. std::cout 기본 설명(출력)#include //헤더파일int main(){ int hp = 100; // hp변수 100으로 초기화 std::cout "std::"는 std 네임스페이스를 나타냅니다. (네임스페이스 자세한 내용은 검색해보면 됩니다)"std::endl"은 개행(줄 바꿈)입니다.""std::"를 붙이는 게 귀찮으면 "using namespace std;"를 사용하면 됩니다.#include // 헤더파일using namespace std; // 네임스페이스 사용int main(){ cout  2. std::cin 기본 설명(입력)#include // 헤더파일u..

언리언 덤퍼 사용법 (언리얼 엔진 게임해킹 하는 방법)

일반적인 게임과 다르게언리언 엔진 게임을 해킹하려면 언리언 덤퍼를 사용하면 쉽게 핵을 만들 수 있습니다. 덤퍼를 사용하면 게임에서 사용하는변수(체력, 위치, 아이템, 오브젝트 등)와함수(현재 위치 가져오기, 스킨 바꾸기 등)오프셋을 자동으로 찾아줍니다.저희는 그걸 그냥 사용하면 되겠죠.언리얼엔진 덤퍼 사용법입니다.준비 https://github.com/guttir14/UnrealDumper-4.25 다운로드하고 engine.cpp를 열고원하는 게임 프로세스 이름을 등록컴파일 후 생성된 Dumper를 실행시키면일반적인 게임은 그냥 덤프가 떠집니다.   기본으로 등록돼 있는"FNamePool"과 "TUObjectArray"바이트가일치하기 때문이죠.  하지만 기본 바이트와 일치하지 않는 게임도 있습니다.그러면..

야겜 더 신사적으로 플레이하는 법 (야겜 모자이크 없애기)

언리언 엔진 엔진의 모자이크를 없애는 방법입니다.게임은 언더 더 위치(under the witch)라는 게임입니다.Under The Witch: Beginnings by Shady Corner(바로 이상한 사진이 보입니다!) 이 게임뿐만 아니라 다른 언리언 엔진게임에도 적용됩니다. 준비준비 1. https://github.com/bo3b/3Dmigoto/releases/tag/1.3.163Dmigoto최신 버전을 다운로드해줍니다.  준비 2.압축푼 3Dmigoto파일 들을게임 실행파일 폴더 위치에 압축 해제해줍니다.(실행파일은 "게임이름-Win64-Shipping"형식으로 돼있습니다.) 언더 더 위치 경우 "UTW_Beginnings_Ver1_8_Demo\UTW_Beginnings\Binaries\Win..

EfiGuard 드라이버 서명 우회 (안티치트 우회)

EfiGuard 링크EfiGuard는 PatchGuard 및 DSE(드라이버 서명 적용)를 사용하지 않도록 설정하기 위해부팅 시 Windows 부팅 관리자, 부팅 로더 및 커널을 패치하는 UEFI 부트킷입니다.드라이버를 서명하지 않고 로드하는 방법입니다.치트엔진 드라이버 로드에 사용도 합니다. 필요한 것■ USB■ EDK2 UEFI Shell (바로 다운)■ EfiGuardDxe.efi (바로 다운) 사용 방법1. 준비단계다운로드한 EfiGuard-v1.2.1.zip을 압축 풀고 EfiGuardDxe.efi만 사용할 겁니다. USB에 EfiGuardDxe.efi를 넣고EFI 폴더를 만들어줘야 합니다.  그리고 EFI 폴더 안에 Boot 폴더를 만들어주고다운로드한 EDK2 UEFI Shell 이름을 boo..

반응형