[FRIDA] Base64 Decoding & Encoding

koo00·2023년 3월 31일
0

Base64 형태로 되어있는 문자열을 변조하려면 디코딩 및 인코딩이 필요하다.
AOS 및 iOS 환경에서 각각 사용 가능한 프리다 스크립트를 작성했다.

함수 사용 시 data 에는 문자열이 들어가면 된다.

function b64decode_aos(data) {
	var Base64 = Java.use('com.google.android.gms.common.util.Base64Utils');
	var String = Java.use('java.lang.String');
	
	return String.$new(Base64.decode(data));
}

function b64encode_aos(data) {
	var Base64 = Java.use('com.google.android.gms.common.util.Base64Utils');
	var String = Java.use('java.lang.String');
	
	return Base64.encode(String.$new(data).getBytes());
}

function b64decode_ios(data) {
	var NSData = ObjC.classes.NSData.alloc();
	var NSString = ObjC.classes.NSString.alloc();
	
	var str = ObjC.classes.NSString.stringWithString_(data);
	var decodedData = NSData.initWithBase64Encoding_(str);
	var decodedString = NSString.initWithData_encoding_(decodedData, 0);
	
	return decodedString.toString();
}

function b64encode_ios(data) {
	var str = ObjC.classes.NSString.stringWithString_(data);
	var encodedData = str.dataUsingEncoding_(0);
	var encodedString = encodedData.base64EncodedStringWithOptions_(0)
	
	
	return encodedString.toString();
}
profile
JFDI !

0개의 댓글