프리다랩 7번 풀이

2023. 4. 9. 16:42

7번 문제는 chall07Pin() 메소드를 브루트 포스를 하여 chall07() 메소드로 확인하면 되는 문제이다.

+) 브루트포스란 무작위 공격을 의미한다. 여기서 무작위 공격이란 전체 경우의 수를 다 대입하는 것을 뜻한다.

 

해당 코드를 확인해보면 인자로 전달된 var1의 값을 challenge_07클래스의 check07Pin() 메소드를 호출할 때 인자로 전달할 경우 참이면 초록불이 들어온다는 것을 확인할 수 있었다. 

 

 

위 사진은 challenge_07을 정의한 부분이다.

 

setImmediate(function(){
	Java.perform(function(){
		var chall_07 = Java.use("uk.rossmarks.fridalab.challenge_07"); 
		Java.choose("uk.rossmarks.fridalab.MainActivity",{
				onMatch : function(instance){
					for(var i=9999; i>=1000; i--){
						var takudaddy = String(i);
						if(chall_07.check07Pin(takudaddy)){
							console.log("\n[+] chall07 pin 값 :" + takudaddy);
							instance.chall07(takudaddy);
							break;
						}
					}
				},
				onComplete : function(){
				}
		})
	})
})

해당 문제는 chall_07 변수에 challenge_07 클래스를 저장하고, MainActivity의 인스턴스를 가져와서 브루트포스를 진행해주면 된다.

for 문을 사용하여 1000~9999 까지의 값을 String 형으로 변환하여 Check07Pin() 메소드의 인자 값으로 전달하면 참을 반환했을 때가 chall07의 값이다.

따라서, 이 값을 MainActivity 인스턴스의 chall07() 메소드를 호출할 때 인자 값으로 전달하면 해결할 수 있다.

 

 

해당 코드를 연결시켜주면 7번에 초록불이 들어오는 것을 확인할 수 있다.

'Android - 실습' 카테고리의 다른 글

프리다랩 6번 풀이  (0) 2023.04.02
프리다랩 5번 풀이  (0) 2023.03.30
FridaLab 4번 풀이  (0) 2023.03.24
FridaLab 3번 풀이  (0) 2023.03.22
FridaLab 2번 풀이  (0) 2023.03.18

BELATED ARTICLES

more