js 反调试 怎么实现?

2017-03-18 18:17:47 +08:00
 anai1943

项目中用到了一些 xml 文件, xml 文件都是通过工具加密的,再用前端 js 解密回来使用, xml 里面都是一些样式代码,如果被解密,辛苦写的样式就被人盗用了。

此加密方法有个缺陷,通过 F12 调试前端 js 的解密函数,可以打印出来解密后的 xml 。

我用过类似 npm code-protect 这种工具来加密 js 文件,发现只是混淆了一些变量名而已,网上有实现 js 反调试的,具体效果见下图,通过什么方法可以实现这种效果呢?

8588 次点击
所在节点    JavaScript
30 条回复
xqin
2017-03-18 18:28:02 +08:00
看图猜代码?
hcwhan
2017-03-18 18:56:28 +08:00
样式这种不是需要被人看到 怎么加密
hcwhan
2017-03-18 18:56:55 +08:00
直接查看最后的样式属性 不就行了
zzNucker
2017-03-18 19:02:57 +08:00
你发图没用,
地址呢?
ChefIsAwesome
2017-03-18 19:03:27 +08:00
右上角最后一个按钮是停用所有 breakpoints ,直接就破了这东西了。
anai1943
2017-03-18 19:05:10 +08:00
@hcwhan 样式不是 css 写的,是用 action script 写的。如果加密得当,客户端是看不到 xml 里面的样式源码的。
anai1943
2017-03-18 19:07:10 +08:00
@zzNucker 这个。。没地址啊,写出来这个功能的哥们,做成收费的了,只能买他的软件,才能加密 js ,没有提供加密后的 js 预览地址。
qqpkat2
2017-03-18 19:17:33 +08:00
js 加密就是延长解密时间而已
百度和 QQ 的密码加密都能研究出来,你就别想了
anai1943
2017-03-18 19:20:39 +08:00
@qqpkat2 js 代码被解密没关系的,只想达到这样的效果就可以了,用户在浏览器里面用调试工具设置断点的时候,实现截图里面的效果。
des
2017-03-18 19:31:46 +08:00
找到了这个,估计说的也是这个。
各位可以试一试,不过由于那个图片加载不出来,所以一堆 error ,不用管
未加密版的: http://jsfiddle.net/JScrambler/GaeLD/
加密版的: http://jsfiddle.net/JScrambler/5ujp3/
Kilerd
2017-03-18 19:57:57 +08:00
前端的东西还想加密???
anai1943
2017-03-18 20:29:47 +08:00
@des 这个很早之前注册过, JScrambler : https://jscrambler.com/,是商业版的,收费的。你发的 demo 翻墙可以看到图片的。我去试试,以前注册过没怎么研究。
anai1943
2017-03-18 20:30:50 +08:00
@Kilerd 不是加密,是反调试。。在浏览器里面用调试工具设置断点的时候,实现截图里面的效果。
ftpgxm
2017-03-18 20:32:48 +08:00
反调试一个方法就是利用递归次数过多调试工具会抛出异常,旁门左道,前端再怎么设防依旧是运行在客户端的~

Demo: https://jsfiddle.net/ftpgxm/t4ux8xp4/
ftpgxm
2017-03-18 20:45:01 +08:00
anai1943
2017-03-18 21:03:44 +08:00
@ftpgxm 恩 测试可用。。感谢!
hanguofu
2017-03-18 21:15:35 +08:00
学习了, V2EX 高手就是多:)
imswing
2017-03-19 00:13:09 +08:00
Mark 一下
moyang
2017-03-19 06:15:06 +08:00
@ftpgxm 看了 jsfiddle ,不明白。 chrome 没办法可靠感知 console 是不是打开,怎么能做到“一旦打开调试工具就抛异常”?
beginor
2017-03-19 10:12:16 +08:00
编译成 Web Assembly 吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/348488

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX