|  |      1Monstercat      2017-01-10 23:13:11 +08:00 Proguard+JD | 
|  |      2Valyrian      2017-01-10 23:13:13 +08:00  2 客户看了你给混淆了再问你要不混淆的代码怎么办? 可以考虑多要点钱。。 | 
|      3paranoiagu OP @Valyrian 不给,关键就是不能给阿 | 
|      4paranoiagu OP @Monstercat 关键还能编译过吗? | 
|  |      5rockyou12      2017-01-10 23:20:09 +08:00 看来是最开始没谈好坑爹了吧(σ-`д・´) | 
|  |      6wdlth      2017-01-10 23:29:48 +08:00 如果原来没谈好,现在你混淆了对你也没好处,客户可以此为把柄来坑你,毕竟你不能说混淆后的代码是开发时的源代码…… | 
|  |      7ihuotui      2017-01-11 00:40:20 +08:00 via iPhone java 注定不行,从 class 规定就确定了可以反编译 | 
|  |      8slixurd      2017-01-11 00:55:36 +08:00  2 那你就发个反编译后的代码给客户就好了= =...... | 
|      9wmhx      2017-01-11 00:57:43 +08:00 简单点,关键点给整成一个复杂的内部类,  这样可以编译运行,但反编译出来的代码会有少量的语法错误, | 
|      10hellojinjie      2017-01-11 08:38:49 +08:00 via Android 自己写这一个变量替换工具啊,把变量都提换成 a  b  c  d | 
|  |      11mritd      2017-01-11 08:56:10 +08:00 via iPhone  3 混希手段还是有的……不要说从 class 就注定了不能混希……我只是提供个思路,也是前两天反编译别人代码看到的,所有类名变量名全部替换成超长的 0O0O000OO0O000O 这种玩意……其他还有 1I1II1I 这种玩意……我成功反编译……然后就看傻了 | 
|  |      12wyntergreg      2017-01-11 08:58:48 +08:00 注释全删了, JS 混淆一下就行了 | 
|  |      13depress      2017-01-11 09:21:39 +08:00  2 ①注释全删 ②类名、方法名、变量名写的乱七八糟 ③每个类里弄 N 多个没用的方法,在有用的方法里偶尔调用一下没用的方法,实际上调用那行什么意义都没有 ④如果后续不用维护了,把方法都合并,一个方法四五千行 混淆不了还不能恶心人么~ | 
|      14814084764      2017-01-11 09:30:56 +08:00 @mritd 我之前看别人混淆后的代码,全是 _ 这个玩意。。。长短还不一样。。妈蛋! 顺便问一下,哪里可以修改 proguard 的混淆的字母? | 
|      15scnace      2017-01-11 09:42:29 +08:00 via Android 我记得逼乎上有一个 怎样编写不可维护代码  的问答  楼主可以去看看啊(逃 | 
|  |      16baoguok      2017-01-11 09:59:00 +08:00 给就是了,代码不值钱。 合同没约定代码版权问题,那就只能给 | 
|  |      17leloext      2017-01-11 10:01:57 +08:00 @hellojinjie proguard 就可以做到这个的 | 
|  |      18Chrisplus      2017-01-11 10:26:16 +08:00 手动使用 proguard shrink & obfuscate | 
|  |      19AlisaDestiny      2017-01-11 10:52:08 +08:00 @mritd 哈哈。这 TM 谁想出来的。真是高。 abc 还将就着能分清楚变量。要是 0O 这玩意。看的真是头疼。 | 
|  |      20mritd      2017-01-11 11:43:55 +08:00 via iPhone @AlisaDestiny 不是头疼的问题……是根本没法看 | 
|  |      22yidinghe      2017-01-11 11:52:22 +08:00 via Android 用重构,类名手工改成 A,B,C,D,E ,包名也这样改,方法名、参数名、变量名也是。 | 
|  |      23Adia      2017-01-11 12:58:30 +08:00 Proguard 啊 | 
|      24Bairrfhoinn      2017-01-11 13:40:11 +08:00 | 
|  |      25liuzhen      2017-01-11 13:46:34 +08:00 | 
|      27nicevar      2017-01-11 14:12:19 +08:00 谈判问题啊,用技术来解决怎么行 | 
|  |      29chilaoqi      2017-01-11 14:28:04 +08:00 本来自己写的就自带混淆。。。。 | 
|  |      30yutian2211      2017-01-11 16:30:06 +08:00 hmmm....关注一下 正常给客户之后,你就不要想拿到尾款了 | 
|      32paranoiagu OP 谢谢各位。 | 
|  |      33imnpc      2017-01-12 13:24:15 +08:00 一般建议 O0  或者 ILil 各种混淆即可 | 
|  |      34bk201      2017-01-12 16:17:15 +08:00 反编译后的代码一般都很恶心,然后对变量做个批量替换就可以了。 | 
|  |      35virbox      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 |