工具MASC使用记录
# 描述
部署并使用工具MASC
# 步骤
1、克隆代码库
git clone https://github.com/Secure-Platforms-Lab-W-M/MASC.git
1
2、创建conda环境
conda create -n masc python=3.10.4 -y
# 设置 python=3.10.4 是以防执行需要web界面版本
1
2
2
3、设置jdk为11
sdk install java 11.0.31-tem
sdk use java 11.0.31-tem
1
2
2
4、构建jar包
cd masc-core
./gradlew build
1
2
2
5、复制 MASC/masc-core/app/build/libs/masc-2.0.jar 到 MASC 目录下面
# 测试运行
java -jar masc-2.0.jar
# 如果输出包含以下内容证明成功执行了
No configuration file provided
1
2
3
4
2
3
4
6、部署好后,就可以运行了。某个例子如下,MASC/ 目录下创建 Cipher.properties,内容如下
mutantGeneration = true
type = StringOperator
outputDir = ./outputs
scope = MAIN
className = CryptoTest
apiName = javax.crypto.Cipher
invocation = getInstance
secureParam = AES/GCM/NoPadding
insecureParam = AES
noise = ~
variableName = cryptoVariable
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 命令行中运行如下命令
java -jar masc-2.0.jar Cipher.properties
1
2
2
./outputs 目录中会生成变异体java代码文件
# PS
1、在MASC/masc-core/app/src/main/resources文件夹下面有可以使用的例子,不过有的要进行配置修改
2、上述例子中的配置中,lib4ast 设置成相对路径好像报错了,设置成绝对路径才不报错。