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

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

HarmonyOS
2024-05-23 21:38:39
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zdl2000

核心代码解释

混淆配置:

# 开启属性混淆 
# 混淆字符串字面量属性名 
-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

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

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

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

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

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

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

//间接导出混淆测试

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

//private混淆后消失bug测试

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

//API系统参数混淆测试

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; 
}

实现效果

适配版本

DevEco Studio Version: 4.1.1.300

SDK:HarmoneyOS 4.0.0.43

分享
微博
QQ
微信
回复
2024-05-24 16:42:03
相关问题
运行时AOP插桩demo测试
427浏览 • 1回复 待解决
版本新增taskpool相关功能验证
362浏览 • 1回复 待解决
编译har,如何混淆混淆如何使用
517浏览 • 1回复 待解决
如何获取屏幕相关配置
345浏览 • 1回复 待解决
鸿蒙请求相册相机demo
4226浏览 • 1回复 待解决
so加固支持混淆逻辑
200浏览 • 1回复 待解决
打包怎么对代码进行混淆
5046浏览 • 1回复 待解决
开启混淆后,卡片加载不出来
4795浏览 • 1回复 待解决
requestPermissionsFromUser使用Demo
396浏览 • 1回复 待解决
如何判断har是否被混淆了?
339浏览 • 1回复 待解决
avplayer播放视频demo
306浏览 • 1回复 待解决
如何测试自己开发应用?
1213浏览 • 1回复 待解决
新建测试租户无法进入?
3492浏览 • 2回复 待解决
应用获取不同权限demo
423浏览 • 1回复 待解决
横竖屏旋转demo有哪些?
368浏览 • 1回复 待解决