NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 치트엔진 1부 - 메모리플 또는 메모리 매크로 프로그램 만들기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로는 기본적으로 이미지 방식의 매크로 프로그램입니다. 하지만, 다른 매크로 프로그램들이 제공하지 않는 메모리플 매크로 기능도 제공하고 있는데요. 메모리플을 만들 때 유용하게 사용할 수 있는 기능입니다. 엔지엠 매크로는 메모리의 값을 읽거나 쓸 수 있습니다. 하지만, 메모리를 찾는건 다른 프로그램을 이용해야 합니다. 대표적으로 치엔이라고 부르는 치트 엔진(Cheat Engine)을 사용합니다.

     

    치트엔진을 컴퓨터에 설치하고, 실행 해보세요. 아래와 같이 프로그램이 실행됩니다.

    1n4H0Cz.png

     

     

    테스트에 사용할 프로그램이 필요한데요. 친절하게도 초보자용 튜토리얼을 만들어 두었습니다. Help 메뉴의 Cheat Engine Tutorial을 클릭하세요.

    NwmUN7g.png

     

     

    아래와 같은 연습용 프로그램이 실행됩니다.

    h3a4tWl.png

     

     

    구글 번역기로 번역해보면 아래와 같은 내용이 나옵니다. 테스트를 어떻게 해야 하는지 설명하고 있습니다.

    치트 엔진 튜토리얼(v3.6)에 오신 것을 환영합니다.
    
    이 튜토리얼에서는 비디오 게임에서의 부정행위의 기본 사항을 알려드립니다. 또한 치트 엔진(또는 줄여서 CE) 사용의 기본 측면을 보여줍니다. 시작하려면 아래 단계를 따르세요.
    
    1: 현재 실행되고 있지 않은 경우 치트 엔진을 엽니다.
    2: "프로세스 열기" 아이콘을 클릭합니다(컴퓨터가 있는 왼쪽 상단 아이콘, "파일" 아래).
    3: 이제 프로세스 목록 창이 열리면 목록에서 이 튜토리얼의 프로세스를 찾으세요. "00001F98-Tutorial-x86_64.exe" 또는 "0000047C-Tutorial-i386.exe"와 같은 형태입니다. (처음 8자리 숫자/문자는 다를 수 있습니다.)
    4: 프로세스를 찾았으면 해당 프로세스를 클릭하여 선택한 다음 "열기" 버튼을 클릭하세요. (지금은 다른 모든 버튼에 대해 걱정하지 마세요. 관심이 있다면 나중에 배울 수 있습니다.)
    
    축하해요! 모든 작업을 올바르게 수행했다면 이제 튜토리얼에 연결된 치트 엔진과 함께 프로세스 창이 사라져야 합니다(CE의 상단 중앙에 프로세스 이름이 표시됩니다).
    
    계속하려면 아래 "다음" 버튼을 클릭하고, 해당 단계로 진행하려면 비밀번호를 입력한 후 "확인" 버튼을 클릭하세요.)
    
    문제가 있는 경우 forum.cheatengine.org로 이동한 다음 "튜토리얼"을 클릭하여 초보자에게 친숙한 가이드를 확인하세요!

     

    위의 1~4번까지 내용을 학습하면 됩니다. 우선, 치트 엔진으로 돌아와서 프로세스 열기(컴퓨터 모양 아이콘) 버튼을 클릭 해보세요. 그러면 Process List 창이 표시되고, 현재 실행중인 모든 프로그램 목록을 확인할 수 있습니다. 3번 설명처럼 튜토리얼 프로그램을 선택한 후 열기(Open) 버튼을 클릭하세요.

    dhZIAnJ.png

     

     

    프로세스에 연결되면 아래 그림과 같이 상단에 연결된 프로세스 이름이 표시됩니다.

    zoFbKn0.png

     

     

    튜토리얼에서 Next 버튼을 눌러서 다음 단계로 진행하세요. 아래는 다음 단계에서 해야할 일을 알려주고 있습니다.

    OMFwwPI.png

    2단계: 정확한 값 스캐닝(PW=090453)
    이제 치트 엔진으로 튜토리얼을 열었으므로 다음 단계로 넘어가겠습니다.
    
    이 창 하단에 Health: xxx라는 텍스트가 있는 것을 볼 수 있습니다.
    'Hit me'를 클릭할 때마다 체력이 감소합니다.
    
    다음 단계로 이동하려면 이 값을 찾아 1000으로 변경해야 합니다.
    
    값을 찾는 방법에는 여러 가지가 있지만 가장 쉬운 '정확한 값'에 대해 알려 드리겠습니다.
    먼저 값 유형이 2바이트 또는 4바이트 이상으로 설정되어 있는지 확인하세요. 1바이트도 작동하지만 주소를 찾아서 변경하려고 하면 쉽게 해결할 수 있는 문제에 직면하게 됩니다. 주소 뒤의 바이트가 0이면 8바이트가 작동할 수도 있지만 저는 그렇게 생각하지 않습니다.
    단일, 이중 및 기타 스캔은 값을 다른 방식으로 저장하기 때문에 작동하지 않습니다.
    
    값 유형이 올바르게 설정되면 스캔 유형이 '정확한 값'으로 설정되어 있는지 확인하십시오.
    그런 다음 값 상자에 건강 상태의 숫자를 입력하세요. 그리고 '첫 번째 스캔'을 클릭하세요.
    잠시 후(PC 속도가 매우 느린 경우) 스캔이 완료되고 결과가 왼쪽 목록에 표시됩니다.
    
    2개 이상의 주소를 찾았는데 어느 주소인지 확실하지 않은 경우 'Hit me'를 클릭하고 값 상자에 새 건강 값을 입력한 후 'Next Scan'을 클릭하세요.
    찾았다는 확신이 들 때까지 이것을 반복하세요. (목록에 주소가 1개만 있다는 것도 포함됩니다.....)
    
    이제 왼쪽 목록에서 주소를 두 번 클릭하십시오. 그러면 하단 목록에 주소 팝업이 나타나 현재 값을 보여줍니다.
    값을 두 번 클릭하고(또는 값을 선택하고 Enter 키를 누름) 값을 1000으로 변경합니다.
    
    모든 것이 제대로 진행되면 다음 버튼이 활성화되고 다음 단계를 진행할 준비가 된 것입니다.
    
    
    메모:
    스캔하는 동안 잘못된 것이 있으면 "새 스캔"을 클릭하고 스캔을 다시 반복하십시오.
    또한 값을 가지고 놀면서 'Hit me'를 클릭해 보세요.

     

     

    Health 값을 1000으로 변경해야 다음 단계로 넘어갈 수 있다고 알려줍니다. 우선, Health 값 100을 찾아야 합니다. ①Value100을 입력하고, ②First Scan 또는 New Scan을 클릭 해보세요. ③100이라는 텍스트가 55개 찾아졌습니다. 너무 많네요. 어떤 메모리에 100이라는 값이 들어있는지 판단하기가 쉽지 않습니다.

    i00efSD.png

     

     

    튜토리얼 창에서 Hit me를 클릭하세요. Health 값이 줄어듭니다. 96이 되었네요.

    MNJv0BW.png

     

     

    변경된 값을 입력하고, ②Next Scan을 눌러보세요. 참고로, 처음부터 탐색하려면 New Scan을 누르고, 연결된 메모리의 값이 바뀌는걸 실시간으로 추적하려면 Next Scan을 눌러야 합니다. 아래 그림과 같이 좌측에 메모리 주소값이 하나만 검색되었습니다.

    XFchE5p.png

     

     

    치트엔진 창을 크게 키우면 세부 속성을 확인할 수 있습니다. 처음 값이 100이었고, 현재 값은 96이라고 알려줍니다.

    nXhzVO4.png

     

     

    메모리 주소를 알았으니 엔지엠 매크로에서 해당 값을 가져와볼께요. 엔지엠 매크로 에디터를 실행하고, 새로운 스크립트를 추가하세요.

    cnOuw3h.gif

     

     

    [ 메모리 읽기 ] 액션을 스크립트에 추가한 후 아래와 같이 속성을 설정하세요.

    • 컨트롤 찾기: 클릭해서 튜토리얼 창을 선택하세요.
    • 자료형 선택: Health 값이 숫자라서 아마도 Int32일겁니다. 문자라면 String을 선택하면 됩니다.
    • 메모리 주소: 치엔에서 찾은 메모리 주소를 입력하세요.
    • 버퍼 사이즈: 4를 입력하세요. 치엔에서 해당 값이 4bytes입니다.

    XOA1WKF.png

     

     

    매크로를 실행하면 결과 값으로 96이 찍힙니다. 정상적으로 메모리 값을 읽어 왔습니다. 이번에는 값을 변경 해볼까요? [ 메모리 쓰기 ] 액션을 추가하고 속성을 아래와 같이 바꿔보세요. 데이터를 1000을 입력하세요. 참고로, 메모리 쓰기는 게임이나 보안에 민감한(?) 프로그램에는 사용하면 안됩니다. 메모리 위변조를 감지할 수 있는 프로그램의 경우 계정이 정지되거나 불이익을 받을 수 있기 때문입니다.

    WC9ELFp.png

     

     

    매크로를 실행하면 실시간으로 튜토리얼에 Next 버튼이 활성화되는걸 확인할 수 있습니다. 하지만, GUI에서는 여전히 96으로 보여집니다. GUI가 갱신되지 않는 이유는 간단합니다. 게임과 같이 그래픽을 자체적으로 처리하는 경우에는 값도 같이 갱신되었을겁니다. 하지만, 어떤 동작도 없는 정적인 윈도우 프로그램은 이벤트가 발생하기 전까지는 GUI를 갱신하지 않습니다. 프로그램 내부의 값은 1000이라서 버튼은 활성화가 되었습니다.

    8RKPiVN.png

     

     

    엔지엠 매크로 에디터에서 메모리 읽기만 다시 실행 해보세요. 실제 메모리 값은 1000입니다.

    SMrja0Z.png

     

     

    튜토리얼 프로그램에서 Hit me를 한번 클릭 해보세요. 1000에서 값이 줄어듭니다.

    iJIHLfm.png

     

     

    다음에는 Step 3부터 같이 학습 해보도록 하겠습니다^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.