Write-up/FridaLab

fridalab-challenge 03

연양 2023. 4. 2. 18:25

chall03 문제는 chall03() 메소드가 true를 반환하도록 만들면 된다.


2. 소스코드 분석

chall03() 메소드는  false를 반환하고 있으므로, 문제를 풀기 위해서는 true로 반환하도록 수정해야한다. 

static 함수가 아니기 때문에 java.choose를 사용해야 하는데, 반환 값만 변경하면 되기도 하고, chall03() 메서드를 MainActivity에서 호출하므로 java.use 사용이 가능하다.

 

3-1. 문제풀이(1) - java.choose

setImmediate(function() {
	Java.perform(function() {
		console.log("[*] chall03 start");
		var result;
		Java.choose("uk.rossmarks.fridalab.MainActivity", {
			onMatch : function(instance)
			{
				console.log("[-] found:" + instance);
				result = instance
				
			},
			onComplete : function() {
			}
		});
		result.chall03.overload().implementation = function() {
			return true;
		};
		console.log("[*] chall03 clear");
	});
});

 

3-2. 문제풀이(2) - java.use

setImmediate(function() {
	Java.perform(function() {
		console.log("[*] chall03 start");
		var chall03 = Java.use("uk.rossmarks.fridalab.MainActivity");
		chall03.chall03.implementation = function() {
			return true;
		}
		console.log("[*] chall03 clear");
	});
});

 

CLEAR

 

 


추가적으로 여기에서는  frida -U FridaLab -l 후킹코드.js 명령어를 입력했는데 frida -U -l 후킹코드.js -f 패키지명으로 하게 되면 새 프로세스를 생성하고 거기서 스크립트를 attaching 하는데 사용되는거라 현재 프로세스가 아닌 새 프로세스에서 걸려서 frida가 실행중인 상태에서 후킹코드를 재저장을 해야 문제가 풀린다. 따라서 패키지명으로 올리는게 아닌 앱명으로 하면 후킹코드를 재저장하지 않아도 바로 풀린다. 

'Write-up > FridaLab' 카테고리의 다른 글

fridalab-challenge 04  (1) 2023.04.02
fridalab-challenge 02  (0) 2023.04.02
fridalab-challenge 01  (0) 2023.02.17