
最近我在使用一个经过二次开发的驱动级防检测版 Cheat Engine(简称 CE)时,遇到了一个颇为有趣的现象。之前使用时并没有捐助界面,而在今天使用时,每次附加进程后,就会有一个类似试用剩余次数的倒计时.每次附加新的程序,这个倒计时就会-1,给我一种窘迫感,后来我使用ProcessMonitor和r-ART监视每次附件进程后CE都干了什么,改了哪些注册表,但经历了一个小时的调试并没有发现它往注册表或是哪些目录记录了什么文件,索性想抓包看看点击捐赠按钮后它都请求了什么内容,我想在它的请求与返回之间搞点花样:
在点击捐赠按钮后,我抓包观察到程序向 https://cheatengine.org/microtransaction.php?action=buy&amount=10
发送了请求,但返回的内容竟然是一段 Lua 脚本。
初探代码:一段伪付费流程的动画
这段 Lua 脚本看起来像是一个模拟付费动画的界面,脚本内容大致如下:
local f = createForm(false)
f.position = poScreenCenter
f.Caption = 'Cheat-E-Coin payments'
local p = createLabel(f)
p.caption = 'Scanning for bank accounts... '
f.BorderStyle = bsDialog
f.OnCloseQuery = function()
return false
end
p.AutoSize = true
f.autoSize = true
createTimer(2000, function()
p.Caption = 'Scanning for crypto... '
createTimer(2000, function()
p.Caption = 'Executing exploits to obtain access to funds... '
createTimer(3000, function()
p.Caption = 'Transfering funds... '
createTimer(2000, function()
f.OnCloseQuery = nil
f.ModalResult = mrOK
messageDialog('Thank you for your payment!', mtInformation, mbOK)
local f2 = getApplication().frmMicroTransactions
if f2 then f2.hide() end
end)
end)
end)
end)
f.showModal()
从代码上看,这并不是标准的 JavaScript,而是一段 Lua 代码。它创建了一个 GUI 窗口,并通过一系列定时器模拟了“扫描银行账户”、“扫描加密货币”、“执行漏洞利用”以及“转账”的过程,最终弹出一个“感谢您的付款”的提示框。
我的体验:虚惊一场的“付费”流程
当时我还以为自己真的进入了某种付费流程,因为代码正是服务器返回的内容。实际情况是,我点击捐赠按钮后,虽然看到了这个“伪动画”,但整个过程仅仅是视觉效果,并没有真正扣款。经过一番试验,我发现即使没有付款,软件依然可以正常使用。
这让我意识到,这段代码可能是开发者故意设计的,目的是为了制造一种付费紧迫感,给用户一种“已经捐赠”的错觉,从而可能在心理上促使更多的人进行捐赠。然而,从实际情况来看,这只是一个虚假的流程,完全不会对资金进行任何操作。
我的反思:软件安全与用户信任
对于这种伪付费提示的做法,我有一些自己的看法:
- 设计初衷:可能是为了鼓励用户捐赠,从而帮助开发者维持项目的运营和开发。
- 风险提示:使用经过二次开发或修改的版本总是存在安全隐患,特别是涉及到支付和资金相关的提示,用户需要保持警惕。
- 用户体验:这种做法虽然不会真的扣款,但容易引起用户的误解和不必要的担忧。作为用户,我们应当仔细了解软件的来源和开发者的意图。
总之,经过这次体验,我更加坚定了在使用第三方修改版软件时必须谨慎对待的态度。虽然这次“虚惊”最后证明只是个伪动画,但软件安全问题始终是我们需要重视的。
结语
这篇文章记录了我在使用二开 CE 时遇到的一个小插曲,以及我对这一现象的思考。希望通过这篇文章,能够给大家在选择和使用类似软件时提供一些参考和警示。
后来我又确认了一遍cheatengine.org
这个根域是指向了CE的官网,也确认了它就是CE的域名,跟二开作者没有半毛钱关系,搞到这也就想的通了,这仅仅是CE原开发者内置的一场小把戏,如果换做开发者是我,也能理解作者的意图,这算是虚惊一场哈哈.
虽然可以写个补丁或是将该请求重定向,但目前已经搞清了该"倒计时"仅仅是一个虚有其表的GUI界面,那其实就没有进一步动手的必要了.
欢迎大家在评论区分享你们的看法和经历!