javascript-obfuscator / javascript-obfuscator/webpack-obfuscator
Obfuscation doesn't work on ionic angular mobile iOS app
- Ngôn ngữ chính
- TypeScript
- Star
- 928
- Fork
- 92
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
I am using
"webpack-obfuscator": "^3.5.1"
My goal is to obfuscate my 'ionic build' output folder called www. This www folder is archived in the .ipa the iPhone executable. The source code in that www folder which mainly consists of html, css and js files. This is readable and its readability can be avoided using obfuscation.
I have made changes in my angular.json file as follows to be able to inject web Obfuscator plugin as shown as below:
"architect": {
"build": {
"builder": "@angular-builders/custom-webpack:browser",
"options": {
"customWebpackConfig": {
"path": "./extra-webpack.config.js",
"mergeStrategies": {
"externals": "replace",
"module.rules": "append",
"plugins": "append"
}
},
"serve": {
"builder": "@angular-builders/custom-webpack:dev-server",
"options": {
"browserTarget": "app:build",
"customWebpackConfig": {
"path": "./extra-webpack.config.js",
"mergeStrategies": {
"externals": "replace",
"module.rules": "append",
"plugins": "append"
}
}
},
Nothing fancy, angular.json file finds a custom web pack json and reads the plugin from there resulting in code obfuscation. Please refer extra-webpack.config.js contents below:
var WebpackObfuscator = require('webpack-obfuscator');
const path = require('path');
module.exports = {
resolve: {},
plugins: [
new WebpackObfuscator({
rotateStringArray: true
}, ['polyfills.js'])
],
module: {
rules: [
{
test: /\.js$/,
exclude: [
path.resolve(__dirname, 'excluded_file_name.js')
],
enforce: 'post',
use: {
loader: WebpackObfuscator.loader,
options: {
rotateStringArray: true
}
}
}
]
}
}
Code obfuscation is done, the output www folder code is not readable but the app throws console errors while running which is shown as below:
2023-11-28 14:11:15.575547+0530 Digital Token[9722:1028322] ERROR: Unhandled Promise rejection: undefined is not a function (near '...iamsdk[_0x52d2dd(0x1b8)]...') ; Zone: ; Task: Promise.then ; Value: TypeError: undefined is not a function (near '...iamsdk[_0x52d2dd(0x1b8)]...') @ionic://localhost/main.js:1:15659
@ionic://localhost/main.js:1:14925
generatorResume@[native code]
_0x312057@ionic://localhost/vendor.js:3119:210
_0x2a195e@ionic://localhost/vendor.js:3119:728
@ionic://localhost/vendor.js:3119:960
l@ionic://localhost/polyfills.js:29:3107
@ionic://localhost/vendor.js:3119:543
onInvoke@ionic://localhost/vendor.js:2163:3089
@ionic://localhost/polyfills.js:14:2296
@ionic://localhost/main.js:1:14635
generatorResume@[native code]
_0x312057@ionic://localhost/vendor.js:3119:210
_0x2a195e@ionic://localhost/vendor.js:3119:728
@ionic://localhost/vendor.js:3119:960
l@ionic://localhost/polyfills.js:29:3107
@ionic://localhost/vendor.js:3119:543
callbackFromNative@ionic://localhost/cordova.js:295:63
@ionic://localhost/plugins/cordova-plugin-ionic-webview/src/www/ios/ios-wkwebview-exec.js:129:35
@ionic://localhost/polyfills.js:14:2296
@ionic://localhost/polyfills.js:29:2809
@ionic://localhost/polyfills.js:14:2965
A@ionic://localhost/polyfills.js:14:10319
promiseReactionJob@[native code]
Even If we ignore these console logs in the iOS app while running the app, the navigation stack is completely broken. The app doesn't not navigate to new screen.
Any help is appreciated. I am out of ideas here.
Thanks in advance
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu với angular.json và extra-webpack.config.js, sau đó tái hiện ionic build và kiểm tra các tệp www/main.js, vendor.js và polyfills.js được tạo ra cùng với stack trace iOS đã báo cáo. Kiểm tra cấu hình làm rối mã nào gây ra các lỗi runtime và lỗi điều hướng; hoàn tất khi ứng dụng iOS đã làm rối mã chạy và điều hướng mà không có các lỗi đó.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- angular, ios, javascript
- Lĩnh vực
- build-system, mobile-dev
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100