워게임/FridaLab
FridaLab Write Up - Download & Install
작성자 - LRTKDownload & Install
사진에 FridaLab 공식 홈페이지 링크를 삽입하였으니, 사진 클릭을 하면 공식 사이트로 이동할 수 있다.
해당 공식 사이트에서 Download를 클릭 시 FridaLab.apk 파일을 다운로드 할 수 있다.
adb install 명령어를 통하여 FridaLab.apk를 설치하였다.
FridaLab을 실행한다면, 별 반응이 없을 것이다.
FridaLab의 기능은 화면 속 텍스트로 작성한 1~8번의 기능들이 우회가 되었는지 확인하는 것 뿐이다.
CHECK 박스를 클릭한다면, 우회가 되지 않은 기능들이 빨간색 글자로 변경이 된다.
Frida를 이용하여 각 기능들을 후킹을 통해 우회한다면, 초록색 글자로 변경이 된다.
AndroidManifest & MainActivity 분석
jadx를 통해 FridaLab.apk의 AndroidManifest.xml와 MainActivity를 확인하였다.
AndroidManifest.xml에서 별다른 특별한 부분이 없어서 넘어갔다.
MainActivity에선 밑과 같이 코드 분석을 하였다.
public class MainActivity extends AppCompatActivity {
public int[] completeArr = {0, 0, 0, 0, 0, 0, 0, 0};
...
...
...
public void changeColors() {
TextView textView = (TextView) findViewById(R.id.chall01txt);
TextView textView2 = (TextView) findViewById(R.id.chall02txt);
TextView textView3 = (TextView) findViewById(R.id.chall03txt);
TextView textView4 = (TextView) findViewById(R.id.chall04txt);
TextView textView5 = (TextView) findViewById(R.id.chall05txt);
TextView textView6 = (TextView) findViewById(R.id.chall06txt);
TextView textView7 = (TextView) findViewById(R.id.chall07txt);
TextView textView8 = (TextView) findViewById(R.id.chall08txt);
if (this.completeArr[0] == 1) {
textView.setTextColor(-16711936);
} else {
textView.setTextColor(SupportMenu.CATEGORY_MASK);
}
if (this.completeArr[1] == 1) {
textView2.setTextColor(-16711936);
} else {
textView2.setTextColor(SupportMenu.CATEGORY_MASK);
}
if (this.completeArr[2] == 1) {
textView3.setTextColor(-16711936);
} else {
textView3.setTextColor(SupportMenu.CATEGORY_MASK);
}
if (this.completeArr[3] == 1) {
textView4.setTextColor(-16711936);
} else {
textView4.setTextColor(SupportMenu.CATEGORY_MASK);
}
if (this.completeArr[4] == 1) {
textView5.setTextColor(-16711936);
} else {
textView5.setTextColor(SupportMenu.CATEGORY_MASK);
}
if (this.completeArr[5] == 1) {
textView6.setTextColor(-16711936);
} else {
textView6.setTextColor(SupportMenu.CATEGORY_MASK);
}
if (this.completeArr[6] == 1) {
textView7.setTextColor(-16711936);
} else {
textView7.setTextColor(SupportMenu.CATEGORY_MASK);
}
if (this.completeArr[7] == 1) {
textView8.setTextColor(-16711936);
} else {
textView8.setTextColor(SupportMenu.CATEGORY_MASK);
}
}
}
이와 같이 "completeArr"이라는 Array 변수에 저장된 각 인덱스의 값들이 각 기능의 우회 여부를 나타나는 값으로 표현이 되는 것으로 판단된다. 각 인덱스의 값들이 1인 경우에만, 초록색 글자로 출력된다.
이제 각 기능의 코드를 확인하여 어떻게 우회하면 completeArr의 값이 1로 변경되는지 확인하였다.
'워게임 > FridaLab' 카테고리의 다른 글
FridaLab Write Up - Challenge 05. 항상 chall05()에 "frida"를 전송하라. (0) | 2022.12.15 |
---|---|
FridaLab Write Up - Challenge 04. chall04()에 "Frida"를 전달하라. (0) | 2022.12.15 |
FridaLab Write Up - Challenge 03. Chall03()의 리턴 값을 True로 만들어라. (0) | 2022.12.15 |
FridaLab Write Up - Challenge 02. chall02()를 실행 시켜라. (0) | 2022.12.15 |
FridaLab Write Up - Challenge 01. challenge_01 클래스의 chall01 변수의 값을 1로 변경해라 (0) | 2022.12.15 |
Contents