본문 바로가기

전체 글328

6. 코드 인젝션 본 게시글은 메모리에 대한 깊은 이해를 위해 에이콘 출판사의 "봇을 이용한 게임 해킹" 서적을 보고 필기한 자료입니다. 따라서 디테일한 부분에서 본 서적의 실제 내용과 다를 수 있고 글쓴이의 주관이 들어가 있음을 참고해주시기 바랍니다. 문제 시 비공개 처리하도록 하겠습니다. 코드 인젝션이란 프로세스가 수행되는 메모리 공간과 실행 환경에서 외부 코드를 수행하도록 강제하는 것 코드 인젝션 방법 코드 케이브를 만들고 스레드를 주입하는 방법 직접 외부 바이너리를 이식하는 것 스레드 인젝션으로 코드 케이브 주입하기 다른 프로세스에 코드를 주입하는 첫 단계는 셸 코드 셸 코드란? 위치와 상관없이 수행 가능한 어셈블리 코드를 바이트 배열 형태로 작성한 것 셸 코드를 작성해 코드 케이브를 만들 수 있고, 코드 케이브는.. 2022. 10. 1.
[PUSH PUSH] 게임 로직 구현 - AssortRock 17일차 오프라인 수업_220929 로직 변경 사항 Ball을 밀었을 때 그 위치가 Ball 혹은 벽이면 그 위치로 이동하지 못하게 하는 로직 추가 House에 Ball을 넣었을 때 House가 반짝거리게 하는 효과 넣기 (Pen의 도입) 숙제 (플레이어가 제일 마지막에 그려지도록 하기) 이동불가 로직 // Player.cpp if (map->GetPixel(ballPos) == L'▩' || map->GetPixel(ballPos) == L'●') { ballPos = prevBallPos; mPos = prevPos; } 만약 다음 볼이 움직인 위치를 가져와서 그 위치가 벽이거나 Ball일 경우 움직이기 전 위치로 세팅해준다. House에 볼을 넣었을 때 효과 처리 Ball이 들어갔는지 아닌지 여부에 따라 해당 칸에 bool 값으로 표.. 2022. 9. 30.
7. 템플릿 Type Traits 본 글은 코드누리의 Template Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/course-status/ Type Traits 컴파일 시간에 타입에 대한 정보, 변형된 타입을 얻을 때 사용함 메타 함수라고도 불림 T가 포인터인지 알아내는 테크닉 #include #include // foo의 T가 포인터인지 알아내려면 구조체를 만듦 template struct xis_pointer { enum { value = false}; }; //부분 특수화 template struct xis_pointer { enum { value = true }; }; template void foo(T v) { // 부분 특수화를 통해 is_pointer 구.. 2022. 9. 30.
6. 템플릿 특수화 본 글은 코드누리의 Template Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/course-status/ 템플릿 특수화란? 특정 타입에 대해 이렇게 처리 해주세요~ 하는 것 클래스를 만들어내는 틀을 필요에 맞게 교체하는 것 #include #include /* Primary template */ template class Stack { public: void push(T a) { std::cout 2022. 9. 29.