- A+
JxBrowser是Java浏览器一款组件,JxBrowser能在Windows、Linux、Mac OS X (Intel and PPC-based)平台上将Mozilla Firefox浏览器完美地整合到Java AWT/Swing应用程序里。
故事背景:本人公司是做淘宝SEO的,我来之前有一版web软件用jsp的。但要扩大用户群,就不能使用B/S架构,访问量大了服务器IP可能被淘宝封杀,于是要用swing移植jsp。之前用的是httpclient模拟登陆,相当麻烦。首先我先试了用swt内置浏览器,但swt虽然是基于IE内核,但不加载activeX,阿里安全控件也不支持,最无奈的是登陆后获取的COOKIE不全,例如_tb_token_(令牌cookie)就是获取不到。国内没有内置firefox或chrome的jar,只能用google去国外看看。
jxbrowser是一款内置chrome的jar,貌似是自己写的dll,支持各种操作系统平台。虽说jxbrowser提供1个月的试用,但客户装了软件总不能1个月发一个新的license给他,哪天不提供试用了,公司的软件就废了。
不说废话,先上图,按正常的流程,我先用jd看看核心的代码
JVM不是很精通,只有在create browser对象时,会去检测是否有license
申请了试用的license.jar,里面的关键信息是加密的。jxbrowser jar里的验证license关键代码加密了,SHA1-digest检验又是个麻烦事。偷懒的想法总是先出现在脑子里。
jxbrowser官网提供一个demo,提供源码,jxbrowserdemo.jar发现里面也有一个teamdev.licenses。果断把这个文件覆盖到试用license.jar的META-INF目录下,再移到自己的工程lib里。但还是显示 license invaild。
于是,这时候我又有一个很傻比的想法,把java主类名改成了跟demo下一样的JxBrowserDemo.java,执行一遍,还是license invaild。这时候,我打开jxbrowserdemo.jar,发现class里的目录结构,突然有了一个想法,如果我保持我编译后的class目录也跟demo一样呢。
我推测刚才create browser被加密的代码,很可能有一步是检测在使用demo的license.jar时com/teamdev/jxbrowser/chrominum/demo下有没有JxBrowserDemo.class。
果然成功了,最后上一幅图
支持activeX,Flash什么的,COOKIE信息也都是全的
本人小菜,还没毕业,来公司实习的,jxbrowser在官网上unlimited的是14999$。有时候达到目的并不需要多高深的技术去研究很牛逼的路子,有时候像我这样只有简单的思想,轻易的绕过验证。PS:老板很扣,就请我吃了一顿自助餐,没办法,不是互联网公司,不懂这东西的价值。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫