1
Monstercat 2017-01-10 23:13:11 +08:00
Proguard+JD
|
2
Valyrian 2017-01-10 23:13:13 +08:00 2
客户看了你给混淆了再问你要不混淆的代码怎么办?
可以考虑多要点钱。。 |
3
paranoiagu OP @Valyrian 不给,关键就是不能给阿
|
4
paranoiagu OP @Monstercat 关键还能编译过吗?
|
5
rockyou12 2017-01-10 23:20:09 +08:00
看来是最开始没谈好坑爹了吧(σ-`д・´)
|
6
wdlth 2017-01-10 23:29:48 +08:00
如果原来没谈好,现在你混淆了对你也没好处,客户可以此为把柄来坑你,毕竟你不能说混淆后的代码是开发时的源代码……
|
7
ihuotui 2017-01-11 00:40:20 +08:00 via iPhone
java 注定不行,从 class 规定就确定了可以反编译
|
8
slixurd 2017-01-11 00:55:36 +08:00 2
那你就发个反编译后的代码给客户就好了= =......
|
9
wmhx 2017-01-11 00:57:43 +08:00
简单点,关键点给整成一个复杂的内部类, 这样可以编译运行,但反编译出来的代码会有少量的语法错误,
|
10
hellojinjie 2017-01-11 08:38:49 +08:00 via Android
自己写这一个变量替换工具啊,把变量都提换成 a b c d
|
11
mritd 2017-01-11 08:56:10 +08:00 via iPhone 3
混希手段还是有的……不要说从 class 就注定了不能混希……我只是提供个思路,也是前两天反编译别人代码看到的,所有类名变量名全部替换成超长的 0O0O000OO0O000O 这种玩意……其他还有 1I1II1I 这种玩意……我成功反编译……然后就看傻了
|
12
wyntergreg 2017-01-11 08:58:48 +08:00
注释全删了, JS 混淆一下就行了
|
13
depress 2017-01-11 09:21:39 +08:00 2
①注释全删
②类名、方法名、变量名写的乱七八糟 ③每个类里弄 N 多个没用的方法,在有用的方法里偶尔调用一下没用的方法,实际上调用那行什么意义都没有 ④如果后续不用维护了,把方法都合并,一个方法四五千行 混淆不了还不能恶心人么~ |
14
814084764 2017-01-11 09:30:56 +08:00
@mritd 我之前看别人混淆后的代码,全是 _ 这个玩意。。。长短还不一样。。妈蛋!
顺便问一下,哪里可以修改 proguard 的混淆的字母? |
15
scnace 2017-01-11 09:42:29 +08:00 via Android
我记得逼乎上有一个 怎样编写不可维护代码 的问答 楼主可以去看看啊(逃
|
16
baoguok 2017-01-11 09:59:00 +08:00
给就是了,代码不值钱。
合同没约定代码版权问题,那就只能给 |
17
leloext 2017-01-11 10:01:57 +08:00
@hellojinjie proguard 就可以做到这个的
|
18
Chrisplus 2017-01-11 10:26:16 +08:00
手动使用 proguard shrink & obfuscate
|
19
AlisaDestiny 2017-01-11 10:52:08 +08:00
@mritd 哈哈。这 TM 谁想出来的。真是高。 abc 还将就着能分清楚变量。要是 0O 这玩意。看的真是头疼。
|
20
mritd 2017-01-11 11:43:55 +08:00 via iPhone
@AlisaDestiny 不是头疼的问题……是根本没法看
|
22
yidinghe 2017-01-11 11:52:22 +08:00 via Android
用重构,类名手工改成 A,B,C,D,E ,包名也这样改,方法名、参数名、变量名也是。
|
23
Adia 2017-01-11 12:58:30 +08:00
Proguard 啊
|
24
Bairrfhoinn 2017-01-11 13:40:11 +08:00
|
25
liuzhen 2017-01-11 13:46:34 +08:00
|
27
nicevar 2017-01-11 14:12:19 +08:00
谈判问题啊,用技术来解决怎么行
|
29
chilaoqi 2017-01-11 14:28:04 +08:00
本来自己写的就自带混淆。。。。
|
30
yutian2211 2017-01-11 16:30:06 +08:00
hmmm....关注一下
正常给客户之后,你就不要想拿到尾款了 |
32
paranoiagu OP 谢谢各位。
|
33
imnpc 2017-01-12 13:24:15 +08:00
一般建议 O0 或者 ILil 各种混淆即可
|
34
bk201 2017-01-12 16:17:15 +08:00
反编译后的代码一般都很恶心,然后对变量做个批量替换就可以了。
|
35
virbox 2018-11-19 18:16:47 +08:00
VirboxProtector Standalone 加壳工具可对代码加密的技术有:代码混淆、代码虚拟化、代码加密。
代码混淆:利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析。 虚拟化:将指令编译为虚拟代码,放在指定虚拟机中运行,目前对指令有一定的格式要求,有的函数可能不能被保护。 代码加密:将代码块作为数据,用许可加密函数存储,程序执行到该函数时验证许可并解密,内存中不会暴露完整的代码块,目前有的函数不可添加到保护中。 Virbox Protector Standalone 将被保护的程序代码转换为虚拟机代码,程序运行时,虚拟机将模拟程序执行,进入和离开虚拟机都有高级代码混淆。虚拟机配合代码混淆可以达到很好的保护效果,尤其是开发者的私有逻辑。高级混淆利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析。应用程序的解压缩含有动态密码,让一切自动脱壳工具失效,有效的阻止.Net 、PE 程序的直接反编译。 使用 Virbox Protector Standalone 时,选择被保护的函数列表,添加需要保护的函数,可以使用性能分析功能,对程序进行分析,并选择重要的函数来保护。 性能分析:点击性能分析按钮,运行需要保护的程序,执行正常的业务操作,程序中各个函数模块调用的次数实时显示在列表中。如果当前分析的程序位为 DLL 程序,则需要选择启动主程序,主程序启动的工作目录为主程序所在目录。目前仅支持 Windows 的 exe 程序或 DLL 库。 可保护的函数列表:展示了需要保护程序的所有的函数模块,托管代码程序和非托管代码程序有细微的差别。 试用地址:shell.virbox.com |