混淆相关测试demo,混淆相关配置和规则的demo验证测试

混淆相关配置和规则的demo验证测试

HarmonyOS
2024-05-23 21:38:39
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
五行缺踹

核心代码解释

混淆配置:

# 开启属性混淆 
# 混淆字符串字面量属性名 
-enable-property-obfuscation 
-enable-string-property-obfuscation 
# 关闭混淆配置 
#-disable-obfuscation 
# 开启文件/文件夹名称混淆 
-enable-filename-obfuscation 
# 开启顶层作用域名称混淆 
-enable-toplevel-obfuscation 
# 删除所有console.*语句 
-remove-log 
# 去除不必要的空格符和所有的换行符,所有代码会被压缩到一行 
#-compact 
​ 
#保留选项 
#保留属性名 
-keep-property-name 
myson 
#保留顶层作用域的名称 
-keep-global-name 
youson 
#保留的文件/文件夹名称(无需文件后缀) 
-keep-file-name 
moduleName 
#保留指定路径的.d.ts文件中的名称 
#-keep-dts
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.

可在生成的js和.d.ets文件中查看是否混淆

Son.ets包含以下混淆测试:

//直接导出类的属性混淆测试(`import/export`直接导入或导出的类或对象的属性名不会被混淆) 
//用于注释删除测试1 
/*用于注释删除测试2*/ 
//直接导出类的方法混淆测试 
//function.toString函数打印源代码测试 
//console删除测试 
//非直接导出方法混淆测试 
//API参数混淆测试(系统API列表中的名称不会被混淆) 
//保留文件/文件夹名称测试 
//保留顶层作用域测试 
//保留属性测试 
//interface混淆之后声明是否存在测试
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

sonlibrary的MainPage.ets包含以下混淆测试:

//ArkUI组件中的属性名不会被混淆测试
  • 1.

library1的IndirectExportTest.ts包含以下测试:

//间接导出混淆测试
  • 1.

library1的PrivateTsTest.ts包含以下测试:

//private混淆后消失bug测试
  • 1.

library1的SysAPITest.ets包含以下测试:

//API系统参数混淆测试
  • 1.

son.ets

import {Father} from 'fatherlibrary' 
​ 
export class Son extends Father{ 
name: string = ""; 
age: number = 0; 
//直接导出类的属性混淆测试(`import/export`直接导入或导出的类或对象的属性名不会被混淆) 
aa: number = 0; 
​ 
//用于注释删除测试1 
/*用于注释删除测试2*/ 
constructor() { 
  super(); 
} 
​ 
//直接导出类的方法混淆测试 
bbb(): string{ 
  return ""; 
} 
​ 
toString(): string{ 
  //function.toString函数打印源代码测试 
  aaa(); 
  console.log(aaa.toString()); 
​ 
  ccc(1); 
  init(); 
  new youson(); 
​ 
  //console删除测试 
  console.log("???"); 
  let xxxxxxxx: string = ""; 
  return this.name+this.age+"father"; 
} 
} 
​ 
//非直接导出方法混淆测试 
function ccc(aa: number){ 
} 
​ 
//function.toString函数打印源代码 
function aaa() { 
"show source" 
let xx: string = ""; 
} 
​ 
//API参数混淆测试(系统API列表中的名称不会被混淆) 
function init(): string{ 
return ""; 
} 
​ 
//保留文件/文件夹名称测试 
const moduleName = './file2' 
​ 
//保留顶层作用域测试 
class youson{ 
//保留属性测试 
myson: string = "x"; 
​ 
constructor() { 
} 
} 
//interface混淆之后声明是否存在测试 
export interface InterfaceTest{ 
axx: number; 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.

实现效果

适配版本

DevEco Studio Version: 4.1.1.300

SDK:HarmoneyOS 4.0.0.43

分享
微博
QQ
微信
回复
2024-05-24 16:42:03
相关问题
HarmonyOS 混淆相关问题
773浏览 • 1回复 待解决
HarmonyOS 混淆相关场景咨询
929浏览 • 1回复 待解决
HarmonyOS关于混淆强度相关问题
1266浏览 • 1回复 待解决
HarmonyOS 混淆规则问题
766浏览 • 1回复 待解决
HarmonyOS sdk混淆规则
666浏览 • 1回复 待解决
HarmonyOS Mqtt相关demo
831浏览 • 1回复 待解决
HarmonyOS 混淆规则细节疑惑
621浏览 • 1回复 待解决
HarmonyOS 模块之间混淆规则
697浏览 • 1回复 待解决
HarmonyOS 录音语音播放相关demo
715浏览 • 1回复 待解决
HarmonyOS 录制相关demo
662浏览 • 1回复 待解决
HarmonyOS har包混淆规则
959浏览 • 1回复 待解决
HarmonyOS 手机蓝牙相关demo
888浏览 • 1回复 待解决
HarmonyOS 上传文件相关Demo
1354浏览 • 1回复 待解决
HarmonyOS 音频录制相关demo
826浏览 • 1回复 待解决
HarmonyOS 日历门票相关demo
767浏览 • 1回复 待解决
HarmonyOS 多媒体相关demo
835浏览 • 1回复 待解决
HarmonyOS 新闻相关DEMO参考
694浏览 • 1回复 待解决
HarmonyOS 蓝牙ble相关demo
847浏览 • 1回复 待解决
HarmonyOS 下载文件相关demo
664浏览 • 1回复 待解决
HarmonyOS 活体认证相关demo
678浏览 • 1回复 待解决
HarmonyOS 混淆规则是否有问题
602浏览 • 1回复 待解决
运行时AOP插桩demo测试
1904浏览 • 1回复 待解决