본문 바로가기

분류 전체보기330

1. 해킹 도구 본 게시글은 메모리에 대한 깊은 이해를 위해 에이콘 출판사의 "봇을 이용한 게임 해킹" 서적을 보고 필기한 자료입니다. 따라서 디테일한 부분에서 본 서적의 실제 내용과 다를 수 있고 글쓴이의 주관이 들어가 있음을 참고해주시기 바랍니다. 문제 시 비공개 처리하도록 하겠습니다. 치트 엔진 게임 내의 메모리를 스캔할 수 있는 도구 메모리에는 HP, 공격력, 레벨 등 캐릭터에 민감한 데이터들이 올라와 있다. 목표로 하는 메모리의 값을 임의적으로 변화시키면서 오류를 줄여나가고 결국 해당 메모리 값을 추출할 수 있다. 포인터 스캐닝 포인터 체인을 사용하는 이유는 대규모 동적 메모리 할당이 발생할 때 게임 코드가 이를 참조할 수 있는 정적 주소가 대응되어야 하기 때문 게임 해커들은 포인터 체인을 찾아서 메모리에 접근.. 2022. 9. 18.
CPP_1. AssortRock 8일차 오프라인 수업_220916 함수 포인터에 대한 이야기 함수 포인터는 반환타입(*함수포인터명)(인자타입) 으로 사용한다. 서버로부터 특정 명령을 받은 경우, 서버는 보통 숫자와 같은 글자들을 보내줌 그런 값들을 상황에 맞게 처리하기 위해 함수 포인터 사용 콜백 함수 템플릿에 대한 이야기 함수 오버로딩으로 만들 함수들이 너무 많다면 템플릿으로 만들면 편하다. 빌드 속도가 느려지지만 편리함이 더 좋음^_^ 템플릿 특수화 템플릿을 만들고 특정 타입에 대해 다르게 동작하도록 하는 방법 템플릿을 쓰는 이유가 편리함인데 타이핑이 늘어나는건 좀 손해같은 느낌 : 2022. 9. 18.
5-2. Virtual Memory Allocation 가상 메모리를 사용하는 방법 유저 영역엔 다양한 dll, exe 그리고 힙, stack이 할당된다. 그럼 나머지 비어 있는 곳은? VirtualAlloc이라는 함수를 통해 사용이 가능하다. lpAddress : 예약을 원하는 주소(64k의 배수), 관례적으로 0을 넘김 (0을 넘기면 사이즈에 맞는 주소를 찾아준다) dwSize : 예약할 주소의 크기 (PAGE 크기(4K)의 배수) flAllocationType : 예약할건지, 예약하고 할당할건지 (MEM_RESERVE : 예약 / MEM_COMMIT : 할당) flProtect : 페이지 보호속성 (PAGE_READWRITE 등) 예약과 할당 이 함수의 3번째 인자가 예약인지 할당인지 정하는 옵션이 있는데, MEM_RESERVE는 원하는 가상 메모리 크.. 2022. 9. 18.
1. 그래프 기초 그래프란? 그래프는 현실 세계의 사물이나 추상적인 개념 간 연결 관계를 표현함 정점 : 각각의 데이터를 표현 간선 : 정점들을 연결하는 선 그래프는 연결 개수에 제한이 없다. (연결리스트의 노드와 비교했을 때) 도로, 소셜 네트워크 등 활용 범위가 무궁무진함 가중치 그래프란? 연결관계 뿐만 아니라 가중치를 주어 이동 간 비용을 표시 방향 그래프란? 말 그대로 방향이 있는 그래프다. 두 사람 사이의 호감도 같은 것 그래프의 구현 방법 1 void CreateGraph_1() { struct Vertex { vector edges; }; vector v; v.resize(6); v[0].edges.push_back(&v[1]); v[0].edges.push_back(&v[3]); v[1].edges.push.. 2022. 9. 17.