프리다 실무활용 -Level2 암호 복호화
2023. 5. 10. 14:54ㆍ구축/Mobile Hack

아무거나 입력 후 애러 구문 확인 -> 애러구문 텍스트 검색


ctrl 누르고 a클릭하면 a들어옴 암호화된 구문 확인

2가지 풀이 방법에
풀이 1.

setImmediate(function(){
Java.perform(function(){
var exit_bypass = Java.use("java.lang.System");
exit_bypass.exit.implementation = function(arg){
console.log("\n [*] Exit Bypass");
}
var trueClass = Java.use("sg.vantagepoint.uncrackable1.a");
trueClass.a.implementation = function(arg){
console.log("\n [*]True");
return true;
}
})
})

풀이2.

a를 ctrl누르고 들어감

다시 a method에 들어감

setImmediate(function(){
Java.perform(function(){
var exit_bypass = Java.use("java.lang.System");
exit_bypass.exit.implementation = function(arg){
console.log("\n [*] Exit Bypass");
}
var decrypteClass = Java.use("sg.vantagepoint.a.a")
decrypteClass.a.implementation = function(arg1,arg2){ //bArr, bArr2 두개 인자값
var secret_string = this.a(arg1,arg2); //method 실행을 반환값(secret_string)에 출력
console.log(secret_string);
return secret_string;
}
})
})

byte가 객체기 때문에 object라고 출력 -> 그럼 배열 안에 있는 값을 확인 하기 위해 코드 수정
setImmediate(function(){
Java.perform(function(){
var exit_bypass = Java.use("java.lang.System");
exit_bypass.exit.implementation = function(arg){
console.log("\n [*] Exit Bypass");
}
var decrypteClass = Java.use("sg.vantagepoint.a.a")
decrypteClass.a.implementation = function(arg1,arg2){
var secret_string = this.a(arg1,arg2);
for(var i=0; i<secret_string.length;i++) //배열의 값을 빼오기 위해 반복문 사용 i변수 선언, 0으로 초기화 후 secret_string length를 1씩 늘림
{
console.log(secret_string[i]); //배열에서 값을 하나씩 빼옴
}
return secret_string;
}
})
})

실행 결과 아스키값으로 문자열 확인 (아스키 값을 1:1 매칭 할 수 있지만 그 수가 많아질 수도 있어서 코드 수정으로 확인)
setImmediate(function(){
Java.perform(function(){
var exit_bypass = Java.use("java.lang.System");
exit_bypass.exit.implementation = function(arg){
console.log("\n [*] Exit Bypass");
}
var decrypteClass = Java.use("sg.vantagepoint.a.a")
decrypteClass.a.implementation = function(arg1,arg2){
var secret_string = this.a(arg1,arg2);
var secret_S = ''
for(var i=0; i<secret_string.length;i++){ //배열의 값을 빼오기 위해 반복문 사용 i변수 선언, 0으로 초기화 후 secret_string length를 1씩 늘림
secret_S += String.fromCharCode(secret_string[i]) // 아스키 값으로 치환
}
console.log(secret_S += String.fromCharCode(secret_string[i]));
return secret_string;
}
})
})

코드 확인

값 입력하면 확인 가능
'구축 > Mobile Hack' 카테고리의 다른 글
apk-tool 설치 (0) | 2023.05.16 |
---|---|
프리다 실무활용 -Level3-4 로그인 우회 브루트포스 (0) | 2023.05.11 |
Uncrackable -Level1 루팅탐지 (1) | 2023.05.10 |
Frida설치(feat. anaconda) (0) | 2023.05.06 |