From 6d4807ad27416f80ddcaefa582781e4417d9b826 Mon Sep 17 00:00:00 2001 From: Irkam Date: Mon, 1 Feb 2021 07:50:30 -0500 Subject: [PATCH] Initial commit --- Dockerfile | 31 +++++++++++++++++++++++++++++++ README.md | 19 +++++++++++++++++++ run.sh | 21 +++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 run.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8fc9db1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +FROM fedora +#FROM docker.pkg.github.com/checkmarx-ts/cxcli-docker/cxcli:2020.4.4 + +RUN yum install -y zip unzip java-latest-openjdk + +RUN adduser -d /home/cxjadx cxjadx + + +# Get CxCLI from Checkmarx +ADD https://download.checkmarx.com/9.0.0/Plugins/CxConsolePlugin-2021.1.1.zip /tmp/cxcli.zip +RUN unzip /tmp/cxcli.zip -d /opt/cxcli +RUN rm /tmp/cxcli.zip + +# Get Jadx +ADD https://github.com/skylot/jadx/releases/download/v1.2.0/jadx-1.2.0.zip /tmp/jadx.zip +RUN unzip /tmp/jadx.zip -d /opt/jadx +RUN rm /tmp/jadx.zip + +# Create environment +RUN mkdir apk +VOLUME ["/home/cxjadx/apk"] +RUN chown -R cxjadx:cxjadx /home/cxjadx/apk + +ADD run.sh /home/cxjadx/run.sh +RUN chown cxjadx:cxjadx /home/cxjadx/run.sh +RUN chmod a+x /home/cxjadx/run.sh + +WORKDIR /home/cxjadx +USER cxjadx + +CMD ./run.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..601ca7b --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +APK2Checkmarx +============= + +Usage +----- + + git clone + cd apk2cx + mkdir apk + docker build -t apk2cx . + docker run --rm -v /path/to/your/target.apk:/home/cxjadx/apk \ + -e APKPATH="apk/target.apk" \ + -e CX_SERVER="https://checkmarx.local/" \ + -e CX_USER="foobar" \ + -e CX_PASSWORD="FOOBAR" \ + -e CX_TEAM="CxServer\\SP\\Foobar\\Baz" \ + -e CX_PROJECTNAME="FooProject-branch" \ + apk2cx:latest + diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..44bcdb1 --- /dev/null +++ b/run.sh @@ -0,0 +1,21 @@ +#/bin/bash + +export JAVA_HOME="/etc/alternatives/jre" +EXCLUDE="!**/META-INF, !**/assets, !**/lib, !**/res, !**/junit, !**/java/android/*, !**/java/androidx, !**/java/kotlin, !**/java/kotlinx, !**/java/google, !**java/com/google, *.dex" +tmpdir=$(mktemp -d) +echo "INFO - Decompiling $APKPATH to $tmpdir" +echo "INFO - Excluding $EXCLUDE" + +/opt/jadx/bin/jadx --deobf --no-res -e -j 10 --output-dir "$tmpdir" $APKPATH + +echo "INFO - Checkmarx Scanning project $CX_TEAM\\$CX_PROJECTNAME on host $CX_USER@$CX_SERVER" +java -Xmx2048m -jar /opt/cxcli/CxConsolePlugin-CLI-2021.1.1.jar Scan \ + -CxServer $CX_SERVER \ + -CxUser $CX_USER \ + -CxPassword $CX_PASSWORD \ + -ProjectName "$CX_TEAM\\$CX_PROJECTNAME" \ + -IncludeExcludePattern "$EXCLUDE" \ + -LocationType folder \ + -LocationPath $tmpdir/src \ + -Comment "$CX_COMMENT" -verbose +