对burpsuite_pro逆向的一点心得

通过测试得出以下猜想:
1、正版的burpsuite应该没有经过混淆,从BurpLoader.jar和burpsuite_pro_v1.5.18.jar的混淆方式来
看是用了同一款混淆工具,所以如果有正版的话,大概可以逆向出授权算法,例如larry_lau大神。
2、BurpLoader.jar最新版添加了反调试代码,并对混淆过的burpsuite_pro_vx.x.x.jar进行了md5值校验;
3、混淆过的burpsuite_pro_vx.x.x.jar中添加了对BurpLoader.jar的校验,防止有人对BurpLoader.jar进行patch。
第三点可以这样简单验证,将BurpLoader.class文件中的字符串larry_lau@163.com随便改掉一个字符再放回BurpLoader.jar中,该程序就不能正常运行了。
这就是我百思不得其解的地方,因为我逆向出了loader的源代码,编译却执行不了,问题就出在这里。larry_lau大神浪费我不少时间啊:)
下面贴几张图:

1

上图需要先如下配置:

2
3

如果要看字节码文件可以这样操作:

4

字节码文件也可以调试,需要用到eclipse的Bytecode Visualizer插件,以下是调试中的几张截图:

5
6

1.5.18版本的BurpLoader.jar经过了混淆,但主要参数可以用python解密得到。解密算法类似:

上面是loader新版本中反调试检测用到的一些字符串。你可以在字节码文件中将混淆加密的utf8格式的字符串用该算法解密,只需要替换一下key。
上面图中连续5个bipush指令后面的常数就是解密key了。1.5.18版本的源代码大概如下:

请注意成功执行的条件是你必须在java Build Path中添加外部的jar包文件BurpLoader.jar,因为patch并且被混淆过的burpsuite_pro_v1.5.18.jar运行时
会检测这个文件(是否存在或有无被修改)。

7

导出为test.jar,双击运行正常。

8

水平有限,如有错误请大家指正。

【via@hyphen-90sec】本文已经过作者授权转载,未经授权请勿转载本文!