/* SAAF: A static analyzer for APK files.
* Copyright (C) 2013 syssec.rub.de
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.rub.syssec.saaf.misc;
import java.util.Vector;
/**
* FIXME: Remove Enum? Immutable vector?
*/
public abstract class Highlight {
public static final Vector<String> OP_CODES = new Vector<String>();
public static final Vector<String> ANNOTATIONS = new Vector<String>();
static {
// opcodes
// OP_CODES.add("move-result ");
// OP_CODES.add("invoke-interface ");
// OP_CODES.add("const-string");
// OP_CODES.add("move");
// OP_CODES.add("return-void");
// OP_CODES.add("if-eqz");
// OP_CODES.add("goto");
// OP_CODES.add("invoke-virtual");
// OP_CODES.add("return");
// OP_CODES.add("if-nez");
// OP_CODES.add("move-result-object");
// OP_CODES.add("const/4");
// OP_CODES.add("iget-object");
// OP_CODES.add("new-array");
// OP_CODES.add("aput-object");
// OP_CODES.add("invoke-virtual/range");
// OP_CODES.add("move-object");
OP_CODES.add("add-double/2addr ");
OP_CODES.add("add-double ");
OP_CODES.add("add-float/2addr ");
OP_CODES.add("add-float ");
OP_CODES.add("add-int/2addr ");
OP_CODES.add("add-int/lit16 ");
OP_CODES.add("add-int/lit8 ");
OP_CODES.add("add-int ");
OP_CODES.add("add-long/2addr ");
OP_CODES.add("add-long ");
OP_CODES.add("aget-boolean ");
OP_CODES.add("aget-byte ");
OP_CODES.add("aget-char ");
OP_CODES.add("aget-object ");
OP_CODES.add("aget-short ");
OP_CODES.add("aget-wide ");
OP_CODES.add("and-int ");
OP_CODES.add("aget ");
OP_CODES.add("and-int/2addr ");
OP_CODES.add("and-int/lit16 ");
OP_CODES.add("and-int/lit8 ");
OP_CODES.add("and-long ");
OP_CODES.add("and-long/2addr ");
OP_CODES.add("aput ");
OP_CODES.add("aput-boolean ");
OP_CODES.add("aput-byte ");
OP_CODES.add("aput-char ");
OP_CODES.add("aput-object ");
OP_CODES.add("aput-short ");
OP_CODES.add("aput-wide ");
OP_CODES.add("array-length ");
OP_CODES.add("check-cast ");
OP_CODES.add("cmp-long ");
OP_CODES.add("cmpg-double ");
OP_CODES.add("cmpg-float ");
OP_CODES.add("cmpl-double ");
OP_CODES.add("cmpl-float ");
OP_CODES.add("const ");
OP_CODES.add("const-class ");
OP_CODES.add("const-string ");
OP_CODES.add("const-string-jumbo ");
OP_CODES.add("const-wide ");
OP_CODES.add("const-wide/16 ");
OP_CODES.add("const-wide/32 ");
OP_CODES.add("const-wide/high16 ");
OP_CODES.add("const/16 ");
OP_CODES.add("const/4 ");
OP_CODES.add("const/high16 ");
OP_CODES.add("div-double ");
OP_CODES.add("div-double/2addr ");
OP_CODES.add("div-float ");
OP_CODES.add("div-float/2addr ");
OP_CODES.add("div-int ");
OP_CODES.add("div-int/2addr ");
OP_CODES.add("div-int/lit16 ");
OP_CODES.add("div-int/lit8 ");
OP_CODES.add("div-long ");
OP_CODES.add("div-long/2addr ");
OP_CODES.add("double-to-float ");
OP_CODES.add("double-to-int ");
OP_CODES.add("double-to-long ");
OP_CODES.add("execute-inline ");
OP_CODES.add("fill-array-data ");
OP_CODES.add("filled-new-array ");
OP_CODES.add("filled-new-array/range ");
OP_CODES.add("float-to-double ");
OP_CODES.add("float-to-int ");
OP_CODES.add("float-to-long ");
OP_CODES.add("goto ");
OP_CODES.add("goto/16 ");
OP_CODES.add("goto/32 ");
OP_CODES.add("if-eq ");
OP_CODES.add("if-eqz ");
OP_CODES.add("if-ge ");
OP_CODES.add("if-gez ");
OP_CODES.add("if-gt ");
OP_CODES.add("if-gtz ");
OP_CODES.add("if-le ");
OP_CODES.add("if-lez ");
OP_CODES.add("if-lt ");
OP_CODES.add("if-ltz ");
OP_CODES.add("if-ne ");
OP_CODES.add("if-nez ");
OP_CODES.add("iget-boolean ");
OP_CODES.add("iget-byte ");
OP_CODES.add("iget-char ");
OP_CODES.add("iget-object-quick ");
OP_CODES.add("iget-object ");
OP_CODES.add("iget-quick ");
OP_CODES.add("iget-short ");
OP_CODES.add("iget-wide-quick ");
OP_CODES.add("iget-wide ");
OP_CODES.add("iget ");
OP_CODES.add("instance-of ");
OP_CODES.add("int-to-byte ");
OP_CODES.add("int-to-char ");
OP_CODES.add("int-to-double ");
OP_CODES.add("int-to-float ");
OP_CODES.add("int-to-long ");
OP_CODES.add("int-to-short ");
OP_CODES.add("invoke-direct ");
OP_CODES.add("invoke-direct-empty ");
OP_CODES.add("invoke-direct/range ");
OP_CODES.add("invoke-interface ");
OP_CODES.add("invoke-interface/range ");
OP_CODES.add("invoke-static ");
OP_CODES.add("invoke-static/range ");
OP_CODES.add("invoke-super ");
OP_CODES.add("invoke-super-quick ");
OP_CODES.add("invoke-super-quick/range ");
OP_CODES.add("invoke-super/range ");
OP_CODES.add("invoke-virtual ");
OP_CODES.add("invoke-virtual-quick ");
OP_CODES.add("invoke-virtual-quick/range ");
OP_CODES.add("invoke-virtual/range ");
OP_CODES.add("iput ");
OP_CODES.add("iput-boolean ");
OP_CODES.add("iput-byte ");
OP_CODES.add("iput-char ");
OP_CODES.add("iput-object ");
OP_CODES.add("iput-object-quick ");
OP_CODES.add("iput-quick ");
OP_CODES.add("iput-short ");
OP_CODES.add("iput-wide ");
OP_CODES.add("iput-wide-quick ");
OP_CODES.add("long-to-double ");
OP_CODES.add("long-to-float ");
OP_CODES.add("long-to-int ");
OP_CODES.add("monitor-enter ");
OP_CODES.add("monitor-exit ");
OP_CODES.add("move ");
OP_CODES.add("move-exception ");
OP_CODES.add("move-object ");
OP_CODES.add("move-object/16 ");
OP_CODES.add("move-object/from16 ");
OP_CODES.add("move-result ");
OP_CODES.add("move-result-object ");
OP_CODES.add("move-result-wide ");
OP_CODES.add("move-wide ");
OP_CODES.add("move-wide/16 ");
OP_CODES.add("move-wide/from16 ");
OP_CODES.add("move/16 ");
OP_CODES.add("move/from16 ");
OP_CODES.add("mul-double ");
OP_CODES.add("mul-double/2addr ");
OP_CODES.add("mul-float ");
OP_CODES.add("mul-float/2addr ");
OP_CODES.add("mul-int ");
OP_CODES.add("mul-int/2addr ");
OP_CODES.add("mul-int/lit8 ");
OP_CODES.add("mul-int/lit16 ");
OP_CODES.add("mul-long ");
OP_CODES.add("mul-long/2addr ");
OP_CODES.add("neg-double ");
OP_CODES.add("neg-float ");
OP_CODES.add("neg-int ");
OP_CODES.add("neg-long ");
OP_CODES.add("new-array ");
OP_CODES.add("new-instance ");
OP_CODES.add("nop ");
OP_CODES.add("not-int ");
OP_CODES.add("not-long ");
OP_CODES.add("or-int ");
OP_CODES.add("or-int/2addr ");
OP_CODES.add("or-int/lit16 ");
OP_CODES.add("or-int/lit8 ");
OP_CODES.add("or-long ");
OP_CODES.add("or-long/2addr ");
OP_CODES.add("rem-double ");
OP_CODES.add("rem-double/2addr ");
OP_CODES.add("rem-float ");
OP_CODES.add("rem-float/2addr ");
OP_CODES.add("rem-int ");
OP_CODES.add("rem-int/2addr ");
OP_CODES.add("rem-int/lit16 ");
OP_CODES.add("rem-int/lit8 ");
OP_CODES.add("rem-long ");
OP_CODES.add("rem-long/2addr ");
OP_CODES.add("return-void");
OP_CODES.add("return-object ");
OP_CODES.add("return-wide ");
OP_CODES.add("return");
OP_CODES.add("sget ");
OP_CODES.add("sget-boolean ");
OP_CODES.add("sget-byte ");
OP_CODES.add("sget-char ");
OP_CODES.add("sget-object ");
OP_CODES.add("sget-short ");
OP_CODES.add("sget-wide ");
OP_CODES.add("shl-int ");
OP_CODES.add("shl-int/2addr ");
OP_CODES.add("shl-int/lit8 ");
OP_CODES.add("shl-long ");
OP_CODES.add("shl-long/2addr ");
OP_CODES.add("shr-int ");
OP_CODES.add("shr-int/2addr ");
OP_CODES.add("shr-int/lit8 ");
OP_CODES.add("shr-long ");
OP_CODES.add("shr-long/2addr ");
OP_CODES.add("sparse-switch ");
OP_CODES.add("sput ");
OP_CODES.add("sput-boolean ");
OP_CODES.add("sput-byte ");
OP_CODES.add("sput-char ");
OP_CODES.add("sput-object ");
OP_CODES.add("sput-short ");
OP_CODES.add("sput-wide ");
OP_CODES.add("sub-double ");
OP_CODES.add("sub-double/2addr ");
OP_CODES.add("sub-float ");
OP_CODES.add("sub-float/2addr ");
OP_CODES.add("sub-int ");
OP_CODES.add("sub-int/2addr ");
OP_CODES.add("sub-int/lit16 ");
OP_CODES.add("sub-int/lit8 ");
OP_CODES.add("sub-long ");
OP_CODES.add("sub-long/2addr ");
OP_CODES.add("throw ");
OP_CODES.add("ushr-int ");
OP_CODES.add("ushr-int/2addr ");
OP_CODES.add("ushr-int/lit8 ");
OP_CODES.add("ushr-long ");
OP_CODES.add("ushr-long/2addr ");
OP_CODES.add("xor-int ");
OP_CODES.add("xor-int/2addr ");
OP_CODES.add("xor-int/lit16 ");
OP_CODES.add("xor-int/lit8 ");
OP_CODES.add("xor-long ");
OP_CODES.add("xor-long/2addr ");
// annotations
ANNOTATIONS.add(".locals ");
ANNOTATIONS.add(".local ");
ANNOTATIONS.add(".parameter ");
ANNOTATIONS.add(".prologue");
ANNOTATIONS.add(".line ");
ANNOTATIONS.add(".class ");
ANNOTATIONS.add(".super ");
ANNOTATIONS.add(".source ");
ANNOTATIONS.add("# instance ");
ANNOTATIONS.add("# virtual");
ANNOTATIONS.add("# direct");
ANNOTATIONS.add(".method ");
ANNOTATIONS.add(".end ");
ANNOTATIONS.add(".field ");
ANNOTATIONS.add(".catch ");
ANNOTATIONS.add(".catchall ");
ANNOTATIONS.add(":try");
ANNOTATIONS.add("# static ");
ANNOTATIONS.add("# annotations");
ANNOTATIONS.add(".annotation ");
}
}