ALL15 [4편] ReClass 사용해보기 포스팅에 앞서, AssaultCube와 관련된 모든 포스팅은 버전 1.2.0.2로 작성됩니다. Reclass 리클래스는 치트엔진에서도 메모리 구조를 수정하거나 분석하는데 사용됩니다. 치트엔진이 아니라 리클래스를 따로 사용하는 이유는 치트엔진에서 메모리를 분석할 때보다 보기쉽게 분석을 할 수 있고, C/C++로 클래스화시킬 수 있어서 사용합니다 자세한 사항은 아래 깃허브 내에서 확인하실 수 있습니다. https://github.com/ReClassNET/ReClass.NET GitHub - ReClassNET/ReClass.NET: More than a ReClass port to the .NET platform. More than a ReClass port to the .NET platform. Cont.. 2024. 2. 5. 연결리스트 - Linked list(C++ 코드구현, 소스코드, 개념) 연결리스트 (Linked list) 연결리스트는 데이터를 저장하는 자료구조로, 각각의 데이터 요소가 포인터를 통해 다음 요소와 연결되어 있는 방식으로 동작하는 비선형 자료구조입니다. 작동 원리 연결리스트는 노드(node)라고 불리는 개별적인 데이터 요소들이 링크(link)를 통해 연결되어 동작합니다. 각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성되어있습니다. 첫 번째 노드를 가리키는 특별한 포인터인 헤드(head)포인터도 존재합니다. 더 자세하게고 쉽게 사진으로 설명하겠습니다. 사진에서, 데이터필드와 링크필드를 담고있는 한 객체가 노드입니다. 각 노드는 이전에 설명했듯이, 데이터를 담고있는 데이터필드와 다음 노드를 가리키는 포인터인 링크필드로 구성되어있습니다. 연결리스트는 다음 노드를 가리키는 .. 2023. 7. 8. 어셈블리어 (Assembly language) 개념, 기초 어셈블리어(Assembly language) 어셈블리어(Assembly language)는 기계어와 1:1로 대응되는 저급 프로그래밍 언어입니다. 보통 어셈블리어는 어셈블리라고도 하고, 일반적으로는 ASM이나 asm이라는 단어로 약칭되기도 합니다. 어셈블리어는 기계어나 프로그래밍 언어와 마찬가지로 컴퓨터에서 직접 실행될 수 있는 형태의 코드를 작성할 수도 있습니다. 어셈블리어는 일반적으로 기계어와 마찬가지로 16진수(hexdecimal)로 표현되고, 기본적으로 세 부분으로 구성됩니다. 1. 라벨 (Label) 라벨은 코드 내에서 특정 위치를 참조하기 위한 이름입니다. 아래 코드와같이 콜론(:)으로 끝나는 식별자로 표현됩니다. loop_start: 2. 명령어 (Instruction) 컴퓨터에서 실행할 작.. 2023. 4. 7. 스택 - Stack (C++ 코드구현, 소스코드, 개념) 스택 (STACK) 스택은 데이터 구조로, LIFO(Last In, First Out) 원칙에 따라 동작되는 선형 자료구조입니다. 한마디로 가장 최근에 추가된 항목이 가장 먼저 제거되는 방식으로 작동하는 것을 의미합니다. 작동 원리 스택은 PUSH와 POP이라는 연산을 통해 동작되는 자료구조입니다. 앞서말한 LIFO라는 원칙에 따라 동작되어, PUSH 연산은 테트리스와 같이 한곳에 계속 쌓이는 형태입니다. 마찬가지로, POP 연산은 가장 최근에 추가된 데이터를 제거하는 역할을 합니다. 아래사진에서 작동방식을 확실하게 이해할 수 있습니다. 이후 스택을 C++언어로 구현한 코드와 함께 설명하도록 하겠습니다. WIKIPEDIA Stack (abstract data type) - Wikipedia #includ.. 2023. 4. 3. 커널 드라이버 구조체 (Kernel Dirver Structures) 커널 모드 드라이버를 프로그래밍할 때 많이 사용되는 데이터 구조체의 설명 IRP (I/O Request Packet) IRP는 운영체제에서 Input/Output 요청을 하기위해 사용되는 데이터 구조체입니다. 커널 드라이버에서는 IRP를 사용하여 컴퓨터인 하드웨어와 상호작용을 하고, 컴퓨터와 통신하게 됩니다. 또한 윈도우 운영체제에서의 유저모드 프로그램들과의 통신을 처리할 수 있습니다. 커널 드라이버에서의 IRP는 디바이스 객체와 함께 사용되는 파일객체, 메모리 버퍼 및 기타의 것들이 포함되어있습니다. I/O요청의 상태를 추적하고 요청이 완료되면 해당 요청의 결과를 보고하는 구조체입니다. 참고 IRP (wdm.h) - Windows drivers | Microsoft Learn DEVICE_OBJECT .. 2023. 4. 3. [3편] 실제 게임에서 치트엔진 사용하기 (Local Entity Address) 포스팅에 앞서, AssaultCube와 관련된 모든 포스팅은 버전 1.2.0.2로 작성됩니다. 게임해킹에서의 가장 기본이라고 말할 수 있는 Local Entity, Pointer, offset 주소를 찾는 방법에 대한 포스팅입니다 치트엔진으로 게임해킹을 진행하기 위해서 오픈소스 게임인 Assaultcube 를 켜주도록 하겠습니다 정상적으로 게임을 켰으면 아래와 같은 화면이 나타납니다 치트엔진도 켜준 후 아래 사진처럼 게임을 Attach해주도록 하겠습니다 Open 클릭! 먼저 게임의 Local Entity 주소를 찾기 전에 잠깐 설명을 해드리겠습니다 Local Entity 주소는 Player의 객체를 가리키는 주소입니다 이 주소를 찾게되면 오프셋을 더욱 쉽게 찾을 수 있기때문에 Local Entity 주소.. 2023. 1. 4. [7편] 치트엔진 튜토리얼 - Step 7 (Code Injection) 치트엔진 튜토리얼 실행 우선 치트엔진 튜토리얼을 하기 위해서, 치트엔진과 튜토리얼 프로그램을 켜보도록 하겠습니다. 치트엔진을 킨 상태에서 Help-> Cheat Engine Tutorial (64-Bit) 클릭 치트엔진 튜토리얼 - STEP 6 우선, 아래와 같은 사진의 프로그램이 실행되었다면 Process Attach를 해보도록 하겠습니다. 치트엔진 튜토리얼 화면 여러가지 프로세스 중에서 아래 사진과 같이 Tutorial-x86_64 를 Open 해 줍니다. Process List 화면 STEP 7 설명 Health의 값은 버튼을 누르면 1씩 감소합니다. 1씩 감소하게 되는 이 버튼의 기능을 Code Injection 이라는 치트엔진 기능을 사용하여 어셈블리 코드를 삽입해서 버튼을 클릭하였을 때 2씩 .. 2023. 1. 1. [6편] 치트엔진 튜토리얼 - Step 6 (포인터와 오프셋) 치트엔진 튜토리얼 실행 우선 치트엔진 튜토리얼을 하기 위해서, 치트엔진과 튜토리얼 프로그램을 켜보도록 하겠습니다. 치트엔진 튜토리얼 - STEP 6 우선, 아래와 같은 사진의 프로그램이 실행되었다면 Process Attach를 해보도록 하겠습니다. 여러가지 프로세스 중에서 아래 사진과 같이 Tutorial-x86_64 를 Open 해 줍니다. STEP 6 설명 Step6는 아래 사진에서 볼 수 있듯이 이라고 써져있는 값이 있습니다 . 이 값은 Change value 버튼을 눌렀을 때 임의의 숫자로 변경됩니다. 그리고 Change pointer버튼을 눌렀을 때 위에 출력되는 값이 가지고있는 주소가 변경이 됩니다. 하지만 포인터와 오프셋을 찾고 둘을 연동시켜주면 아무리 위에있는 주소가 변경이 되도 그 변경된.. 2022. 12. 6. [5편] 치트엔진 튜토리얼 - Step 5 (어셈블리어 맛보기) 치트엔진 튜토리얼 실행 우선 치트엔진 튜토리얼을 하기 위해서, 치트엔진과 튜토리얼 프로그램을 켜보도록 하겠습니다. 치트엔진 튜토리얼 - STEP 5 우선, 아래와 같은 사진의 프로그램이 실행되었다면 Process Attach를 해보도록 하겠습니다. 여러가지 프로세스 중에서 아래 사진과 같이 Tutorial-x86_64 를 Open 해 줍니다. STEP 5 설명 Step5는 아래 사진에서 볼 수 있듯이 이라고 써져있는 값이 있습니다 . 이 값은 Change value 버튼을 눌렀을 때 임의의 숫자로 변경됩니다. Step 5의 미션은 버튼을 눌렀을 때, 숫자가 변경이 안되게 어셈 코드를 수정하는 것 입니다. (어셈 = 어셈블리어) 스텝5는 어셈블리어 코드를 수정하는 과정을 거칩니다. 이 어셈블리어를 간단하게.. 2022. 12. 5. [4편] 치트엔진 튜토리얼 - Step 4 치트엔진 튜토리얼 실행 우선 치트엔진 튜토리얼을 하기 위해서, 치트엔진과 튜토리얼 프로그램을 켜보도록 하겠습니다. 치트엔진 튜토리얼 - STEP 4 우선, 아래와 같은 사진의 프로그램이 실행되었다면 Process Attach를 해보도록 하겠습니다. 여러가지 프로세스 중에서 아래 사진과 같이 Tutorial-x86_64 를 Open 해 줍니다. STEP 4 설명 Health , Ammo 메모리의 주소를 찾아 값을 5000으로 변경하기. (단, 아래사진에서 볼 수 있듯이 자료형이 Healht = float, Ammo = double로 되어있습니다.) 치트엔진 스텝4에서는 스텝 2와 같은 원리이지만 찾을 값의 자료형이 Float과 Double 로 되어있다는 점만이 다릅니다. 실제 게임에서 해킹을 진행하게 되면.. 2022. 12. 5. 이전 1 2 다음 반응형