本仓库的使命已完成,请移步官方Tai-e教程:
仓库:https://github.com/pascal-lab/Tai-e-assignments
官方网站:http://tai-e.pascal-lab.net
知乎帖子:https://zhuanlan.zhihu.com/p/488957195
本仓库是早期作业的参考实现...
프로그램 분석 도구 개발 그룹 추가에 오신 것을 환영합니다 (QR 코드 만료, 이슈 #4 참조)
https://canliture.github.io/imgs/group.jpg
이것은 Nanjing University의 소프트웨어 분석 과정의 실험 숙제의 비공식적 구현입니다.
참고 : Bamboo는 난징 대학교 (Nanjing University)의 교과 과정을위한 오픈 소스가 아니므로 왜이 창고가 있습니까?
- 나는 숙제를 위해 PDF 과정을 주었고 API도 주어졌다. API에 따르면, 나는 기본적으로 내 자신의 이해를 바탕으로 할 수 있습니다.
현재 상태
- 아직 많은 테스트를 거치지 않았습니다 (적어도 강의의 예는 괜찮습니다).
- 다섯 번째 과제는 마지막 OBJ/유형에 민감한 코드의 빈을 채우는 데 짧은 시간입니다.
- 버그/문제를 제기하기를 바랍니다
最近挺忙的,先停更1/2个月吧.相信这份代码仍然能够给人一些帮助.(2021-11-08)
환경
- Java 8
- 그을음 4.2.1
- Intellij 아이디어
- Maven Build/Junit 테스트
문서
- Docs/Org는 Nanyang University 과정의 원래 주제입니다.
- 문서/그을음은 그을음 참조 자료입니다
- src/main/java/com/canliture/soot/각 하위 디렉토리의 작업에는 작업에 대한 간단한 설명으로 readme가 있습니다.
암호
- com.canliture.soot.ass1
- com.canliture.soot.ass2
- 두 번째 작업에 대한 코드 구현
- 일정한 전파 + 활동 감지 데드 코드 제거에 적용
- com.canliture.soot.ass3
- 세 번째 작업에 대한 코드 구현
- CHA는 통화 그래프를 구성하는 데 사용됩니다
- com.canliture.soot.ass4
- 네 번째 작업의 코드 구현
- 유동 감수성 포인터 분석
- com.canliture.soot.ass5
- 다섯 번째 작업의 코드 구현
- 유량에 민감한 포인터 분석
시험
단위 테스트를 실행하는 코드 : SRC/Test/Java/Directory
- com.canliture.soot.ass {n}
테스트 코드 : src/test/testcodes/ass/*
디버깅 및 실행
Intellij Idea를 사용할 때 디렉토리 SRC/Test/TestCodes/Ass를 Test sources root 로 표시합니다.
- 디버깅/실행 중에 테스트 된 코드를 대상/테스트 클래스 디렉토리로 자동 컴파일하여 테스트하기가 더 쉬워집니다.
ASS1의 디버깅/실행 테스트를 예로 들어보십시오
- com.canliture.soot.ass1.intraconstantPropagationTest 클래스를 찾아 주니트 테스트를 실행하십시오
- 각 테스트 클래스에는 gettransformer () 메소드가 있으며, 반환 된 변압기의 내부 변환 메소드는 분석 입구입니다.
전체 테스트를 실행하는 방법, interbasetest 및 intrabaseTest 클래스를 확인하고 여기에서 작은 테스트 프레임 워크를 캡슐화 할 수 있습니다.
- @before 테스트 전에 그을음을 구성하십시오
- @test 테스트 코드를 실행합니다
- @After 출력은 ir으로 jimple jimple hootoutput 디렉토리입니다
