Java 코드 20KLOC-50KLOC을 가진 Android 앱에 대해 상황에 맞는 "포인트"분석을하기 위해 Soot의 패들 프레임 워크를 사용하려고합니다. 앱에 주요 방법이 없기 때문에 여러 진입 점을 갖도록 그을음을 수정했습니다. 내가 분석을 실행할 때 내가 분석이 실패한 끝에 더 이상하지만 여전히 실행되었던 노 소스 코드에 SigDomain.jedd 파일에 SigDomain (14)의 값 (14)을 증가soot + paddle을 사용한 대형 프로그램 분석
Exception in thread "main" java.lang.RuntimeException: Value 65543 was too large in domain soot.jimple.paddle.bdddomains.MethodDomain!
at jedd.internal.Domain.setBits(Domain.java:62)
at jedd.internal.Jedd.literal(Jedd.java:158)
예외 다음 발생 동일한 예외가 발생합니다. (또한 jvm의 스택 크기와 힙 크기를 1GB와 4GB로 늘렸다.) ~ 20000처럼이 값 SigDomain (14)을 너무 크게 설정하면 패들 분석이 시작되지 않습니다.
나는 노에 대한 옵션을 다음 있습니다 :
opt.put("verbose","true");
opt.put("bdd","true");
opt.put("backend","javabdd");
opt.put("context","kcfa");
opt.put("k","2");
opt.put("propagator","auto");
opt.put("conf","ofcg");
opt.put("order","32");
opt.put("q","auto");
opt.put("set-impl","double");
opt.put("double-set-old","hybrid");
opt.put("double-set-new","hybrid");
opt.put("pre-jimplify","false");
PaddleTransformer pt = new PaddleTransformer();
PaddleOptions paddle_opt = new PaddleOptions(opt);
pt.setup(paddle_opt);
pt.solve(paddle_opt);
soot.jimple.paddle.Results.v().makeStandardSootResults();
에릭 감사합니다. 앞으로 수요 중심 분석을 위해 "cs-demand"를 true로 설정하겠습니다. stack-overflow에 게시하기 전에 2 일 전에 soot-list로 메일을 보냈지 만 운영자 승인을 기다리는 중입니다. – user2037626
안녕하세요. 나는 당신이 의미하는 바를 분명하지 않습니다. 그을음 목록은 일반적으로 검토되지 않습니다. – Eric
[email protected]로 전자 메일로 질문을 보내면이 전자 메일을 받았습니다. 제목이 'Soot-list'인 메일을 "큰 프로그램 분석을 위해 패들 사용" 목록 진행자가 승인을 받기 위해 검토 할 때까지 보류 중입니다. 이 개최되고 그 이유는 포스트 비 회원에 의한 회원 전용 목록 으로는 어느 메시지가 목록에 게시 얻을 것이다, 또는 당신은 사회자의 결정 알림을 받게됩니다. 이 게시물을 취소하려면 다음 URL을 방문하십시오. 그 후 이메일이 없습니다. – user2037626