【不要看】修复 CS 4.8、4.9 截图保存为空 bug

admin 2025年1月13日09:45:37评论8 views字数 1017阅读3分23秒阅读模式

前言

有同学想要 CS 4.9 修复截图为空 bug 的方法: 
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
正好文库里没有这一篇,就直接复制过来发了,所以比较干巴。

一、问题点

点击保存时截图时,截图保存到本地是空的:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
【不要看】修复 CS 4.8、4.9 截图保存为空 bug

二、bug出现原因寻找

cs 截图保存是通过 jar 包中的 default.cna 脚本来实现的,点击 Save 按钮后传入 $1["object"]["data"] 并写入图片以保存截图到本地:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
$1["object"]["data"] 就是截图的二进制数组,通过打印发现$1["object"]["data"] 内容是空的,$1["object"] 对象根本就没有 data 属性:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
$1["object"] 对象对应jar包中的 Screenshot.java,初始化函数中有对 data 进行赋值,但 cs 是通过反射调用该类,根本不会进行初始化,因此这里的赋值没有意义:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
ScreenshotBrowser.java 类中调用 Screenshot.java 的 toMap 方法转换为字典对象后传递给 $1["object"]:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
但 Screenshot.java 的 toMap 方法也没有传入 data 属性:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
Screenshot.java 中唯一对 data 进行了修改的只有一个 formatEvent 函数,但是并没有任何地方调用该函数:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
从以上发现的问题来看,cs4.9 根本没有实现截图保存这个功能,不知道是故意的还是不小心的。

三、修复截图保存为空bug

Screenshot.java 的 formatEvent 函数没有合适的地方可以调用,因此自己写一个函数对 data 进行赋值:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
public void setData(byte[] data) {this.data = data;}
修改 toMap 函数,增加 data 属性:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
        var1.put("data"this.data);
回到 ScreenshotBrowser.java,在 showPopup 函数中对 data 进行赋值:
【不要看】修复 CS 4.8、4.9 截图保存为空 bug
         var4.setData(this.out.toByteArray());         var3.push(ScriptUtils.convertAll(var2));

重新编译之后,保存截图正常了:

【不要看】修复 CS 4.8、4.9 截图保存为空 bug
【不要看】修复 CS 4.8、4.9 截图保存为空 bug

四、修复截图未完全加载保存为空bug

当截图未完全加载完成时如果点击保存截图就会变成空的图片,必须等截图完全加载完成才能保存截图。

加入如下判断,判断截图大小大于0才能保存截图:

【不要看】修复 CS 4.8、4.9 截图保存为空 bug
 

原文始发于微信公众号(锦鲤安全):【不要看】修复 CS 4.8、4.9 截图保存为空 bug

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月13日09:45:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【不要看】修复 CS 4.8、4.9 截图保存为空 bughttps://cn-sec.com/archives/3623592.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息