본문 바로가기

헬조선 Magisk

헬조선 Magisk

요즘 루팅할 때 많이 쓰는 Magisk를 어떻게 감지하나 봤더니,

Active-X의 대안이랍시고 exe를 내놓는 국가에서 볼만한 보안 수준이다.

 

전엔 시스템에 등록된 Unix Socket들을 훑어보고 Magisk와 관련된 소켓이 있으면 루팅이라고 감지를 했었다.

그럴싸한 솔루션이다.

 

나중엔 이 방식으로 감지될 수 있다는 사실이 알려진 이후엔

Magisk 개발자(John Wu)가 소켓 이름을 32글자만큼의 랜덤한 문자열로 바꾸도록 조치되었다.

 

그랬더니 이거 감지를 그냥 Unix Socket들 중에 32글자짜리가 있으면 그냥 루팅으로 감지를 한다카드라.

이 꼬라지로 "보안"을 해대니 멀쩡한 폰들에서도 루팅을 감지하는 이유를 그나마 좀알 것 같다.

 

 

누가 뭘 잘못 먹고 처음 제안한 방법인진 모르겠지만, 적어도 여기 있는 사람은 이게 나름 합리적인 솔루션이라고 생각하나 보다.

https://github.com/KimChangYoun/rootbeerFresh/issues/4

 

False possitives on Huawei phones · Issue #4 · KimChangYoun/rootbeerFresh

Randomly on Huawei phones Magisk UDS Detection Method return true even if current device is not rooted. It is really hard to detect because it looks like it is not permanent. At this moment i do no...

github.com

(영어가 되는 사람은 읽는 것을 강력히 추천한다.)

 

Magisk 개발자인 John Wu와 이것저것 종종 얘기하는데, 이 검사법을 처음 보았을 때 우리 둘 반응은 똑같았다.

 

John Wu가 이 비슷한 방식 등을 통해서 감지되는 일 자체가 없도록 Magisk를 뜯어고치겠다고 전에 이야기를 하긴 했었지만, 당장 내가 쓰는 앱 중에 이 어이없는 방식으로 감지를 해대는 앱이 있어서 일단 대충 수정하기로 하였다.

 

수정을 하고 주변 한국 친구들에게 보내줬을 때 반응이 좋아서 이 "약간" 패치된 Magisk를 인터넷에 공유하기로 하였다.

헬조선 Magisk.

 

한국 앱들에 좀 더 납득 가능한 보안 솔루션들이 탑재될 때 이 "헬조선 Magisk"는 개발 중단할 예정이다.

 

다운로드 링크

http://arter97.com/browse/hellkorea/

 

설치법은 일반 Magisk 설치법과 같다.

설치 후 MagiskHide 설정이 대충 끝났으면 MagiskManager는 아예 삭제하는 것을 추천한다.

 

설치 후에도 감지가 되는 사람은

https://play.google.com/store/apps/details?id=com.kimchangyoun.rootbeerFresh.sample

 

루트비어 후레쉬 (RootbeerFresh) - Google Play 앱

루트비어 후레쉬(RootbeerFresh) 는 Magisk Hide와 같이 루팅된 스마트폰을 탐지해 낼 수 있습니다. 루트비어 후레쉬(RootbeerFresh) 는 오픈소스 프로젝트 이며, Rootbeer를 기반으로 만들어 졌습니다. ** 이 앱은 완전 무료이며, 광고가 없습니다.

play.google.com

이 앱을 설치한 후 대충 어디서 잡히는지 확인해보길 바란다.

 

커스텀 롬일 경우 보통 test-keys나 userdebug/eng 빌드라서 감지가 된다.

이 경우 단순히 build.prop에서 test-keys를 release-keys, userdebug/eng를 user로 바꾸면 된다.

 

커스텀 커널일 경우 보통 SELinux를 풀어놓은 것에서 걸린다.

만약 커널이 Enforcing임에도 불구하고 감지가 되면 조금 더 복잡한 곳에서 감지되는 걸 것이다.

 

Changelog

r7:

    Based on v21.0

    Magisk v21.0 자체에서 수정된게 꽤 있기 때문에, 기본 Magisk가 먼저 제대로 적용되는지 먼저 확인 바랍니다.

r6:

    Based on v20.0

    (여담으로 v20.0으로만 올리니 T*** 다시 우회되네요. Component randomization으로 우회하나 했더니 아니였네요. 수수료 제한이나 풀어주세요 ㅠㅡ)

r5:

    Based on v19.4

r4:

    Based on v19.3