2013-02-03 2 views
0

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(); 

답변

0

나에게 모든 우리가 할 수있는 당신이 일반적으로 그을음 메일 링리스트에 빠르게 도움을받을거야 당신을 조언 할 수 그을음의 관리자들 중 하나로서 StackOverflow보고. Ondrej Lhotak는이 문제를 해결할 수 있습니다 ...

상황에 따른 분석은 일반적으로 매우 비쌉니다. 가능한 해결책은 (1) Soot가 지원하고 명령 행 옵션을 점검하는 요구 중심의 상황에 맞는 분석을 수행하는 것, (2) 손으로 만든 포인터 추상화를 구성하는 것, (3) 런타임 중 일부를 제외하는 것 라이브러리는 분석에서 제외됩니다 (부정확 할 것입니다). 희망은 도움이 ...

+0

에릭 감사합니다. 앞으로 수요 중심 분석을 위해 "cs-demand"를 true로 설정하겠습니다. stack-overflow에 게시하기 전에 2 일 전에 soot-list로 메일을 보냈지 만 운영자 승인을 기다리는 중입니다. – user2037626

+0

안녕하세요. 나는 당신이 의미하는 바를 분명하지 않습니다. 그을음 목록은 일반적으로 검토되지 않습니다. – Eric

+1

[email protected]로 전자 메일로 질문을 보내면이 전자 메일을 받았습니다. 제목이 'Soot-list'인 메일을 "큰 프로그램 분석을 위해 패들 사용" 목록 진행자가 승인을 받기 위해 검토 할 때까지 보류 중입니다. 이 개최되고 그 이유는 포스트 비 회원에 의한 회원 전용 목록 으로는 어느 메시지가 목록에 게시 얻을 것이다, 또는 당신은 사회자의 결정 알림을 받게됩니다. 이 게시물을 취소하려면 다음 URL을 방문하십시오. 그 후 이메일이 없습니다. – user2037626