在Macbook 上云玩LOL

Posted tangsilian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Macbook 上云玩LOL相关的知识,希望对你有一定的参考价值。

文章目录


前言

18年电脑换mac之后一直没怎么玩过PC上的游戏,以前开黑的车队也渐行渐远。

上周偶然看过一篇公众号。云游戏在革谁的命:https://mp.weixin.qq.com/s/yvprXpCfIIVvm3P6eaO1vg
谷歌:https://sspai.com/post/62174和腾讯出了对应的云游戏客户端,最近体验了一波腾讯的这个云游戏客户端,效果还可以,以后又可以愉快的开黑了,在这和大家分享一下。

START网址客户端下载网址如下:支持MAC,Windows和TV版本(想一想就一个投影仪配个游戏手柄,云switch和云xbox+电主机游戏就觉得真香~)


仅用于学习分享,请勿做违法相关行为。

一、使用效果

使用环境:17款 mbp Pro。

需要先下载客户端,直接扫码登录即可,从游戏列表看到目前支持英雄联盟,穿越火线QQ飞车等游戏,已经算是很香了。

云游戏的效果类似于直播,所以对网络的性能,稳定性要求比较高。游戏开启时建议会使用5G wifi并关闭蓝牙和定位。

断网的情况下延迟和操作卡顿会异常的明显,有种以前在黑网吧打撸的感觉,体验约是客户端的60%~70%左右:

而且网络不好的情况下,强行开黑的话,就是被主机玩家吊锤节奏了。(真不是我菜,带不动)

二、能写外gua吗?

1.协议篡改
2.自动点击
3.注入修改

2.1 协议分析

直接抓客户端的请求和response包无法抓到,应该是用了qq自己的jce协议。

在字符串中看到jce的方法,逆向协议就比较花时间了,感兴趣的大佬可以动手去逆向看看。

参考:https://www.jianshu.com/p/7cdccb3e2546

2.2 自动点击

1:atomac代码如下(示例):测试了组件的遍历,游戏的界面中没有button点击按钮等view组件,无法使用UI遍历的模式来自动点击。https://www.cnblogs.com/zhouxihi/p/13383078.html

import atomac
from time import sleep
from atomac.AXKeyCodeConstants import *
bundle_id = 'com.tencent.start.mac.Start'

# bs = atomac.AXClasses.AXKeyCodeConstants.BACKSPACE
# part 1, 启动应用并获取应用信息
atomac.launchAppByBundleId(bundle_id)
sleep(2)
ato = atomac.getAppRefByBundleId(bundle_id)
print(ato)

# part 2, 获取当前应用windows
cur_win = ato.windows()[0]
print(cur_win)
print(cur_win.AXTitle)

2:使用“ 自动操作” 来录制点击事件

macOS上没有按键精灵,我这里尝试了下mac自带的自动创建来自动点击,实现创建游戏房间。第一时间想到了写脚本定时自动进入游戏拿一局首胜(类似于养号)。

2.3 能否注入修改

这里我提供一个直接hook的frida脚本。(找到但是重打包修改一下,然后把账号密码上传出来就不一样了)

frida -p 92944 -l hook.js

function show_classes_of_app()

	try 
    var className="STApplication"
    var funcName="- mainWindow"
    var hook = eval('ObjC.classes.' + className + '["' + funcName + '"]');
    Interceptor.attach(hook.implementation, 
        onLeave: function(retval) 
                console.log("[*] Class Name: " + className);
                console.log("[*] Method Name: " + funcName);
                console.log("\\t[-] Type of return value: " + typeof retval);
                console.log("\\t[-] Original Return Value: " + retval);
        ,
        onEnter: function(args)

                var className = ObjC.Object(args[0]);
                var methodName = args[1];
                var urlString = ObjC.Object(args[2]);
                console.log("className: " + className.toString());
                console.log("methodName: " + methodName.readUtf8String());
                console.log("urlString: " + urlString.toString());
                console.log("-----------------------------------------");
                urlString = ObjC.classes.NSString.stringWithString_("http://www.baidu.com")
                console.log("newUrlString: " + urlString.toString());
                console.log("-----------------------------------------");
        
        );

	 catch(err) 
		console.log("[-] Error: " + err.message);
	

if (ObjC.available) 
	show_classes_of_app();
 else 
 	send("error: Objective-C Runtime is not available!");

总结

云游戏感觉会是下一个趋势,但是目前看到云游戏的客户端,目前看到没有类似TP客户端其他安全安全保护。
反倒是更方便灰产多开客户端实现云养号, 盗版传播等等。

参考:

https://www.cnblogs.com/zhouxihi/p/13383078.html
https://github.com/noobpk/frida-ios-hook/blob/master/frida-scripts/dump-ios-url-scheme.js
https://sspai.com/post/62174

以上是关于在Macbook 上云玩LOL的主要内容,如果未能解决你的问题,请参考以下文章

腾讯云玩转WordPress网站超详细介绍

腾讯云玩转WordPress网站超详细介绍

Macbook Pro 装Windows CPU 发热量过大的解决办法

lol ad进阶之旅

macbook pro 16 不要使用硬壳保护壳

如何利用 Python 爬取 LOL 高清精美壁纸?