글을 읽기 전에 알고 있으면 좋은 지식
- C언어 지식 (자료형 까지)
3단계: 알 수 없는 초기 값(PW=419482)
좋아요, Exact Value를 사용하여 값을 찾는 방법을 알아냈으니 다음 단계로 넘어갑시다.
하지만 첫번째 해야할 일이 있습니다. 새롭게 검색을 시작하려면 먼저 New Scan을 클릭해야 합니다. (이것이 간단하다고 생각할 수도 있지만, 놀랍게도 이 단계에서 많은 사람들이 애를 먹습니다.) 이 과정에 대해 다시 설명하지 않을 것이므로 주의해주세요.
New Scan을 시작했으므로 계속 진행합니다.
이전 테스트에서는 초기 값을 알고 Exact Value 검색을 수행할 수 있었지만, 이제 시작 값을 알 수 없는 상태 표시줄(Status Bar)이 있습니다.
우리는 값이 0과 500 사이인 것만 알고 있습니다. 그리고 'Hit me'를 클릭할 때마다 체력이 떨어집니다. 매번 손실되는 체력은 상태 표시줄 위에 표시됩니다.
값을 찾는 몇 가지 다른 방법이 있습니다. (값을 줄이는 것과 같이... 스캔), 하지만 가장 쉬운 것만 설명하겠습니다. "Unknown initial value" 및 Decreased value.
현재 값을 모르기 때문에 정확한 값은 아무런 도움이 되지 않으므로 검색 유형인 'Unknown initial value'을 선택하십시오. 다시 말하지만 값 유형은 4바이트입니다. (대부분의 Windows 앱은 4바이트를 사용합니다.) 첫 번째 검색을 클릭하고 검색이 완료될 때까지 기다립니다.
완료되면 'Hit me'를 클릭합니다. 당신은 당신은 체력을 조금 잃을 것입니다. (잃어버린 양은 몇 초 동안 표시되었다가 사라지지만, 당신은 그것을 필요하지 않습니다.)
이제 치트 엔진으로 이동하여 'Decreased Value'를 선택하고 'Next Scan'을 클릭합니다
검색이 완료되면 'Hit me'를 다시 클릭하고 몇 개만 찾을 때까지 위의 내용을 반복합니다.
값이 0에서 500 사이인 것으로 알고 있으므로 필요한 주소를 선택하여 목록에 추가합니다.
이제 상태를 5000으로 변경하여 다음 단계로 진행합니다.
문제를 읽어 보시면 알겠지만 이번에도 체력값(Health) 을 찾아서 5000으로 바꾸는 문제입니다.
다만 저번과는 다르게 체력값이 수치상으로 표시되지 않고 눈에보이는 초록색 바가 체력을 보여주고 있습니다.
체력값이 0~500 사이에 있다는 힌트만을 가지고 저 초록색 바에 반영되는 체력값을 찾아내는게 목표입니다.
일단은 시작 전에! 앞의 튜토리얼 1번을 푸시고 바로 2번으로 넘어오신 분들은 값을 이미 검색한 상태일 탠데, 지금은 새로운 값을 찾아야 하므로 New Scan(새로운 스캔)을 눌러서 새롭게 스캔을 시작해야 합니다. 저 버튼을 누르고 다시 값을 검색해야지, 이미 찾아놨던 값들에서 다시 Next Scan으로 검색하시면 안됩니다!
새롭게 값을 찾기 위해 스캔할려면 무조건 New Scan 눌러주세요!
일단 이 문제를 2가지 방법으로 풀어보겠습니다.
당연하지만 앞에 1편,2편에서 하던대로 치트엔진으로 튜토리얼 프로세스를 연 상태서 시작합니다.
Solution 1
현재 알다싶이 튜토리얼 1번과 다르게 우리는 이 막대바 값을 정확히 알 지 못합니다.
보통 치트엔진으로 값 검색시 그 값을 정확히 알 지 못할때 사용하는 모드가 있는데 바로 Unknown inital value(모르는 초기값) 입니다.
일단은 값 유형은 4바이트라고 알려줬기 때문에 (대부분 윈도우 앱은 정수에 4바이트를 사용한다고 합니다)
이걸 토대로 검색해보겠습니다.
Scan Type은 Unknown 으로, Value Type 은 4 Bytes 로 설정합니다.
이렇게 검색을 하면 4바이트의 크기를 가지는 모든 메모리 주소를 스캔해 값을 파악하게 됩니다.
First Scan을 눌러서 처음 스캔을 시작해줍시다.
4바이트로 시작하는 값들을 모두 스캔해보니 무려 100만개 이상의 값이 나왔습니다.
값이 너무 많이 나와서 치트엔진엔 모두 표시되지 않고 있습니다.
이 중에서 체력값을 찾아내야 합니다.
저번처럼 값의 변화를 이용해보겠습니다.
Hit me를 누르자 감소된 Hp값이 화면에 잠깐 표시됐다가 사라집니다.
지금 찾아놓은 메모리 주소에 해당하는 값들 중에서 정확히 7만큼 감소한 값을 찾거나, 단순히 그냥 감소된 값들만을 찾을 수 있습니다. Solution 1에선 단순히 감소된 값을 사용해서 찾아보겠습니다.
Scan Type에서 Decreased value를 이용하면 찾아놓은 메모리 값 100만개 중에서 기존 값보다 감소된 값만을 찾을 수 있습니다.
갯수가 극적으로 줄어들었습니다. 클릭에 맞춰서 줄어든 값이 2300개 밖에 없네요.
클릭에 맞춰서 감소된 값만을 찾고 끝내 나오는 값이 아마 체력 값일 겁니다.
다시 Hit me를 눌러줍니다. 9만큼 감소했네요.
다시 Decreased value로 맞추고 검색해줍니다. 209개까지 줄어들었는데 아직은 더 줄여야 합니다.
당연하지만 1개가 나올때까지 하는게 좋습니다. 1개만 남으면 그게 우리가 찾는값이기 때문이죠.
위 과정을 반복합니다. Hit me -> Decreased Value로 검색
반복을 계속 했으나 값을 4개 이하로 줄일 순 없었습니다.
체력바를 누르면 저기 메모리 주소에 해당하는 값 모두가 감소합니다.
저기서 체력에 해당하는 값은 어떤 값일까요?
체력값이 0~500이라는 힌트를 주었으므로 맨 첫번째 017400E0 이라는 값이 체력값에 해당할 것입니다. 더블 클릭해서 아래 Table에 추가해줍시다.
다시 아래 Table에서 더블클릭해서 문제 요구사항대로 값을 5000으로 바꿉니다.
Next가 활성화 되었고 문제를 해결하였습니다!!
Solution 2
아까 Solution 1과 거의 동일하지만 아까 값을 찾을때 단순히 메모리에서 감소된 값만을 찾았지만 (Decreased Value), 메모리에서 N만큼 감소된 값만을 찾을 수도 있습니다.
일단은 Solution 1로 풀이를 다 해보셨다는 가정하에 두번째 풀이입니다.
예를 들어서 체력이 500 -> 480 으로 떨어졌을때 20만큼 감소했다는걸 알고 있을땐 Decreaed Value로 검색하는거보다 Decread Value By 20 (20만큼 감소함) 으로 검색해서 찾는게 더 정확하고 빠르게 찾을 수 있습니다.
똑같이 Unknown 모드로 맞추고 4 bytes 의 모든 값들을 검색해보도록 합시다.
값이 많이 나왔습니다. 이제 줄여봅시다.
Hit me를 누를때 감소하는 값을 잘 주시해줍니다. 8만큼 감소했다고 하는군요.
지금 찾아놓은 모든 4바이트 값들 중에 8만큼 감소한 값을 찾아줍니다.
Decreaed value by 옵션을 사용하면 특정 값만큼 감소한 값을 찾아낼 수 있습니다.
8만큼 감소했으므로 8을 Value 에 입력해주면 됩니다.
그리고 Next Scan!
100만개의 값들 중에서 정확히 8감소한 값은 13개밖에 없네요! 체력값이 0~500사이라고 했으니 저 264가 바로 체력값일 겁니다. 보통은 이렇게 감소된 값이나 증감값을 알면 쉽고 빠르게 치트엔진 값을 찾아낼 수 있습니다.
그러나 실제로 치트엔진으로 값들을 많이 검색해보면 아시겠지만 값들이 암호화된 경우도 많고 마음대로 변하는 경우도 많아서 Unknown Initial Value와 Decreaed Value(또는 증가했을 경우 Increased Value) 를 사용하게 되는 경우가 훨씬 많습니다.
어쨌던 간에 주소 01A2E780 가 우리가 찾는 값이며, 이것을 5000으로 바꾸면 클리어입니다.
GOOD!!!
출처
https://www.cheatengine.org/forum/viewtopic.php?t=579682&sid=b5518a0228f69088a1bb560e71b33514
"Unknown initial Value is to scan all the numbers."
'보안 강좌 > CheatEngine' 카테고리의 다른 글
[Cheat Engine] 치트엔진 튜토리얼 #5 풀이 (0) | 2023.03.25 |
---|---|
[Cheat Engine] 치트엔진 튜토리얼 #4 풀이 (0) | 2023.03.25 |
[Cheat Engine] DBK Error 해결하기 (0) | 2023.03.24 |
[Cheat Engine] 치트엔진 튜토리얼 #1, #2 풀이 (0) | 2023.03.24 |
[Cheat Engine] 치트엔진 튜토리얼 #0 개요 (0) | 2023.01.05 |