컴파일러 자료실 2020. 4. 15. 09:13

패치내역

Fixes:

Fixed some more high dpi issues

Fixed issues with the dropdown list in memory records

Fixed pointer offset symbols not calculating properly

Fixed registered binutils

Fixed graphical issues with the tablist

Fixed issue where memory blocks would get cut of before the page end

Fixed some memory leaks

Fixed some graphical issues in the addresslist

Fixed rightclick on r8 and r9 in memoryview

Fixed disassembling some instructions

Fixed DBVM so it works on windows 1709 and later (tested on 1803)

Fixed several DBVM offload crashes

Fixed freeze with allow increase/decrease for 8 byte long values

Fixed several issues where minimizing a window and then close it would hang CE

Fixed file scanning

Fixed crashes when editing memory in some some emulators

Additions and changes:

Text editor improvements

Added hundreds of new cpu instructions

Mono now has some new features like instancing of objects

Mono instances window is now a treeview where you can see the fields and values

"find what addresses this code accesses" can also be used on RET instructions now (useful to find callers)

The graphical memory view now has a lot more options to set it just the way you need

Codepage support in hexview

structure data from PDB files can now be used, and are stored in a database for lookup later

dissect structures form can now show a list of known structures (pdb, mono, ...)

Added a "revert to saved scan" option (lets you undo changes)

Added a "forgot scan" option (in case you forgot what you're doing)

Pointerscan limit nodes is default on in a new ce install (remembers your choice when you disable it)

Autoattach now happens using a thread instead of a gui blocking timer

Some colorscheme enhancements

Added a DBVM based "Find what writes/accesses" feature. (For pro users, enable kernelmode options for it to show)

Changed the dissect data setup from seperate yes/no/value dialogs to a single window

Added a bypass option for ultimap2 on windows 1709. When using ranges, do not use interrupts, or use DBVM

Added find what writes/access to the foundlist

Autoassembler scriptblocks are now grouped when written to memory

Added {$try}/{$except} to auto assembler scripts

Added an extra tutorial/practice target

Added cut/copy/paste context menu items to pointer offset fields in add/change address, and added a context menu to the pointer destination

Added an automated structure compare for two groups of addresses to find ways to distinguish between them

lua:

added automatic garbage collection and settings to configure it

added new functions:

gc_setPassive

gc_setActive

reinitializeSelfSymbolhandler

registerStructureAndElementListCallback

showSelectionList

changed the getWindowlist output

MainForm.OnProcessOpened (better use this instead of onOpenProcess)

enumStructureForms

cpuid

getHotkeyHandlerThread

bunch of dbvm_ functions (needs dbvm capable cpu, and intel only atm)

and more, including class methods and fields (read celua.txt)

출처 치트엔진깃허브

'컴파일러 자료실' 카테고리의 다른 글

[VB] 네이버 로그인 소스  (2) 2020.04.11
posted by 핵커 커뮤니티
:
Cheat Engine 2020. 4. 10. 16:00

여기서 부터는 조금 힘들거나 헷갈릴수 있습니다. (약간 머리아픔)

 

하나는 Change value, 또다른 하나는 Change pointer입니다.

Change value는 값만을 바꿔주고 Change pointer는 3초후에 값뿐만 아니라 주소도 바꿔줍니다.

우선 Change value만 사용해 값의 주소를 찾아주세요, 밸류타입은 4byte입니다.

매우쉽게 찾았습니다. 주소는 017977A8 이군요.

치트테이블로 보낸후 오른클릭, Find out what writes to this address를 클릭해줍니다.

튜토리얼의 Change value를 클릭해주세요.

그러면 새창의 목록 새로운 항목이 생깁니다...

저것에 대한 더 자세한정보를 봐야합니다. 더블클릭하거나 한번클릭후 More info를 클릭해주세요

상세정보가 떴습니다. mov [edx],eax라고 써있습니다.

 

eax의 값을 edx가 가리키는 주소로 복사하라는 어셈블리 명령어입니다. 쉽게 말하면 "edx가 가리키는 값 = eax"라는 뜻.

 

Change pointer를 클릭할때마다 eax가 변하기때문에 치트테이블에 등록해둔 값도 변하게됩니다.

 

우선 이 창은 닫지않고 그대로 둘 수 있습니다.

 

만약 닫을거라면 [] 안에 있는 주소를 기억해둡시다. 아래에 네모칸에 써있네요.

 

제경우는 [edx]니까 edx주소인 "017997A8"을 기억해 두겠습니다.

 

※ 어셈블리언어를 더 알고싶은 분들은 참고 해주시면 되겠습니다. 메모장으로 기초적인 간단하게 정리 했으니 참고바랍니다.!

 

어셈블리(assembly) 기초 강좌 메모장 TXT

어셈블리 강의 메모장입니다.

blog.naver.com

아까 기억한 주소 있죠? edx = 017977A8.

 

꼭 HEX에 체크를 하신후 주소를 입력해주세요. 그리고 스캔을하면 결과가 나옵니다.

 

저는 두개가나왔네요, 지금 찾아야 하는건 포인터입니다.

 

그럼 둘중에 뭐가 포인터일까요? 정답은 바로 녹색으로 써있는것.

 

포인터는 녹색으로 표시하자는게 치트엔진의 약속이라고 생각했는데 그게아니네요.

 

TIP - 기준주소가 정적인 주소일때 녹색으로 보여준다네요.

Add Address Manually를 클릭해주세요. 수동으로 주소를 추가한다는 메뉴입니다. 새창이 뜨네요.

우리가 추가하려는것은 일반적인 주소가 아닌 포인터의 주소입니다.

새창의 Pointer칸에 체크를 하고, Address of pointer에 포인터의 주소를 입력해줍니다.

제경우에는 0057C370 이네요.

Offset에는 0을 적어주시면 됩니다.

설명을 보니 가끔 복잡한 경우에는 Offset도 계산해서 구해내야 한다는데,

전 아무리 재실행해도 쉽게만 나오네요;; 도저히 스크린샷을 찍을수가 없습니다.

그냥 0적어주세요 오프셋은.

입력을 했더니 This pointer points to address에 뭔가가 적혀있네요.

017977A8? 이게 뭘까요.

정답은 포인터가 가리키는 주소입니다.

치트테이블을 보면 값의 주소가 017977A8로 포인터가 가리키는 주소와 일치한다는걸 확인 가능합니다.

드디어 포인터를 확실하게 찾았네요. OK를 클릭해서 치트테이블에 포인터를 추가해주세요

목록에 포인터를 추가했습니다. 주소가 P->017977A8 인걸보아 확실해졌습니다.

값을 5000으로 바꾸고 Active에 체크를 합니다.

옛날버전에는 freeze라고 써있었는데 최신버전인 6.1버전은 active로 바뀌었네요.

active에 체크를할시 값이 강제로 고정됩니다. 체크를안하면 자꾸만 5000이 아닌 다른값으로 변합니다.

 active기능 사용 예로는 게임에서 총알값을 찾아냈을때 freeze에 체크하면,

쏠때 총알수가 29개가되자마자 30개으로 돌아가고 29개 됬다가 바로 30개로 돌아가고 이럽니다.

한마디로 무한총알인거죠. 값을 10000발 이렇게 바꿀필요가 없어집니다.

역시 포인터값을 바꿨더니 값도 따라서 5000으로 바뀌어 버리는군요.

튜토리얼에서 Change pointer를 클릭시 정상대로라면 3초후 포인터가 값과 주소를 명령어대로 바꿉니다.

하지만 우리가 명령어를 따르는 대신 값을 5000으로 바꾸도록 해킹 해주었고 그 값을 고정시켜주었습니다.

그러므로 Change pointer를 클릭시 3초후 값이 5000으로 될겁니다!

3...2....1초 지나고 나니 넥스트 버튼이 활성화 됐습니다!

이 구간에서는 약간 머리가 다소 아플껍니다. 아무것도 모르는상태라 더욱더 머리가 아픕니다!

하지만 포인터로 이용하여 그 값을 따고 이렇게 무사히 클리어 했네요

궁금한점,안되는부분 있다면 댓글로 남겨주시면 답변해드리겠습니다.

비밋댓글로도 환영하니 부담없이 질문주세요~

posted by 핵커 커뮤니티
:
Cheat Engine 2020. 4. 10. 15:59

체력&총알 변경해보자.

체력을 5000이상 만들어보자 튜토리얼

튜토리얼을 보면 체력값 옆에 (float)라고 써있습니다.

튜토리얼 프로그램에서 저장하고있는체력의 자료형이 float라는걸 나타냅니다.

그러므로 지금까지 한것처럼 밸류타입을4 bytes를 선택하지말고, float로 선택해주어야합니다.

벨류 타입을 Float 을 선택하여 벨류값을 100으로선택한후 퍼스트 스캔 클릭한다.

그러고 나면 이렇게 값이 작게 뜬다. 튜토리얼에 있는 값이랑 Found 에 있는값이 똑같은값이 보인다.

*소수점이 있다 95.66 값이 아닌 95.66xxxxxx 값이다.

떡하니 한개가 나왔고 똑같은 값이다. 더블클릭한후 벨류값을 [5000]으로 설정한다

이렇게 체력값을 변경됐다. 하지만 총알이 남았다.

총알값은 Double 으로 검색해야한다.

벨류값을 100으로 한후 퍼스트스캔 클릭한다.

그러면 체력이랑 똑같이 값이 하나 나온다. 더블클릭한후 벨류값을 5000으로 설정한다.

이렇게 체력과총알이 5000으로 변경됐다.

궁금한점,안되는점 언제나 댓글으로 다 받고있으니 댓글주세요

비밋댓글로도 환영합니다 ^^

posted by 핵커 커뮤니티
:
Cheat Engine 2020. 4. 10. 15:57

사진 설명을 입력하세요.

제일먼저 해야할일은 튜토리얼창 왼쪽아래에 있는 값의 주소를 찾아야합니다.

100 검색, Change value를 클릭해주신후 바뀐값을 검색해주시면 웬만하면 한번에 나옵니다.

 

사진 설명을 입력하세요.

치트테이블로 보낸후 오른클릭 -Find out what writes to this address를 클릭해줍니다.

존재하지 않는 이미지입니다.

사진 설명을 입력하세요.

Yes 클릭합시다!

존재하지 않는 이미지입니다.

사진 설명을 입력하세요.

처음보는 새로운창이 떴습니다.

우리는 여기서 change value를 클릭할때마다 어떤넘이 자꾸 값을 변화시켜주는지 찾을 수 있습니다.

 

사진 설명을 입력하세요.

튜토리얼에서 change value를 클릭해주세요. 누르는순간 새로운게 목록에 뜨는것을 확인할 수 있습니다.

존재하지 않는 이미지입니다.

사진 설명을 입력하세요.

목록에 뜬 코드를 클릭해주시고Replace를 클릭해주세요.

"Change of mov [eax],edx"라고 써있네요.

드이어 어셈블리어 언어가 나왔습니다...!

 

사진 설명을 입력하세요.

다시한번Replace를 클릭해주시면"Change of nop "으로 바뀌어는걸 확인할 수 있습니다.

아마 튜토리얼에서Change value를 클릭하면 이놈이"Change of mov [eax],edx"라는 명령어를 따라서

값을 자꾸 변경해주는것이였을겁니다.Change of nop으로 바꿔 거세시켰으니 더이상 아무짓도 못할겁니다.

 

사진 설명을 입력하세요.

잘 됬는지 Change value 을 클릭하세요!

아무리 눌러도 값이 변하지 않아야 정상입니다.

이번 튜토리얼 처음보는 언어인 어셈블리언어가 나왔습니다.

이해하기가 어렵습니다.

이런식으로 값을딴게 된다면 쿨타임 초기화,무한,무시 등등 쓸수있습니다.

posted by 핵커 커뮤니티
:
Cheat Engine 2020. 4. 10. 15:47

다운로드 주소 > https://www.cheatengine.org/ 

치트엔진 최신버전 다운받기

posted by 핵커 커뮤니티
: