{"repo":"themaplelab/swan","free":true,"listed":false,"github":"https://github.com/themaplelab/swan","clone":"git clone https://github.com/themaplelab/swan.git","description":"Swift Static Analysis Framework","language":"Scala","stars":177,"topics":["swift","static-analysis","security"],"license":"Apache-2.0","category":"security-tools","readme_excerpt":"SWAN This branch contains the new generation of the SWAN framework. The SWAN version described in our ESEC/FSE 2020 paper is located on this branch. This paper no longer represents the current state of SWAN because we have redesigned it entirely. Summary SWAN is a static program analysis framework that enables deep dataflow analysis for Swift applications (incl. iOS/macOS). Its applications include finding API misuses using typestate analysis and detecting security vulnerabilities using taint analysis. We aim to provide developers and researchers with an easy-to-use and well-documented platform for analyzing Swift applications. :construction: SWAN is very much WIP. It is an academic project created by the Maple Lab at the University of Alberta. Please feel free to file an issue if you have any questions or problems. Features - Wrappers for xcodebuild and swiftc that build and dump SIL - SIL parser (estimated 99% coverage, up to 100k lines/second) - Well documented intermediate representation (IR), called SWIRL - Ability to write models for black-box functions with SWIRL - Partial language and Swift Standard Library models - Modular IR translation pipeline (for integration with other engines) - Development tool for viewing Swift, SIL, and SWIRL side-by-side - Optimizations: multi-threaded module processing (also working on caching and selective parsing) - Cross-module analysis support (i.e. library analysis) - Synchronized Pushdown Systems (SPDS) integration for quick pointer ","default_branch":null,"files":null,"tree":[],"storefront":"/r/themaplelab","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/themaplelab/swan/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}