Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【Plugin】Vite Javascript obfuscator #11

Closed
5 tasks done
z0ffy opened this issue Oct 25, 2024 · 12 comments
Closed
5 tasks done

【Plugin】Vite Javascript obfuscator #11

z0ffy opened this issue Oct 25, 2024 · 12 comments

Comments

@z0ffy
Copy link
Owner

z0ffy commented Oct 25, 2024

适用于Vite环境的JavaScript混淆插件

仓库地址:vite-plugin-bundle-obfuscator

⭐️ 特性

  • ⚡ 支持 Vite 项目中的 JavaScript 混淆。
  • 🚀 多线程支持,以获得更好的性能。
  • ⚙️ 可定制的混淆器选项,以满足您的需求。
  • 🛡️ 自动排除 node_modules。
  • 📦 支持 node_modules 拆分块。

⚠️ 注意

  • 如果混淆选项stringArray为true。
    • 您的结果可能会丢失一些捆绑包(在__vite__mapDeps数组中)。
    • 我正在寻找一个准确的案例。
  • 如果打包过程中出现内存溢出。修改打包命令为:cross-env NODE_OPTIONS=--max-old-space-size=8192 VITE_CJS_IGNORE_WARNING=true vite build,其中 max-old-space-size 根据机器配置自行设置。
  • 在设置 node_modules 分包时,请把准确的包名前置。例如:["vue-router", "vue"],"vue"可以同时匹配到 vue 以及 vue-router。

🌐 在线示例

Vite - Vanilla
Vite - Vue
Vite - React
Vite - PReact
Vite - lit
Vite - Svelte
Vite - Solid
Vite - Qwik
✦ ...

📦 安装

# 使用npm
npm install vite-plugin-bundle-obfuscator -D

# 使用pnpm
pnpm add vite-plugin-bundle-obfuscator -D

# 使用yarn
yarn add vite-plugin-bundle-obfuscator -D

👨‍💻 使用

  1. 使用您首选的软件包管理器安装插件。
  2. 在vite.config.js中注册插件。
  3. 自定义混淆器配置或使用默认选项。

示例:

import vitePluginBundleObfuscator from 'vite-plugin-bundle-obfuscator';

const defaultObfuscatorConfig = {
  excludes: [],
  enable: true,
  log: true,
  autoExcludeNodeModules: false,
  threadPool: false,
  options: {
    compact: true,
    controlFlowFlattening: true,
    controlFlowFlatteningThreshold: 1,
    deadCodeInjection: false,
    debugProtection: false,
    debugProtectionInterval: 0,
    disableConsoleOutput: false,
    identifierNamesGenerator: 'hexadecimal',
    log: false,
    numbersToExpressions: false,
    renameGlobals: false,
    selfDefending: true,
    simplify: true,
    splitStrings: false,
    stringArray: false,
    stringArrayCallsTransform: false,
    stringArrayCallsTransformThreshold: 0.5,
    stringArrayEncoding: [],
    stringArrayIndexShift: true,
    stringArrayRotate: true,
    stringArrayShuffle: true,
    stringArrayWrappersCount: 1,
    stringArrayWrappersChainedCalls: true,
    stringArrayWrappersParametersMaxCount: 2,
    stringArrayWrappersType: 'variable',
    stringArrayThreshold: 0.75,
    unicodeEscapeSequence: false,
  }
};

export default {
  plugins: [
    // vitePluginBundleObfuscator()
    vitePluginBundleObfuscator(defaultObfuscatorConfig)
  ]
};
@z0ffy z0ffy closed this as completed Oct 25, 2024
@z0ffy z0ffy changed the title 适用于Vite环境的JavaScript混淆插件 vite-plugin-bundle-obfuscator Oct 25, 2024
@peichen-user
Copy link

打包之后样式会丢失,有解决方法嘛

@z0ffy
Copy link
Owner Author

z0ffy commented Oct 25, 2024

打包之后样式会丢失,有解决方法嘛

可以暂时先不开stringArray。开启后丢失我还在解决

@z0ffy z0ffy changed the title vite-plugin-bundle-obfuscator vite-plugin-javascript-obfuscator Oct 25, 2024
@peichen-user
Copy link

打包之后样式会丢失,有解决方法嘛

可以暂时先不开stringArray。开启后丢失我还在解决

已收藏,等你好消息

@z0ffy
Copy link
Owner Author

z0ffy commented Oct 25, 2024

打包之后样式会丢失,有解决方法嘛

可以暂时先不开stringArray。开启后丢失我还在解决

已收藏,等你好消息

好的。 https://github.com/z0ffy/vite-plugin-bundle-obfuscator 这个是我的仓库有新版本会及时更新,可以点个star,watch什么的。这个issue是我的博客,也会同步更新。

@peichen-user
Copy link

打包之后样式会丢失,有解决方法嘛

可以暂时先不开stringArray。开启后丢失我还在解决

已收藏,等你好消息

好的。 https://github.com/z0ffy/vite-plugin-bundle-obfuscator 这个是我的仓库有新版本会及时更新,可以点个star,watch什么的。这个issue是我的博客,也会同步更新。

okk

打包之后样式会丢失,有解决方法嘛

可以暂时先不开stringArray。开启后丢失我还在解决

已收藏,等你好消息

好的。 https://github.com/z0ffy/vite-plugin-bundle-obfuscator 这个是我的仓库有新版本会及时更新,可以点个star,watch什么的。这个issue是我的博客,也会同步更新。

@peichen-user
Copy link

还有个问题不知道你有没有遇到过,就是h5端上传图片,需求是上传图片时只能从相册选择,不允许用相机拍照上传。我用的组件是van-uploader ,因为有外部浏览器打开页面的情况,所以这个无法通过webView去控制,只能我h5这边去做。目前我试了很多种方法,都无法禁用掉相机拍照功能。你能不能也帮忙看看这个

@z0ffy
Copy link
Owner Author

z0ffy commented Oct 25, 2024

还有个问题不知道你有没有遇到过,就是h5端上传图片,需求是上传图片时只能从相册选择,不允许用相机拍照上传。我用的组件是van-uploader ,因为有外部浏览器打开页面的情况,所以这个无法通过webView去控制,只能我h5这边去做。目前我试了很多种方法,都无法禁用掉相机拍照功能。你能不能也帮忙看看这个

你可以创建一个仓库,给我一个最小化的demo,然后md里详细描述一下问题,我抽空帮你看下。

@z0ffy z0ffy changed the title vite-plugin-javascript-obfuscator vite plugin javascript obfuscator Oct 26, 2024
@peichen-user
Copy link

还有个问题不知道你有没有遇到过,就是h5端上传图片,需求是上传图片时只能从相册选择,不允许用相机拍照上传。我用的组件是van-uploader ,因为有外部浏览器打开页面的情况,所以这个无法通过webView去控制,只能我h5这边去做。目前我试了很多种方法,都无法禁用掉相机拍照功能。你能不能也帮忙看看这个

你可以创建一个仓库,给我一个最小化的demo,然后md里详细描述一下问题,我抽空帮你看下。

哈喽,我把demo上传到我的主页了,你也可以直接git clone [email protected]:peichen-user/peichen_store.git
需求也已写明,麻烦有空能帮我看下啊。万分感谢

@z0ffy
Copy link
Owner Author

z0ffy commented Oct 28, 2024

还有个问题不知道你有没有遇到过,就是h5端上传图片,需求是上传图片时只能从相册选择,不允许用相机拍照上传。我用的组件是van-uploader ,因为有外部浏览器打开页面的情况,所以这个无法通过webView去控制,只能我h5这边去做。目前我试了很多种方法,都无法禁用掉相机拍照功能。你能不能也帮忙看看这个

你可以创建一个仓库,给我一个最小化的demo,然后md里详细描述一下问题,我抽空帮你看下。

哈喽,我把demo上传到我的主页了,你也可以直接git clone [email protected]:peichen-user/peichen_store.git 需求也已写明,麻烦有空能帮我看下啊。万分感谢

这个没办法一步到位直接打开相册的。

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/input/file#使用文件输入

image

@peichen-user
Copy link

peichen-user commented Oct 28, 2024 via email

@z0ffy
Copy link
Owner Author

z0ffy commented Oct 28, 2024

也不是一步到位打开相册,只需要不要出现拍照,或者相机这个功能选项就好。我今天也尝试了原生input写法,ios上没办法实现

---- Replied Message ---- | From | @.> | | Date | 10/28/2024 15:07 | | To | @.> | | Cc | peichen-user @.>, Comment @.> | | Subject | Re: [z0ffy/z0ffy.github.io] vite plugin javascript obfuscator (Issue #11) | 还有个问题不知道你有没有遇到过,就是h5端上传图片,需求是上传图片时只能从相册选择,不允许用相机拍照上传。我用的组件是van-uploader ,因为有外部浏览器打开页面的情况,所以这个无法通过webView去控制,只能我h5这边去做。目前我试了很多种方法,都无法禁用掉相机拍照功能。你能不能也帮忙看看这个 你可以创建一个仓库,给我一个最小化的demo,然后md里详细描述一下问题,我抽空帮你看下。 哈喽,我把demo上传到我的主页了,你也可以直接git clone @.:peichen-user/peichen_store.git 需求也已写明,麻烦有空能帮我看下啊。万分感谢 这个没办法一步到位直接打开相册的。 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/input/file#使用文件输入 image.png (view on web) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.>

我感觉,你这个需求是没办法搞的。如果是自己的app内置的webview可以搞。

@peichen-user
Copy link

也不是一步到位打开相册,只需要不要出现拍照,或者相机这个功能选项就好。我今天也尝试了原生input写法,ios上没办法实现

---- Replied Message ---- | From | @.> | | Date | 10/28/2024 15:07 | | To | _@**._> | | Cc | peichen-user _@.>, Comment @._> | | Subject | Re: [z0ffy/z0ffy.github.io] vite plugin javascript obfuscator (Issue #11) | 还有个问题不知道你有没有遇到过,就是h5端上传图片,需求是上传图片时只能从相册选择,不允许用相机拍照上传。我用的组件是van-uploader ,因为有外部浏览器打开页面的情况,所以这个无法通过webView去控制,只能我h5这边去做。目前我试了很多种方法,都无法禁用掉相机拍照功能。你能不能也帮忙看看这个 你可以创建一个仓库,给我一个最小化的demo,然后md里详细描述一下问题,我抽空帮你看下。 哈喽,我把demo上传到我的主页了,你也可以直接git clone _@.:peichen-user/peichen_store.git 需求也已写明,麻烦有空能帮我看下啊。万分感谢 这个没办法一步到位直接打开相册的。 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/input/file#使用文件输入 image.png (view on web) — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.**_>

我感觉,你这个需求是没办法搞的。如果是自己的app内置的webview可以搞。

确实,我从上周就开始搞,试了很多方法。外部浏览器打开的页面确实没办法解决

@z0ffy z0ffy changed the title vite plugin javascript obfuscator 【Plugin】vite javascript obfuscator Nov 4, 2024
@z0ffy z0ffy changed the title 【Plugin】vite javascript obfuscator 【Plugin】Vite Javascript obfuscator Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants