안드로이드 보안/실습

안드로이드 보안/실습

[Android] FridaLab 6번 풀이

FridaLab 6번 풀이 FridaLab 6번 문제는 "Run chall06() after 10 seconds with correct value" 이다. chall06() 을 10초뒤에 실행시키는 함수이다. 먼저 코드부터 살펴보면 더보기 1. setTimeout(function(){}, 10000);: 10초 뒤에 함수를 실행한다. 2. var chall06 = Java.use("uk.rossmarks.fridalab.challenge_06");: "uk.rossmarks.fridalab.challenge_06" 클래스를 가져와 chall06 변수에 할당한다. 3. chall06.addChall06.overload("int").implementation = function(){};: "addChall0..

안드로이드 보안/실습

[Android] Fridalab 5번 풀이

Fridalab 5번 풀이 5번문제는 4번 문제와 상당히 유사하다. 4번문제는 if문 하나만 있었지만, 5번 문제에는 else문도 추가됐다. 따라서 인스턴스 값을 고정시켰다. java.use 함수를 통해 "uk/rossmarks/fridalab" 내부에 있는 "MainActivity.class" 파일을 가져오고 "chall05.chal05.overload('java.lang.string'.implemetation" 코드를 통해 MainActivity.class 파일 안에 있는 chall05() 함수를 상속한다. 다음으로 "function(str)" 코드를 통해 chall05() 함수가 호출될 때마다 "frida"를 인자로 전달한다. success

안드로이드 보안/실습

[Android] Fridalab 4번 풀이

Fridalab 4번 풀이 4번 문제는 chall04() 함수에게 "frida" 라는 값을 전송하는것이다. 먼저 /uk/rossmarks/fridalab/MainActivity.class 파일안에 있는 chall04() 함수를 보면 만약 변수 var1 의 값이 "frida" 라면 completeArr 배열의 3번 째 값을 1로 설정한다. 라는 뜻이다. 이때 completeArr 배열은 다음과 같은데, 위의 코드를 해석하면, 만약 completeArr 배열의 3번 째 값이 '1'이라면, 텍스트의 색상을 "녹색"으로 바꾸고, 아니면 "빨간색"으로 바꾼다. 즉, 값이 '1'이라면 '성공' 아니면 '실패'다. java.choose 함수를 통해 "uk/rossmarks/fridalab" 경로에 있는 MainAct..

안드로이드 보안/실습

[Android] Fridalab 3번 풀이

Fridalab 3번 풀이 3번은 chall03() 이 "true"를 반환하게 해야한다. 현재 "/uk/rossmarks/fridalab/MainActivity.class 파일안에 있는 chall03() 함수를 보면 "return false" 즉, "false" 값을 반환하게 돼있다. 따라서 java.use 함수를 통해 MainActivity 파일에 접근해주고 "implementation" 을 통해 "true" 값을 상속받는다. SUCCESS

안드로이드 보안/실습

[Android] FridaLab 2번 풀이

FridaLab 2번 풀이 2번은 Challenge 2번을 실행시키면 되는 것 같았다. 2번은 따로 class 파일이 안보였는데, MainActivity.class 파일안에 2번 Challenge 관련 내용이 있었다. 따라서 js 코드를 통해 2번을 실행시킬 수 있었다.

안드로이드 보안/실습

[Android] FridaLab 1번 풀이

FridaLab 1번 풀이 1번은 chall01 의 값을 1로 바꾸면 된다. Bytecode-Viewer을 통해 challenge 1의 코드를 보면 아래와 같다. 현재 getChall01Int 함수를 통해 chall01의 값을 리턴하고 있어, 아래와 같은 JS 코드를 통해 1이 return 되도록 설정해주었다.

snowjeon2
'안드로이드 보안/실습' 카테고리의 글 목록