효투의 세상 로딩중...
효투의 세상 로딩중...
반응형

단말기를 사용할 수 없는 환경에서 앱 진단을 해야할 때는 

녹스와같은 안드로이드 에뮬레이터로 진단을 해야한다.

 

Nox나 미뮤 플레이어같은 경우는 프록시를 설정하는 데 있어서 큰 어려움이 없다.

하지만 블루스택에서 프록시 설정을 할 때 꽤나 애를 먹어서 이번 포스팅을 작성한다.

 

또 앱 플레이어마다 너무 환경이 달라서

특정 애플리케이션이 녹스에서는 실행이 안되고 미뮤에서는 실행이되는 등 버그가 많은 듯 하다.

 

1. 녹스(Nox)/미뮤(MeMu)

먼저 녹스와 미뮤앱플레이어의 프록시 설정법은 위에서 말했듯이 큰 어려움이 없다

단말기와 거의 유사함

그리고 안드로이드 버전 또한 설정할 수 있어서 7인가 9인가 보다 낮은 버전의 안드로이드로 실행하면

직접 system 디렉터리에 쓰기권한을 마운트하여 넣어줄 필요도 없다.

녹스는 다른 블로그에도 정보가 엄청 많아서 미뮤 앱플레이어로 과정을 남기는데 녹스도 똑같이 하면된다

 

먼저 프록시 도구에서 인증서를 추출한다 

나 같은 경우엔 burp를 애용하기때문에 burp 인증서를 추출

 

DER Export 추출할 땐

파일명 뒤에 확장자를 붙여줘야한다

1.der 등

 

이렇게 추출한 인증서에 이제 openssl을 통해서 해시값을 추출한다

openssl 도구는 아래 에서 다운할 수 있다.

https://slproweb.com/products/Win32OpenSSL.html

 

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

Minimum system requirements: Windows XP or later 32MB RAM 200MHz CPU 30MB hard drive space Recommended system requirements: Windows XP or later 128MB RAM 500MHz CPU 300MB hard drive space March 14, 2023 - OpenSSL 3.1 is available. Also, Happy Pi Day. Users

slproweb.com

 

cmd를 열어서 명령어 실행

1.pem 파일을 생성해준다

openssl x509 -inform DER -in 1.der -out 1.pem

 

pem 파일에서 hash 추출

openssl x509 -inform PEM -subject_hash_old -in 1.pem

 

1.pem 파일을 추출한 해쉬값으로 파일명 변경

mv 1.pem 9a5ba575.0

 

이제 인증서 준비는 끝났고

adb push로 단말기 안에 집어넣어줌

이제 adb로 에뮬레이터 쉘에 접근해서 system 마운트 후 인증서를 넣어주면된다.

미뮤 앱플레이어는 바로 adb shell로 연결이 가능하고

Nox는 아래 명령어로 포트를 먼저 연결한 후 adb shell로 접근이 가능하다.

adb connect 127.0.0.1:62001

62001포트로 안된다면 62002 , 62003 등

설정 단말 갯수에따라 1씩 값이 증가한다.

 

에뮬레이터가 여러개라서 shell 연결 시 에러가 뜨면

adb devices 명령어로 어떤 장치에 연결할 건지 확인 후

adb -s 옵션을 줘서 지정해줄 수 있다

adb -s 127.0.0.1:62001 shell

 

어쨌든 adb shell 들어오면 바로 시스템 마운트 후 sdcard에 있던 인증서파일을 시스템 디렉터리로 옮긴 후

실행권한 까지 주면 끝

mount -o rw,remount /system

mv /sdcard/9a5ba575.0 /system/etc/security/cacer

cd /system/etc/security/cacerts

chmod 777 9a5ba575.0

 

 

이후 프록시 설정 하고 Burp에서 프록시를 잡아주면 잘 잡히는 걸 볼 수있다.

 

 

녹스와 미뮤는 똑같이 하면되고 어렵지않다

 

반응형

 

2. 블루스택(BlueStack 5)

하지만 블루스택은 프록시 설정이 안드로이드 시스템상에 없어서 도구를 사용해줘야한다.

블루스택은 과거에

HD-ConfigHttpProxy.exe 라는 파일로 프록시 세팅이 가능했던 것같은데

현재는 보이지가 않았다.

그래서 ProxyCap이라는 도구와

블루스택 트위커(Tweaker)라는 도구를 사용해줘야한다.

 

https://www.proxycap.com/download.html

 

Download ProxyCap

  pcap143_arm.cab  123 K (for Windows Mobile 5 Pocket PC, Windows Mobile 6, 6.1, 6.5 Professional/Classic)

www.proxycap.com

 

https://bstweaker.tk/

 

BlueStacks Tweaker Official Site

BlueStacks Tweaker Official site. Tool for modifing BlueStacks. Root BlueStacks. Download BSTweaker.

bstweaker.tk

 

두 도구를 받았다면 아래 과정을 따라오면된다.

먼저 ProxyCap 설정은 전체적으로 보면 아래사진과 같아야한다.

오른쪽의 추가버튼을 눌러 Proxy 서버 생성

 

아래와같이 Burp에서 프록시를 캡처할 포트와 로컬호스트 IP로 HTTP 그리고 HTTPS 2개를 생성해준다.

 

그리고 Rules 탭에서 아래와같이 설정해준다

443 포트는 HTTPS로 80은 HTTP로

생성방법은 아래와 같다

 

이렇게 Proxycap 설정이 되었다면 작업표시줄에서 활성화를 해주고

아마 이렇게만 하더라도 블루스택에서의 HTTP 통신은 프록시가 잡힐 것이다

하지만 S 통신이 안잡힌다 burp 인증서가 없기때문 

이 인증서를 넣으려면 블루스택 트위커가 필요하다.

먼저 블루스택 설정에서 ADB 활성화

 

cmd에서 쉘 연결

adb connect 127.0.0.1:5555

adb shell 또는 adb -s 127.0.0.1:5555 shell

 

 

위에 Nox 인증서 과정에서 만들어둔 인증서를 넣으면 되는데

mount가 안된다

 

블루스택 트위커 실행

먼저 중지 버튼을 눌러서 블루스택 종료

그 다음 에뮬레이터를 선택 해준 후 Unlock 버튼을 클릭하여 찐 Root 권한을 얻을 수 있다.

 

몇 초만 기다리면 된다.

 

그 다음 화살표를 눌러서 다시 에뮬레이터를 실행시킨 후에

Patch 버튼 클릭 아래에 True 라는 반환이 와야함

 

이제 Logs 탭으로 가서 Terminal을 열어준다

ADB shell은 접근이 안된다 이유는 모르겠음

그리고 다시 시스템 디렉터리에 쓰기권한을 마운트해주면 

정상적으로 명령이 실행된다

 

이 후로는 위 과정과 똑같이 인증서를 /system/etc/security/cacerts 디렉터리에 넣고

실행권한을 부여해주면 끝

반응형
  • hyotwo7658@gmail.com

복사 완료 👍