{"id":19281231,"url":"https://github.com/antswordproject/antsword-jsp-decoder","last_synced_at":"2025-04-22T01:30:54.893Z","repository":{"id":149886731,"uuid":"350405115","full_name":"AntSwordProject/AntSword-JSP-Decoder","owner":"AntSwordProject","description":"Jsp Decoder Source Code","archived":false,"fork":false,"pushed_at":"2021-03-23T00:59:02.000Z","size":8,"stargazers_count":16,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-01T17:52:43.999Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AntSwordProject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-22T16:01:42.000Z","updated_at":"2024-08-16T17:56:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"c4d60f70-6b08-449d-97b5-556f07bd2152","html_url":"https://github.com/AntSwordProject/AntSword-JSP-Decoder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntSwordProject%2FAntSword-JSP-Decoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntSwordProject%2FAntSword-JSP-Decoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntSwordProject%2FAntSword-JSP-Decoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntSwordProject%2FAntSword-JSP-Decoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntSwordProject","download_url":"https://codeload.github.com/AntSwordProject/AntSword-JSP-Decoder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250161938,"owners_count":21385012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T21:22:04.879Z","updated_at":"2025-04-22T01:30:54.881Z","avatar_url":"https://github.com/AntSwordProject.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AntSword-JSP-Decoder 解码器模版\n\n## 编译\n\n```\npython build.py\n```\n\n## 使用\n\n将 `dist/` 目录生成的 js 覆盖 `antSword/source/core/jsp/decoder/` 目录下的文件\n\n也可以直接从 https://github.com/AntSwordProject/AntSword-JSP-Decoder/actions/ 的 Artifacts 中下载自动编译好的版本\n\n\n## 解码器 Dev\n\n以 Reverse 解码器为例说明：\n\n\u003e 该解码器的功能是将返回包的数据反转\n\n编写 AsoutputReverse.java 内容如下:\n\n```java\npublic class AsoutputReverse {\n  String res;\n\n  public AsoutputReverse(String str) {\n    // 这里编写对 str 处理的逻辑, 最后将值传给 res\n    res = new StringBuffer(str).reverse().toString();\n  }\n\n  // 请保持 toString 方法, 不要修改内容\n  @Override\n  public String toString() {\n    return res;\n  }\n}\n```\n\n编译，并获取 .class 文件 base64 后的内容, 注意只有一行\n\n```bash\n$ javac AsoutputReverse.java\n$ base64 -w 0 AsoutputReverse.class\n```\n\n打开 AntSword 进入编码设置，创建「解码器」，内容如下:\n\n```\n/**\n * JSP::reverse 解码器\n */\n\n 'use strict';\n\n module.exports = {\n   asoutput: () =\u003e {\n     // 这里是你的 .class 文件的 base64 后的内容\n     return `yv66vgAAADMAHgoACAATBwAUCgACABUKAAIAFgoAAgAXCQAHABgHA...`;\n   },\n   decode_buff: (data) =\u003e {\n     // 这里是解返回包的逻辑\n     return Buffer.from(data).reverse();\n   }\n }\n```\n\n注:\n\n* 如果需要使用 build.py 自动编译，需要将 .java 文件放在 src/ 目录下，并以 `Asoutput` 作为文件名前缀\n* 编译字节码时使用的 jdk 版本影响着编码器的普适性，建议在 jdk5/jdk6 等低版本进行编译\n\n\n## 测试\n\n使用 `AsTest.java` 用来测试你写好的解码器类是否如预期\n\n```\n$ javac AsTest.java\n$ java AsTest src/AsoutputReverse.class\n\n[+] Plain Text:\nThis is AntSword JSP Decoder Test Message.\n\n[+] Asoutput:\n.egasseM tseT redoceD PSJ drowStnA si sihT\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantswordproject%2Fantsword-jsp-decoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantswordproject%2Fantsword-jsp-decoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantswordproject%2Fantsword-jsp-decoder/lists"}