Merge remote-tracking branch 'origin/main'

This commit is contained in:
yelochick 2025-06-23 09:41:08 +08:00
commit 3388fad6fc
3 changed files with 12 additions and 57 deletions

View File

@ -1,55 +0,0 @@
name: Maven Build and Release
on:
workflow_dispatch:
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: Build with Maven
run: mvn clean package
- name: Check Latest Release
id: check_latest_release
run: |
LATEST_RELEASE=$(curl -s "https://api.github.com/repos/${{ github.repository }}/releases/latest" | jq -r .id)
echo "::set-output name=latest_release::$LATEST_RELEASE"
- name: Delete Previous Release
if: steps.check_latest_release.outputs.latest_release != 'null'
run: |
# Get the latest release ID
RELEASE_ID=$(curl -s "https://api.github.com/repos/${{ github.repository }}/releases/latest" | jq -r .id)
# Delete the release
curl -X DELETE -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/${{ github.repository }}/releases/${RELEASE_ID}"
- name: Set up Git
run: |
git config user.email "novice88@users.noreply.github.com"
git config user.name "novitechie"
- name: Create Tag
run: git tag -a v${{ github.run_number }} -m "release"
- name: Push Tag
run: git push origin v${{ github.run_number }}
- name: Create Release
id: create_release
uses: ncipollo/release-action@v1
with:
artifacts: "target/privacy.jar"
tag: release

View File

@ -1,5 +1,4 @@
plugin-privacy plugin-privacy
A plugin for the ja-netfilter,it protects our VM options file from being read by malicious plugins A plugin for the ja-netfilter,it protects our VM options file from being read by malicious plugins
Use the `mvn clean package` command to compile and use privacy.jar file! Use the `mvn clean package` command to compile and use privacy.jar file!

View File

@ -23,11 +23,22 @@ public class VMOptionsTransformer implements MyTransformer {
InsnList list = new InsnList(); InsnList list = new InsnList();
list.add(new MethodInsnNode(INVOKESTATIC, "com/novitechie/StackTraceRule", "check", "()Z", false)); list.add(new MethodInsnNode(INVOKESTATIC, "com/novitechie/StackTraceRule", "check", "()Z", false));
LabelNode labelNode = new LabelNode(); LabelNode labelNode = new LabelNode();
list.add(new JumpInsnNode(IFEQ,labelNode)); list.add(new JumpInsnNode(IFEQ, labelNode));
list.add(new InsnNode(ACONST_NULL)); list.add(new InsnNode(ACONST_NULL));
list.add(new InsnNode(ARETURN)); list.add(new InsnNode(ARETURN));
list.add(labelNode); list.add(labelNode);
m.instructions.insert(list); m.instructions.insert(list);
} else if ("readOption".equals(m.name) && "(Ljava/lang/String;Z)Ljava/lang/String;".equals(m.desc)) {
InsnList list = new InsnList();
LabelNode continueLabel = new LabelNode();
list.add(new VarInsnNode(ALOAD, 0));
list.add(new LdcInsnNode("javaagent"));
list.add(new MethodInsnNode(INVOKEVIRTUAL, "java/lang/String", "contains", "(Ljava/lang/CharSequence;)Z", false));
list.add(new JumpInsnNode(IFEQ, continueLabel));
list.add(new InsnNode(ACONST_NULL));
list.add(new InsnNode(ARETURN));
list.add(continueLabel);
m.instructions.insert(list);
} }
} }
ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS); ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS);