手游安全測試工具GameSentry

背景

又到了年末,在一片祥和聲中,總想找點游戲,消遣下時光。
不過玩了這么多年游戲了,總是有一個做腳本的心愿,這次抽時間研究了下手游的安全機制。
使用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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內容