오토/매크로 프로그램을 만드는 2가지 방법
키 입력 자동화 기반 매크로 (간단한 방법)
메모리 조작 기반 봇 (고급 방법)
1. 키 입력 자동화 기반 매크로
이 방식은 게임 화면을 보면서 일정한 패턴대로 키 입력을 자동화하는 방식이야.
이걸 만들려면 다음 기술을 공부하면 돼
✅ Python과 OpenCV
화면에서 몬스터, 체력바, UI 요소를 인식하려면 OpenCV를 사용해야 해.
cv2.matchTemplate()을 활용해서 특정 이미지를 찾아낼 수 있어.
예제: 화면에서 몬스터 찾기
import cv2
import numpy as np
screenshot = cv2.imread("screenshot.png", 0)
monster_template = cv2.imread("monster.png", 0)
result = cv2.matchTemplate(screenshot, monster_template, cv2.TM_CCOEFF_NORMED)
_, max_val, _, max_loc = cv2.minMaxLoc(result)
if max_val > 0.8: # 매칭 정확도 80% 이상
print(f"몬스터 발견! 위치: {max_loc}")
✅ PyAutoGUI 또는 Pynput
키보드 입력과 마우스 조작을 자동화할 때 사용해.
pyautogui.click(x, y)로 특정 위치 클릭 가능.
pyautogui.press('space')로 키 입력 가능.
✅ 시간 조절 (Time.sleep)
너무 빠르게 입력하면 게임에서 막힐 수도 있으니 적절한 지연을 줘야 해.
2. 메모리 조작 기반 봇 (고급)
이 방식은 게임의 메모리를 읽고, 직접 원하는 값을 변경하는 방식이야.
(주의: 이 방법은 게임 클라이언트의 데이터를 조작하는 것이므로 법적 문제가 될 수 있어!)
✅ 메모리 분석 도구 사용법 공부
Cheat Engine을 사용해 게임 메모리를 분석하고, HP, MP, 위치 좌표 등을 찾아볼 수 있어.
✅ Python의 pymem 또는 C++ 사용
pymem 라이브러리를 사용하면 특정 프로세스 메모리를 읽고 값을 조작할 수 있어.
예제: 특정 프로세스의 메모리 값 읽기
import pymem
pm = pymem.Pymem("game.exe")
address = 0x12345678 # 찾은 메모리 주소
value = pm.read_int(address)
print(f"현재 값: {value}")
✅ DLL 인젝션
C++로 DLL을 만들어 게임에 주입하면 더 강력한 조작이 가능해.
WriteProcessMemory()를 사용해 메모리 값을 변경할 수도 있어.
✅ 패킷 스니핑
게임이 서버와 주고받는 데이터를 분석하면, 특정 행동을 서버에 직접 요청할 수도 있어.
Wireshark를 사용해 패킷을 분석하고, Python의 scapy 같은 라이브러리로 가짜 패킷을 보낼 수도 있어.
추천 학습 순서
Python 기본기 학습 → PyAutoGUI, OpenCV, pymem 활용법 익히기
스크립트 기반 매크로 제작 → 이미지 인식 + 키 입력 자동화 연습
Cheat Engine으로 메모리 값 확인 → HP, MP, 위치 데이터 찾기
pymem으로 메모리 값 읽기/쓰기 연습
고급 기술 (DLL 인젝션, 패킷 조작) 공부 (C++ 필요)
'programming > Python' 카테고리의 다른 글
[파이썬/머신러닝] 비지도 학습 군집의 개념 (0) | 2024.02.04 |
---|---|
[파이썬/머신러닝] 선형 커널을 가진 SVM분류 모델을 만들고 시각화하는 예제 (0) | 2024.02.04 |
[파이썬/머신러닝] SVM모델로 다항 분류 모델링 (0) | 2024.02.04 |
[파이썬] st.text_input으로 텍스트 입력하기 (0) | 2023.12.29 |
[파이썬] streamlit의 tabs&columns 기능활용하기 (0) | 2023.12.28 |