abcdef
Cheat Engine Tutorial - (9) 본문
대망의 마지막 튜토리얼 입니다.
자 보시면 p1,p2,p3,p4가 있고 앞에 C.가 붙은 애들은 컴퓨터입니다.
이번 스텝에서는 객체를 간단하게 분석해 볼 겁니다. 그리고 저번에배웠던 코드 인젝션을 써볼 겁니다.이 스텝에서 만족조건은 p1와 p2가 공격하면 데미지가 들어가고 컴퓨터팀이 공격하면 공격이 되지 않게하라는 겁니다. 먼저 앞서 얘기하자면
모든 플레이어들은 A라는 객체로 만들었고 그들이 공격 할 때 마다 공격이라는 함수를 사용할 것입니다. P1의 Health를 바꾸었을 때 객체가 같으므로 모든 플레이어의 Health가 바뀌겠죠. 우리는 p1과 p2가 공격 할 때만 공격이 되게 할 것입니다, 이것을 하기 위해 우리가 객체를 분석할 필요가 있는 것이죠.
Health가 Float형이라고 먼저 알려주었네요.
일단 모든 player에 health를 찾아줍니다.
P1의 구조를 볼겁니다. 그럼 p1이 어떻게 쓰여있는지 확인해야합니다. 그럼 p1클릭후 F6이나 우클릭해서 Find out what writes to this address 를 누릅니다.
값을 덮으면 저렇게 뜨는데 ebx + 04만큼에 P1의 Health가 있네요.
자 이제 객체분석을 해보겠습니다.
List 왼쪽 위에 Memory view가 있는데 눌러주시고
이제 위 도구창에 Tools -> Dissect data/structures 를 누릅니다.
그럼 이 창이 뜨게 됩니다. 먼저 위에 도구창에 Structures -> Define new structures를 눌러
주시고
이름을 정해주시고 size는 구조체의 몇바이트 줄꺼냐 인데 그냥 OK해줍니다.
Group1에 P1에 EBX주소(EBX + 04 = P1 health)를 넣어줍니다.
그럼 이렇게 뜨는데 Group1이라는 곳에 마우스를 갖다대고 우클릭을 하시면 Rename이라는게 있습니다. 그럼 그걸 P1으로 바꿔주세요.
그럼 0015번째를 보면 Dave라고 아주 친절하게 나와있는데 string에 더블 클릭 후 name으로 바꿔주시고 0004번째는 float형 94니까 Health가 되겠네요. 그외에는 아직 알 수 없습니다.
이제 File -> Add new group으로 하나 그룹을 생성해 주시고 P2의 정보를 적을 겁니다. 이름은 P2로 바꿔주시고 P2의 EBX 주소를 적어줍니다.(같은 객체이므로 아는 것 입니다.)
그럼 P2에 정보도 들어오게 됩니다.
그래도 아직 다른 정보들은 알 수가 없군요.
그럼 P3의 정보를 입력합니다. 이전과 같이 하시면 됩니다.
그럼 HAL의 정보가 입력됩니다.
0010번과 0014번이 다르기 시작하지만 그래도 확실치 않으므로 P4의 정보도 입력하여 줍니다.
모든 정보들이 입력이 완료되었습니다.
자 결론이 나왔습니다. 0014번째 줄은 4 4 3 4이므로 무엇인지 모르고 0010번째 는 1 1 2 2 이므로 Team란 것에 결과를 낼 수 있습니다.
그러므로 이름을 Team으로 바꿔줍니다.
객체의 포인터로부터 10만큼 떨어진 곳에 Team의 값들이 존재하고 1이면 플레이어 2면 컴퓨터인 것을 알 수 있습니다.
이제 코드인젝션을 하기 위해
Show disassembler 눌러주시고
Tools -> Auto assemble이나 Ctrl + A 눌러주시고
Template -> Code injection을 눌러줍니다. 기억 안나실 까봐 다시 짧게 설명하였습니다.
코드 인젝션을 할껀데 cmp라는 어셈블리어를 사용할 겁니다, 비교하는 어셈블리어입니다.(compare)
Cmp 비교한다 -> ebx + 10의 주소를 참조하는 값이 1이면
je pass -> pass가 있는 곳으로 점프해라
->Ebx + 10의 주소를 참조하는 값이 1이 아니면 je하지 마라
Ebx + 10의 주소를 참조하는 값은 1 1 2 2 였던 Team을 구별하는 값이 겠죠.
Execute눌러 주시고 창이 뜨면 Yes눌러주시면 됩니다.
그럼 여기 보는거와 같이 명령어가 추가 돼있습니다. 튜토리얼로 가서 Attack을 해보면 P1, P2는 체력이 깎이지 않고 P3, P4는 체력이 깎이는 걸 확인 할 수 있습니다.
여기서 Restart game and autoplay를 누르게 되면 컴퓨터플레이어들은 DEAD하게 되고 Next 버튼이 활성화됩니다.
'IT 독학 > Cheat Engine' 카테고리의 다른 글
Cheat Engine Tutorial - (10) (0) | 2018.08.10 |
---|---|
Cheat Engine Tutorial - (8) (0) | 2018.08.10 |
Cheat Engine Tutorial - (7) (0) | 2018.08.10 |
Cheat Engine Tutorial - (6) (0) | 2018.08.10 |
Cheat Engine Tutorial - (5) (0) | 2018.08.10 |