Cheat Engine Dosbox Editor making - 치트 엔진 도스박스 에디터 만들기
Reverse Engineering 2023. 1. 26. 22:35 |치트 엔진으로 게임에서 수정하고 싶은 값의 주소를 찾아도 게임을 다시 실행시키면 그 주소가 변경되어 처음부터 다시 진행해야만 하는 경우가 있다.(포인터 등으로 해결 불가) 예를 들어 도스박스로 고전 게임을 실행시키는 경우 값의 주소가 변경될 뿐만 아니라 그 값을 기록하는 명령이 다른 여러 주소에 접근하기 때문에 쉽게 에디터를 만들 수가 없다.
※ 참고:
2023.01.01 - [Reverse Engineering] - Cheat Engine AOB Injection with DosBox - 치트 엔진 코드 인젝션 도스박스
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
[ENABLE]
aobscanmodule(INJECT,DOSBox.exe,66 89 34 18 8B 5C 24 14) // should be unique
alloc(newmem,$1000)
globalalloc(editor, 4) // Thunder 주소 저장을 위한 4 바이트 메모리 할당
label(code)
label(return)
newmem:
cmp [eax+ebx+61], 'JOHN' // [Thunder 주소+61]에 'JOHN' 문자열이 있다
jne code // Thunder 값이 저장된 장소가 아니면 원래 코드 실행
push edx // eax+ebx 값을 저장하기 위해 edx 사용
xor edx, edx // edx 초기화
mov edx, eax
add edx, ebx
mov [editor], edx // editor 심볼에 Thunder 주소 저장
mov [eax+ebx], si // 원래 코드 실행
mov ebx, [esp+14]
pop edx // 원래 edx 값 복구
jmp return
code: // 원래 코드
mov [eax+ebx],si
mov ebx,[esp+14]
jmp return
INJECT:
jmp newmem
nop 3
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
db 66 89 34 18 8B 5C 24 14
unregistersymbol(INJECT)
dealloc(newmem)
dealloc(editor) // 6바이트 메모리 해제
|
주소 리스트 창에서 위와 같이 번개 수치가 저장된 주소를 스크립트의 [심볼(editor)+offset] 방식으로 생성한다. 아래 폭탄과 생명도 동일한 방법으로 진행한다.
'Reverse Engineering' 카테고리의 다른 글
Ghidra - Dark Theme 다크 테마 (0) | 2023.02.10 |
---|---|
Cheat Engine Cuphead Character HP Cheating - 치트 엔진 컵헤드 HP 치팅 (0) | 2023.01.28 |
TLS(Thread Local Storage) Callback 작성 중........... (0) | 2023.01.22 |
x32dbg/x64dbg Assembly Mnemonic Help 어셈블리 명령어 설명 (0) | 2023.01.20 |
x32dbg/x64dbg Cross References 크로스 레퍼런스 (0) | 2023.01.19 |