• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    해결됨

frida sslPinning 질문

22.10.14 17:06 작성 조회수 286

1

setTimeout(function()
{
	Java.perform(function()
	{
		var CertificateFactory = Java.use("java.security.cert.CertificateFactory");
		var cf = CertificateFactory.getInstance("X.509");

		var FileInputStream = Java.use("java.io.InputStream");
		var fileInputStram = FileInputStream.$new("/data/local/tmp/cert-der.crt");
		console.log(FileInputStream);
		var ca = cf.generateCertificate(fileInputStram);

		var KeyStore = Java.use("java.security.KeyStore");
		var keyStoreType = KeyStore.getDefaultType();

		var keyStore = KeyStore.getInstance(keyStoreType);
		keyStore.load(null, null);
		keyStore.setCertificateEntry("ca", ca);

		var TrustManagerFactory = Java.use("javax.net.ssl.TrustManagerFactory");
		var tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
		var tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
		tmf.init(keyStore);

		var get_tmf = tmf.getTrustManagers();

		var SSLContext = Java.use("javax.net.ssl.SSLContext");
		SSLContext.init.implementation = function(a, b, c)
		{
			SSLContext.init.call(this, a, get_tmf, c);
		}

	})
})

강의를 보고 위와 같이 코드를 작성 했는데 overload에러가 나고 있습니다. 제 생각은 FileInPutStream에서 new하면서 에러가 발생하는거로 추정됩니다(console.log 출력시 파일 이후에서는 출력이 안됬습니다)

제 방법이 잘못되었나요???

답변 2

·

답변을 작성해보세요.

1

김태영님의 프로필

김태영

2022.10.14

안녕하세요. 보안프로젝트 김태영입니다.

코드를 확인해보니 오타가 있는 것 같습니다.

파일을 읽는 부분이라 8라인에서 InputStreamFileInputStream으로 변경 부탁드립니다.

var FileInputStream = Java.use("java.io.InputStream");
var FileInputStream = Java.use("java.io.FileInputStream");

 

감사합니다.

0

박지훈님의 프로필

박지훈

질문자

2022.10.14

빠른 답변감사합니다