728x90
728x90

 


 

https://andrew.hedges.name/experiments/aspect_ratio/

 

Aspect Ratio Calculator (ARC)

Use the form below to calculate the missing value for a particular aspect ratio. This is useful, for example, when resizing photos or video. Instructions Enter the values for the original width (W1) & original height (H1) on the left. Enter either a new wi

andrew.hedges.name

 

아래와 같이 이미지 원본의 너비를 W1에, 높이를 H1에 적고

변환하려는 너비나 높이를 오른쪽 W2, H2 둘 중에 하나를 적어주면

나머지 하나는 자동으로 값이 변환되어서 나옵니다!

 

 


 

728x90
728x90
728x90
728x90





음악을 듣고 있다가 종료 후에 다시 키면 그 당시 듣고 있던 재생 위치에서 재실행 되나요?


처음 부터 다시 듣게 할 수 있었으면 좋겠다구요?


그럴 땐 이렇게 하면 됩니다




곰오디오 메인창 왼쪽 상단에 위치한 톱니바퀴(환경설정)를 클릭하세요!

또는 곰오디오 창을 띄운 채로 단축키(F5)를 눌러도 무방합니다!


환경설정창이 뜨면 기본그룹에서 재생메뉴를 클릭하고 첫번째탭(재생)-일반에서


'종료시 재생중이던 파일 위치 기억하기' 체크를 해제합니다


닫기 클릭하고 즐기기 ^^


끄읕!




728x90
728x90
728x90
728x90




6단계 : 포인터 (Pointer)


 포인터(Pointer)란 무엇인가요?

포인터 위키백과로 더 알아보기

포인터 나무위키로 더 알아보기

c언어에서의 포인터

- 메모리에는 바이트 단위로 그 위치를 식별할 수 있는 물리적인 주소값이 있다. 주소값은 0번지부터 차례로 부여된다. 만약 메모리의 용량이 64키로바이트라면 주소값은 0번지부터 65535번지까지 존재할 것이다. (1kbyte = 1024byte ∴ 64kbyte = 65536byte) 변수를 선언하면 그 자료형의 크기만큼 메모리에 연속된 바이트의 기억공간이 할당되고 자동으로 주소값을 가지게 된다. 예를 들어, Int 형 변수를 선언하면 메모리에 4바이트가 할당되고, 그 시작 주소값이 100번지라면 100번지부터 103번지까지의 주소값을 갖게 될 것이다. 이 때 시작 주소값 100번지를 포인터라고 한다. 프로그램에서 변수명은 알 수 있지만 그 변수가 실제 메모리의 몇 번지에 할당되는지 알 수 없다. 따라서 포인터를 사용하기 위해서는 먼저 그 주소값을 알아 내는 과정이 필요하다. 이 포인터에는 아주 특별한 정보가 숨겨져 있는데 바로 자신이 어떤 자료형으로부터 만들어졌는지에 대한 정보를 가지고 있다는 것이다. 포인터가 특정 자료형에 대한 정보를 가지고 있다는 것을 나타낼 때 간단히 "가리킨다"는 표현을 사용한다. 즉, 포인터의 값 자체는 메모리에서 1바이트의 주소값이지만 연속된 바이트를 대표하는 의미를 가지는 것이다. (-뇌를 자극하는 C 프로그래밍/한빛미디어)





이전 단계에서 코드 찾기를 사용하여 변화하는 위치를 처리하는 방법을 설명했습니다. 그러나 그 방법만으로 원하는 값을 설정하기 위한 주소를 찾기가 어렵습니다.


그래서 포인터가 있는 이유입니다.


Step 6 튜토리얼 창 맨 아래에 두 개의 단추가 있을 겁니다. 하나는 Value(값)를 변경하고 다른 하나는 Value(값)와 Pointer(포인터, 값의 위치) 둘 모두를 변경합니다.




이 단계에서 당신은 어셈블러를 알 필요는 없지만, 알고있다면 많은 도움이 될 것입니다.


먼저 값의 주소를 찾으십시오. 발견했다면 해당 주소를 더블클릭하여 주소리스트에 추가 시키고 또 다시 해당 주소를 마우스 오른쪽 클릭하여 Find out what accesses this address(이 주소에 접근하는 것이 무엇인지를 알아내라) 기능을 눌러 사용하십시오. 주소를 클릭한다음 단축키를 사용해도 좋습니다.




Change value(값을 변경) 버튼을 클릭하면 방금 열은 창 목록에 항목이 나타납니다. 일단 4개중 첫번째 해당하는 항목을 더블클릭하십시오. 또는 항목을 한 번 누르고 More information(추가 정보)를 클릭해도 됩니다.


(4개의 명령어가 떴습니다. 이는 값에 변화를 주었을 때 관여하는 명령어들이란 얘기입니다. 대충 어떤 명령인지 해석해보면 대괄호는 포인터라는 뜻이고 mov eax, [rax]는 [rax]가 가르키는 곳의 값을 eax에 저장해라 라는 뜻입니다.)



그렇다면 새 창 즉 Extra info 창이 열리고 명령이 실행될 때 어떤 일이 발생했는지에 대한 자세한 정보가 함께 표시됩니다.


(1번 문구에 "아마도 포인터 주소가 00000184 일 것이다" 라고 말하고 있습니다. 이 주소를 기억하거나 대괄호 즉 빨간색으로 칠해진 '[ ]' 사이의 문구와 상응하는 Hex 주소값을 아래에서 찾을 수 있고 창을 띄운 채로 적어도 됩니다. 이 주소는 저마다 다르니 자신이 찾은 주소를 알아 두셔야 합니다.)



어셈블러 명령어에서 '['  ']' 사이에 아무것도 없는 경우에는 목록에 있는 다른 항목을 사용하십시오. 만약 그렇게 한다면, 자기가 생각하는 당신이 필요한 포인터의 값을 보여줄 겁니다. (그러니까 대괄호 안이 비어있으면 다른 항목을 이용해라 이 말입니다.)


주 치트엔진 창으로 돌아간 다음 기억해둔 Hex(16진수, Hexadecimal) 주소값을 입력하고 4바이트로 스캔하십시오.


스캔이 완료되면 1개 또는 수 백 개의 주소를 반환할 수도 있습니다. 당신이 필요한 대부분의 시간은 가장 작은 주소가 될 것입니다.


이제 (수동으로 주소 추가)를 클릭하고 (포인터 확인란)를 체크하십시오.




창이 바뀌면 그곳에

'오프셋offset[각주:1]()' 

'포인터 주소()' 를

입력할 수 있습니다.


방금 스캔하여 찾아진 주소를 포인터 주소 입력란에 입력하여 OK(확인)버튼을 누르면 하단 주소목록에 추가됩니다. 모든 것이 정상적으로 행해졌다면 추가된 목록의 주소가 P->xxxxx로 표시되고, xxxxx는 검색한 값의 주소가 된다. 만약 그게 틀렸다면, 당신이 뭔가 잘못했다는 겁니다.


그게 아니고 Value 값이 ?? 으로 나온다면 그 포인터는 우리가 원하는 것이 아니니 위에서 찾은 4개의 어셈블리 명령어중 첫번째를 제외한 나머지 3개도 똑같이 작업해 튜토리얼의 현재값과 비교하여 같은 값이 떴다면 성공이라고 할 수 있습니다.


어셈블러 명령어 끝에 계산식(예: [esi+12])이 있는 경우 오프셋 입력란에 값을 입력하십시오. 그게 아니라면 0으로 그냥 두십시오.

만약 그것이 좀 더 복잡한 명령이였다면, 다음의 계산을 살펴보아주십시오.



 [보다 복잡한 명령의 예]

[EAX*2+EDX+00000310] eax=4C 및 edx=00801234


이 경우 EDX는 포인터일 것이고,

EAX*2+00000310이므로, 입력할 오프셋은 4C*2+00000310='3A8'이 된다(모두 Hex이다).


Hex(16진수) 계산을 위해 윈도우 계산기에서 프로그래머용으로 바꾼 뒤 Hex로 계산해주면 편하다.





 여기까지 잘 따라왔다면 포인터를 이용하여

에서

으로

값을 변경하고


Freeze(여기서는 Active에 체크)

하십시오.


그런 다음 튜토리얼 Step 6 창에서 Change pointer(포인터 변경)를 클릭하고 모든 작업이 완료됐다면 Next(다음)이라는 버튼이 활성화될 겁니다.


추가:


그리고 당신은 또한 포인터 스캐너 기능을 사용하여 이 주소에 대한 포인터를 찾을 수 있다는 걸 알아두시라!





  1. 오프셋이란, 두 번째 주소를 만들기 위해 기준이 되는 주소에 더해진 값을 의미한다. 예를 들어, 만약 아래의 수식에서 C가 100번지의 주소를 가리키고 있다면, 그 수식의 결과는 107번지를 의미할 것이다. < C + 7 > 여기서 이 수식 내의 "7"이, 바로 오프셋이다. 오프셋을 이용하여 주소를 나타내는 것을 상대주소 지정방식이라고 부르는데, 그 이유는 결과 주소가 다른 지점의 상대적인 위치가 되기 때문이다. 오프셋을 다른 말로 "변위"라고도 부른다. (출처-http://www.terms.co.kr) [본문으로]
728x90
728x90
728x90
728x90




5단계: 코드 파인더 (Code finder)


게임을 다시 시작할 때 또는 게임을 하는 동안 값이 저장된 위치가 변경되는 경우에 다음 2가지를 사용하여 여전히 게임에서 효과가 있는  치트테이블(Cheat Table - CT파일)을 만들 수 있습니다.



 

- 치트엔진을 통해 만든 치트테이블(Cheat Table - CT파일)파일 -



이 단계에서는 첫번째로 코드 파인더 기능을 사용하는 방법을 먼저 설명하겠습니다.

여기에 있는 값은 튜토리얼을 시작할 때마다 다른 위치에 있으므로 주소 목록의 일반적인 항목이 작동하지 않을 겁니다.


먼저 주소를 찾으십시오. (하나의 값이 나올 때까지 찾으십시오.)


주소를 찾았으면 Cheat Engine에서 주소를 마우스 오른쪽 버튼으로 누르고 "Find out what writes to this address(이 주소에 쓸 항목 찾기)"를 선택하십시오. 또는 주소를 마우스 왼쪽 클릭하고 Ctrl + F6을 누르십시오. 그러면 빈 목록의 창이 뜰 것입니다.



("이것은 치트 엔진의 디버거를 현재 프로세스에 연결합니다. 계속 하시겠습니까?", "YES")






그런 다음 이 튜토리얼에서 Change value 버튼을 클릭하고 Cheat Engine으로 돌아가십시오. 모든 것이 제대로 되었다면 assembler code(어셈블러 코드)가 있는 주소가 생성돼 있어야 합니다.





해당 코드를 누르고 아무 동작도 없는 코드로 바꾸려면 대체 옵션을 선택하십시오. 그것은 또한 고급 옵션 창의 코드 목록에 코드 주소를 추가할 것이다. (테이블을 저장하면 어느 것이 저장되는지)

중지 버튼을 클릭하여 게임이 다시 정상적으로 실행되고 창을 닫으십시오.


이제 Change value(값 변경)를 클릭하십시오. 모든 것이 제대로 된 경우 Next(다음) 버튼을 사용하십시오.

참고: 주소를 충분히 빠른 속도로 동결할 경우 다음에 어떤 식으로든 볼 수 있게 될 수 있음





728x90
728x90
728x90
728x90




4단계: 부동 소수점(Floating points)


이전 튜토리얼에서는 바이트(2byte, 4byte 등등)를 사용하여 스캔했지만, 일부 게임은 정보를 소위 '부동 소수점' 표기법으로 저장하기도 합니다. (단순한 메모리 스캐너가 쉽게 찾을 수 없도록)


부동 소수점은 점 뒤에 숫자가 있는 값입니다. (5.12 또는 11321.1과 같이)

부동소수점 나무위키 더 알아보기

아래에 당신의 체력(Health)과 탄약(Ammo)이 있습니다.

둘 다 부동 소수점 표시로 저장되지만, 체력(Health) Float로 저장되고 탄약은 Double로 저장됩니다.


체력(Health)을 잃으려면 'Hit me(날 때리시오)' 버튼을 클릭하고,

0.5씩 탄약을 줄이기 위해서는 'Fire(발사)' 버튼을 누르십시오.




다음 단계로 진행하려면 두 값을 모두 5000 이상으로 설정해야 합니다.


Exact Value(정확한 값) 스캔은 여기서 잘 작동하지만, 다른 유형으로도 실험해 볼 수 있습니다.





728x90
728x90
728x90
728x90




3단계: 알 수 없는 초기 값(Unknown initial value)


좋습니다, 당신이 정확한 값을 사용하여 값을 찾는 방법을 알아낸 것 같군요.


그럼 다음 단계로 넘어가보죠.



우선 첫째로  New Scan(새 스캔)을 해야하기 때문에 스캔을 시작하려면 먼저 New Scan(새 스캔)을 클릭해야 합니다. (당신은 이 단계가 이해하기 쉬울 거라고 생각할 수도 있지만, 얼마나 많은 사람이 그 단계에서 해메고 있는지 놀랄 것이다) 이 단계를 다시 설명하지 않을 테니 명심하십시오. 이제  New Scan(새 스캔)을 시작했으니 계속해 봅시다.


이전 테스트에서는 초기 값을 이미 알고 있었으므로 스캔 유형으로 정확한 값을 선택해서 스캔할 수 있었겠지만, 지금은 시작 값을 모르는 상태입니다.


우리는 그 값이 0에서 500 사이라는 것만 압니다. 그리고 'Hit me(날 때리시오)'를 클릭할 때마다 당신은 Health를 잃습니다. 매번 'Hit me' 버튼을 누를 때마다 손실되는 양은 상태 표시줄(초록색) 위에 표시됩니다.



 

-알 수 없는 초기값의 총량이 다 소진 되었을 때 나오는 창-

: "다시 해야될 것 같아 보이네요! 초기값을 교체해 드리죠! (그리고 재스캔 하시구요!)"




다시 한번 그 값을 찾는 몇 가지 다른 방법이 있습니다. (decreased value by ... : ~까지 감소한 값) 하지만 가장 쉬운 부분만 설명하겠습니다.


바로 "Unknown initial value(알 수 없는 초기 값)"  "Decreased Value(감소된 값)"


현재 값이 무엇인지 모르기 때문에 정확한 값은 아무런 도움이 되지 않으므로 'Unknown initial value(알 수 없는 초기 값)'으로 맞추고, 값 유형은 4바이트로 해줍니다(대부분의 Windows 앱은 4바이트를 사용). 'First Scan'을 클릭하고 스캔이 완료될 때까지 기다리십시오.


완료되면 'Hit me(날 때리시오)' 버튼을 클릭하십시오. 당신은 'Health'를 잃을 것입니다. (몇 초 동안 감소량이 뜨고 사라지지만 별 상관없습니다. 즉 사라질 때까지 기다릴 필요가 없습니다.)


이제 Cheat Engine으로 이동하여 'Decreased Value(감소된 값)'를 선택하고 'Next Scan'을 클릭하십시오


스캔이 완료되면 다시 'Hit me(날 때리시오)' 버튼을 누르고 왼쪽 목록에 몇 개만 찾을 때까지 위의 내용을 반복하십시오. 


우리는 값이 0에서 500 사이라는 것을 알고 있으니, 우리가 필요로 하는 주소에 가장 적합한 것을 골라 목록에 추가하십시오.


이제 'Health' 값을 5000으로 바꿔서 다음 단계로 진행하십시오.





728x90
728x90
728x90
728x90




2 단계 : 정확한 값(Exact Value) 검색


이제 치트 엔진 튜토리얼의 다음 단계로 넘어갔다면 Step 2 창 하단에 Health : xxx 라는 텍스트가 있을겁니다.


이 때 'Hit me'를 클릭 할 때마다 Health 감소합니다.




다음 단계로 넘어가려면 이 값(Health)을 찾아 1000으로 변경해야합니다.


값(value)을 찾으려면 여러 가지 방법이 있지만 가장 쉬운 '정확한 값(Exact Value)'에 대해 알려 드리겠습니다.


먼저 값 유형을 적어도 2Byte(2바이트) 또는 4Byte(4바이트)로 설정하십시오. 1Byte(1바이트)도 물론 작동하겠지만, 당신이 주소를 찾아서 바꾸려는 문제를 쉽게 해결할 수 있을 겁니다. 8Byte(8바이트)는 주소 뒤의 바이트가 0이라면 아마 작동하겠지만 저라면 내기는 하지 않을 겁니다.




Single, Double 및 다른 유형의 값 스캔을 할 시에 값을 다른 방식으로 저장하기 때문에 제대로 작동하지 않습니다.


값 유형이 올바르게 설정되면 'Scan Type(스캔 유형)'이 'Exact Value(정확한 값)'으로 설정되었는지 확인하십시오.




그런 다음, 값 검색창에 해당하는 값(Health)을 기입하십시오. 그리고 'First Scan'을 클릭하십시오.


잠시 후 스캔이 완료되고 결과가 왼쪽의 목록에 표시됩니다.


주소가 두 개 이상이고 주소가 확실하지 않은 경우 다시금 'Hit me'을 클릭하고 값 검색창에 새로운 값을 입력 한 다음 'Next Scan(다음 검사)'를 클릭하십시오.


당신이 그것을 확실히(이게 내가 찾던 값이구나! 알 때까지) 발견 할 때까지 이것을 반복하십시오.


이제 왼쪽 목록에서 주소를 두 번 클릭하십시오. 이렇게하면 하단의 목록에 주소 팝업이 나타나 현재 값을 보여줍니다.




하단의 목록에서 해당 주소의 Value(값)을 두 번 클릭 (또는 선택하고 Enter 키를 누름) 한 다음 값을 1000으로 변경합니다.


모든 것이 정상적으로 진행되면 다음 버튼이 활성화되고 다음 단계로 넘어갈 준비가 되었습니다.



주석

스캔하는 동안 잘못 수행 한 경우 "새 스캔(New Scan)"을 클릭하고 스캔을 다시 반복하십시오. 또한 값을 가지고 놀고 'hit me'를 클릭하십시오.





728x90
728x90
728x90
728x90




치트 엔진 튜토리얼 (v3.3)에 오신 것을 환영합니다.


이 튜토리얼은 비디오 게임에서 치트의 기초를 가르쳐 줄 것이며, 당신에게 치트 엔진을 사용하는 기본적인 방향을 보여줄 겁니다.


시작하려면 아래 단계를 따르십시오.


1. 현재 치트엔진을 실행하지 않는 경우라면 치트 엔진 프로그램을 열어 주십시오.


2. "프로세스 열기()" 아콘을 클릭()하십시오.

(치트엔진 화면 왼쪽 상단의 "파일(File)"아래 아이콘)


3. 프로세스 목록 창이 열리면 목록에서 이 튜토리얼의 프로세스를 찾습니다.


 "00001F98-Tutorial-x86_64.exe"

또는

"0000047C-Tutorial-i386.exe"

와 같은 형식입니다.


(처음 8 자리 숫자 / 문자는 다를 수 있습니다.)


4. 프로세스를 찾으면 프로세스를 클릭하여 선택한 다음 "열기()" 버튼을 클릭하십시오.


(다른 모든 버튼에 대해 지금 당장 걱정하지 마세요. 나중에 관심이 있다면 배울 수 있습니다.)


축하합니다! 모든 것을 올바르게 했다면 치트 엔진이 튜토리얼에 첨부되어 프로세스 창이 사라져야합니다.

(CE의 맨 위 중심으로 프로세스 이름이 표시됨)



아래의 "다음(Next)"버튼을 클릭하여 계속하거나 비밀번호를 입력하고 "확인(OK)"버튼을 클릭하여 해당 단계로 진행하십시오.



문제가있는 경우 forum.cheatengine.org로 이동 한 다음 "튜토리얼(Tutorials)"를 클릭하여 초보자를위한 가이드를보십시오!





728x90
728x90
728x90
728x90






728x90
728x90
728x90
728x90



이 글은 2018년 1월 12일을 기준으로 작성되었습니다


간단하다


유튜브 메인 화면으로 들어가준다

https://www.youtube.com


왼쪽 라이브러리 메뉴에서 최근 본 동영상으로 들어가준다

https://www.youtube.com/feed/history


기록 유형 중 댓글에 체크만 하면 왼쪽에 지금까지 남겼던 댓글을 볼 수 있을 것이다

https://www.youtube.com/feed/history/comment_history


이 글은 2018년 1월 12일을 기준으로 작성되었습니다



728x90
728x90

+ Recent posts