欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

一款恶意插件Eclipse的逆向过程

来源:本站整理 作者:佚名 时间:2017-08-31 TAG: 我要投稿

然后在虚拟机中设置系统代理。
 

我再次启动Eclipse,并检查通过代理发送的请求和响应。首先产生了一些来自Eclipse的调用,但是我很快收到了来自thecollectUserIp()方法的调用。pv.sohu.com/cityjson返回的是一个JavaScript变量,其中包含了调用者的IP、所在大陆的id和名称


接下来我观察了对ip.taobao.com/service/ipinfo.php的调用,它则返回了更多关于用户IP的地理信息。

最后我观察到了Eclipse Marketplace上的评论所描述的“call home”功能。它将用这些信息生成JSON对象并将其发送到decompiler.cpupk.com/statistics.php。

把注意力转回analyzeUserInfo()类,调用上传用户信息的这个方法实际上必须有一个重要的服务器响应,而这个响应是通过其他更多的方法来处理的。

这时候我找到了checkAdConfig()方法。checkAdConfig()方法解析了JSON对象的诸多属性,比如adConfig,adCondition,adStyles等等。

根据BurpSuite显示的服务器响应,当前并没有提供其所需的所有变量。

因此我决定在代码中搜索之前注意到的adclick.count变量。这一次我发现了一个新的类——HtmlLinkTrimItem。

这个类实现了一些值得琢磨的功能。首先,它实现了一个内部浏览器。其次,它在初始化时调用一个updateTrimUrl()方法,该方法在单独的线程中使用了隐藏的浏览器,并调用了由trayLinkUrl定义的URL。

我在代码中搜索了对HtmlLinkTrimItem类的引用,发现作者在多处引用了HtmlLinkTrimItem类。

LinkTrimChecker类使用了TrayLinkV1类和TrayLinkV2类,用于实例化HtmlLinkTrimItem(由此反过来触发后台浏览器)。

TrayLinkUtil.displayTrayLink()方法又调用了LinkTrimChecker.displayTrayLink()方法,然后被使用在BackgroundHandler.checkTrayLink()方法中。
如果你前面有仔细阅读,那么你可能已经注意到checkTrayLink方法正是处理服务器返回的JSON对象的方法之一。当响应中有trayLink时,TrayLinkUtil.displayTrayLink就会被调用。

BurpSuite上的记录表明这个对象存在,但它是空白的。
所以如果trayLink不是空白的话会发生什么?
如前面讨论的那样,程序将调用displayTrayLink()方法,它将委派给LinkTrimChecker处理。

但是你可能会注意到displayTrayLink()方法的第二个参数TrayLinkUtil.enableShowTrayLink(),很显然只有在解析为true时,才能启用后台浏览器。enableShowTrayLink()方法会检查首选项中包含了trayLinkStrategy,然后UserUtil类中的matchAdCondition方法才会返回true。
 

上一页  [1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载