https://seomj74.tistory.com/261
값을 입력하니 다음과 같은 경고창이 나온다.
jadx를 사용하여 MainActivity를 확인해 보자.
45번째 줄 if문을 발견할 수 있다.
a.a(obj)로 전달되며, 입력한 값이 obj에 지정이 되는 것을 확인할 수 있다.
a를 확인해보자.
a클래스의 a메서드이다.
12번째 줄을 보니 "8d127684cbc37c17616d806cf50473cc"를 b에 넣은 값과 "5UJiFctbmgbDoLXmpL12mkno8HT4Lv8dlat8FxR2GOc="를 base64로 디코딩한 값을 a.a.a를 호출하여 bArr의 값으로 지정한다.
17번째 줄에서 str(obj)과 비교해 리턴을 해준다.
a.a.a를 확인해보자.
AES로 암호화를 해주고 있다.
포스팅 제목처럼 암호화 키를 가져오는 방법을 사용할 것이다.
다음과 같이 코드를 작성하고 실행시킨다.
var a = Java.use("sg.vantagepoint.a.a");
a.a.implementation = function(a, b){
console.log("[*] Hooking in a.Class");
var retVal = this.a(a, b);
var passcode = "";
for(var i=0; i<retVal.length; i++){
passcode += String.fromCharCode(retVal[i]);
}
console.log("secret key: " + passcode);
return retVal;
}
후킹한 값들을 retVal에 저장하고 이를 합쳐서 출력시키게 된다.
'Study > App' 카테고리의 다른 글
[App]레지스터 함수, 배열 (0) | 2022.10.04 |
---|---|
[App]Diva 12. Hardconding Issues - Part 2(하드코딩된 정보 + Frida native) (0) | 2022.09.30 |
[App]Uncrackable1 루팅 탐지 - 반환 값, exit() (0) | 2022.09.29 |
[App]Diva 1. Insecure Logging(디버그 로그 내 정보 노출) + 11. Access Control Issues - Part 3(화면 강제 실행 인증단계 우회) (0) | 2022.09.27 |
[App]루팅된 단말기 adb 접속 및 frida (0) | 2022.09.24 |