mono 방식 game 해킹 시작..

악성코드 및 포렌식|2021. 3. 13. 22:31

mono, il2cpp

 

보안성이올라감 뒤에껄로

 

mono c#으로만들어진 그대로 컴파일시킨것

 

il2cpp 이미컴파일된 것으로 가져다 실행시켜서 빠르고 보안성도강함

 

 

붉은보석2 게임을 해킹할것이다.

 

 

https://play.google.com/store?hl=ko

 

여기에들어와서

 

 

붉은보석2를 친다.

 

게임명을 구분할때 패키지명으로 구분한다.

 

com.ftt.redstone2.kr.gl로 구분할수있다.

 

 

패키지명

 

 

apk를 다운받을수있는사이트.

https://apkcombo.com/en-dk/apk-downloader/

 

 

여기서 이패키지명을 복사해서 검색을한다.

 

 

 

 

 

 

 

패키지명을 검색해서 다운을받는다.

 

 

이것을 실행해볼수있는 블루스택, ld플레이어가 있지만

 

ld플레이어로 진행을한다.

 

 

 

 

ldplayer를 사용한다

 

https://kr.ldplayer.net/

 

다운로드하기

 

 

 

 

 

 

 

 

 

이런식으로 모험 1-1을 깹니다.

 

 

 

 

 

 

 

앱플레이어 폴더열기를 누른다.

 

 

 

 

 

android폴더를 들어갑니다.

 

 

 

 

root 권한 활성화를 합니다.

재시작

 

 

 

 

 

 

com.ftt.redstone2.kr.gl 을 꾹눌러서 이름바꾸기를 하고

 

 

 

_ 를 붙입니다. 패키지명을 바꾼이유는 앱에서 앱을삭제를할때는 파일관리자의 패키지명이 일치하는 것을 같이삭제하는게 정석이다. 현재까지 로그인기록이든 그런것을 저장하기위해서 삭제를 해도 남아있다

 

 

 

 

 

 

데이타파일은 로그인기억 현재상황 즉 패키지명에 맞춰서 저장이된다.

 

 

obb폴더는 apk파일 받을때 용량은작은데 막상 apk파일 다운받고 실행하면 음성데이터들이라든지 그런것을 불러온다.

apk파일 통채로올리면 용량이너무 크기 때문이다.

 

 

 

 

 

 

게임을 삭제하더라도 ~~~pl_ 이 남아있다.

 

 

7zip 을 설치를 한다.

 

 

 

 

https://github.com/dnSpy/dnSpy

dll을 열어주는 파일을

 

 

 

binaries를 누르고

 

 

 

 

 

win64.zip을 다운받는다.

 

 

 

 

 

 

 

 

 

붉은보석 apk7z으로 압축파일을 열어봅니다.

 

이곳을 들어온다.

 

 

 

 

 

 

 

이곳에 들어와 dll파일을 폴더에 넣어둔다.

 

 

 

 

 

이 아까 받은것을 열어봅니다.

 

 

 

dll 파일을 전부옮긴다.

 

 

 

 

이곳이 가장 중요한 dll이다. 다른곳은 들러리라고 생각하면된다.

- 가 디폴트경로 이고 노란색은 패키지들이다.

 

 

 

 

 

- 에 들어갔을때 클래스이고

파란색이 클래스가이고

 

루트경로에 만들어서 그폴더에 클래스를 놓은것이다.

 

 

 

 

 

여기에

 

게임에 무적이 되게 한다.

 

 

 

 

 

 

selected 로 바꾸고 method를 가고 revived를 들어간다

그리고 RS2.player를 본다.

 

 

 

 

 

 

 

 

 

이부분이 이상해서 이것을 구글에서 검색을한다.

 

 

이것은 무적이라고

 

즉 죽엇다 살아나면 5초동안 무적이라고 생각하면된다.

 

 

player 라는 클래스를 누르면 짜라락나온다.

 

주황색은 method를 뜻한다. player는 객체라고 생각하면된다.

method는 함수라고생각하면되고 애가 뭘하는냐 즉 player가 어떤행동을 하는지 알수있다.

 

 

 

damaged라는 것이 가장 적합한 method라고생각한다.

base.startInvincibility(5f);

 

 

데미지를 먹었을때 되는 행동을 여기에적는데

 

가장 위에넣는다.

무적이되고 맞아가지고 아야하는거랑 아야하고 무적이 되는거랑은 차이가 있기때문에

위에 넣는것이다.

 

 

 

 

 

 

edit method를하고

 

 

 

 

 

데미지를 입는 상황이오면 즉 몬스터가 때릴때마다 5초동안 무적이된다.

넉넉하게 1초로 바꿔둡니다.

 

여기를 하고 comfile을 눌러줍니다.

 

 

 

여기를 가본다 즉

치트키가 있으면 보호를 하게되는 곳이라고 생각한다.

 

 

 

이감지를 시작을 하지않는 방법은

 

start detection의 내용을 stop detection에 넣어버리면된다.

 

 

 

 

이내용을 복사해서 start detection에 붙여넣는다,

 

 

 

 

 

이렇게 붙여넣는다.

 

public 안에 stop detection내용을 붙이면됩니다.

 

 

 

여기에 있는 내용을 전부 바꿔 버립니다.

그렇게되면 이제 detection이 시작을 하지않는 것입니다.

전부 stop으로 바꾸기때문에

 

 

동물이라는 객체밑에 고양이,강아지가있다

 

베이스가 되는것에서 혀를내민다등 개의 특징이고

이것을 다포함하는것이 동물이다

 

 

injection 디텍터가 실행되면 ActDetectorBase 가실행되고

injection 디텍터가실행된다.

 

 

 

그래서 ActDetectorBase 로 가고 stop부분을 볶사한다.

this.StopDetectionInternal();

 

그리고 start에 복사붙여넣기를한다.

 

 

 

start 의 이것을

 

 

 

 

이렇게 stop을 해준다.

 

 

 

 

그리고 saveall -> save all을 누릅니다.

즉 우리가 변경한 injection detector ActDetectorBase

같이 실행이되기때문에

injection detector가 실행될때 actDetectoreBase 가 상속되기때문에

두개를 다 하면된다.

 

 

 

 

 

이제 이것을 우리가 적용을 시키려면

apk7zip 압축파일을 열고 이렇게 붙여넣기를한다

 

 

알집파일을열고 dll 우리가 바꾼 파일을 복사 붙여넣기를 합니다.

 

 

 

 

 

apk ldplayer에 복사를 한뒤에

 

 

gl_이거였던것을 _ 바꾼다.

 

ctrl + 5 를 해서 저경로를 가서 이름을 바꾼다.

 

이제 붉은 보석을 실행합니다.

 

 

 

그러면 몬스터가 쳐도 이제 데미지가 달지않습니다.

 

 

즉 붉은보석 2의 해킹을 완료했습니다.

 

 

 

댓글()