美文网首页
手游安全测试工具GameSentry

手游安全测试工具GameSentry

作者: 匠人plus | 来源:发表于2023-01-17 16:20 被阅读0次

背景

又到了年末,在一片祥和声中,总想找点游戏,消遣下时光。
不过玩了这么多年游戏了,总是有一个做脚本的心愿,这次抽时间研究了下手游的安全机制。
使用GameSentry工具,对手游进行一定程度的分析。

GameSentry介绍

项目地址:https://github.com/GrowthEase/GameSentry

GameSentry:主要通过分析游戏协议内容、游戏函数逻辑和对应的地址、部分代码热更、自动化 Hook 等功能达到降低深层次安全测试门槛的目的。
可以简化内存测试、协议测试过程中对于 APK 逆向、Hook 编写、脚本修改、脚本 dump 的繁杂操作,大大降低测试人员的上手门槛和逆向工作。
而从实践效果上看,GameSentry 的设计思路是从攻击者的角度对游戏进行逆向分析和破解,主动发现和挖掘系统中的弱点、技术缺陷和安全漏洞,并进行缺陷放大和风险性评估,提前暴露游戏潜在安全风险,让安全团队可以在危害发生前就着手准备漏洞修复方案,可以最大程度降低事后外挂危害与外挂打击成本。

安装

按照该流程安装https://github.com/GrowthEase/GameSentry/blob/main/doc/InstructionsForUse.md

npm config set registry https://registry.npm.taobao.org

windows 系统如果报错的话,手动安装 Visual Studio https://visualstudio.microsoft.com/zh-hans/
需要安装 Desktop development with C++以及node环境
也可以尝试以下命令:

npm install --g --production windows-build-tools

遇到npm install的报错问题

npm ERR! code 1
npm ERR! path D:\frame_test\GameSentry\node_modules\frida
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c prebuild-install || node-gyp rebuild
npm ERR! prebuild-install warn install Request timed out
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@9.3.0
npm ERR! gyp info using node@18.13.0 | win32 | x64
npm ERR! gyp info find Python using Python version 3.10.9 found at "D:\language\python310\python.exe"
npm ERR! gyp info find VS using VS2022 (17.4.33213.308) found at:
npm ERR! gyp info find VS "D:\Microsoft Visual Studio\2022\Community"
npm ERR! gyp info find VS run with --verbose for detailed information
npm ERR! gyp info spawn D:\language\python310\python.exe
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   'D:\\language\\node-v18.13.0-win-x64\\node_modules\\npm\\node_modules\\node-gyp\\gyp\\gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'msvs',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   'D:\\frame_test\\GameSentry\\node_modules\\frida\\build\\config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   'D:\\language\\node-v18.13.0-win-x64\\node_modules\\npm\\node_modules\\node-gyp\\addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   'C:\\Users\\90458\\AppData\\Local\\node-gyp\\Cache\\18.13.0\\include\\node\\common.gypi',npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=C:\\Users\\90458\\AppData\\Local\\node-gyp\\Cache\\18.13.0',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=D:\\language\\node-v18.13.0-win-x64\\node_modules\\npm\\node_modules\\node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=C:\\\\Users\\\\90458\\\\AppData\\\\Local\\\\node-gyp\\\\Cache\\\\18.13.0\\\\<(target_arch)\\\\node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=D:\\frame_test\\GameSentry\\node_modules\\frida',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'D:\\frame_test\\GameSentry\\node_modules\\frida\\build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp: binding.gyp not found (cwd: D:\frame_test\GameSentry\node_modules\frida) while trying to load binding.gyp
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1
npm ERR! gyp ERR! stack     at ChildProcess.onCpExit (D:\language\node-v18.13.0-win-x64\node_modules\npm\node_modules\node-gyp\lib\configure.js:325:16)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Windows_NT 10.0.22621
npm ERR! gyp ERR! command "D:\\language\\node-v18.13.0-win-x64\\node.exe" "D:\\language\\node-v18.13.0-win-x64\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd D:\frame_test\GameSentry\node_modules\frida
npm ERR! gyp ERR! node -v v18.13.0
npm ERR! gyp ERR! node-gyp -v v9.3.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\90458\AppData\Local\npm-cache\_logs\2023-01-18T01_29_56_743Z-debug-0.log

该问题描述,编译 frida/binding.gyp出现问题
issue说是网络问题,但是我切换到代理,还是不行,
我尝试更换nodejs版本,从v18.13.0换到v10.9.0,还是不行

尝试单独安装frida
npm install frida -g cnpm --registry=https://registry.npm.taobao.org

再整体安装
npm install  -g cnpm --registry=https://registry.npm.taobao.org
再
npm install
然后
node index.js

成功启动了服务


1674028992245.jpg 1674029327650.png

实践

打开内存展示,发现包里有反调试之类的壳。


1674030246070.png

建议找一个未加固的app学习,或者自己调试自己的程序。
或者用mt管理器查看没有壳,尝试修改frida特征去试下。

注意

该框架不支持模拟器,手机需要root,建议使用未做保护的apk

相关文章

网友评论

      本文标题:手游安全测试工具GameSentry

      本文链接:https://www.haomeiwen.com/subject/nrnzcdtx.html