我们在涉及日志分析时总会想尽办法编写日志分析程序,但市场实际已经有了功能强大的日志分析程序Splunck(http://www.splunk.com/),它提供每天500MB日志的Trail-License,但是往往一次数据量就大于500MB。一直以来我试图从网上找到能够用的License,但终无所获。昨日无意间打开了Splunk的工作目录,发现Splunk对其Python代码并没有做任何加密处理。并且Licensing.py中保存了部分数据限制的代码。通过简单阅读得到最简单的破解方案,但本方案并不是完美破解,只是将每日500MB数据限制提高到500TB。

 

用vim或其他文本编辑工具打开D:\Program Files\Splunk\Python-2.6\Lib\site-packages\splunk\appserver\mrsparkle\controllers\licensing.py文件,在360行和363行后加入:

quota_value = quota_value * 1000 * 1000

 

使其这段代码变成:

 

        if action == 'add' and not pool_object.quota_bytes['byte_value']:
            quota_value = max(0, int(unallocated_bytes / 2**20))
     quota_value = quota_value * 1024 * 1024
        else:
            quota_value = (pool_object.quota_bytes['byte_value'] or 0) / 2**20
     quota_value = quota_value * 1024 * 1024

 

然后删除D:\Program Files\Splunk\Python-2.6\Lib\site-packages\splunk\appserver\mrsparkle\controllers目录下的licensing.pyo文件。在通过命令行执行:

splunck stop

splunck start

 

使其重启,之后licensing.pyo文件会自动生成,也就是包含我们添加的两行即为破解后的二进制文件。之后访问http://localhost:8000/添加数据使其超越500MB的限制,这是界面顶端还会显示“Daily indexing volume limit exceeded today. See License Manager for details.”,点License Manager连接进入license管理界面,但是你将看到下图的效果,即表示破解成功: