吾愛破解 - LCG - LSG |安卓破解|病毒分析|破解軟件|www.pyclye.live

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

搜索
查看: 16842|回復: 108
上一主題 下一主題

[iOS 原創] iOS逆向-Unity3D游戲輔助開發

  [復制鏈接]
跳轉到指定樓層
樓主
平而不凡 發表于 2019-12-6 15:17 回帖獎勵
本帖最后由 平而不凡 于 2019-12-6 15:21 編輯

Unity3D(iOS)游戲輔助開發

前言:

看了慶哥 旅行的青蛙Unity游戲逆向修改--iOS篇之后,著手擼了個游戲試了試。

游戲名:弓箭英雄

英文名:Archero

BundleID: com.habby.archero

iTunes Store鏈接:itms-apps://itunes.apple.com/app/id1453651052

Hack Features:

英雄攻擊:秒殺(6666)

英雄攻速:一秒5刀

英雄彈道速度: 總之很快

敵人傷害 : 1

敵人彈道速度: 慢得一批

工具:

monkeyDev

Il2CppDumper

IDA Pro 7.0

frida-ios-dump

HookZz

LBGModifyMemoryValue

0x0: 砸殼

使用frida-ios-dump一鍵提取Archero.ipa

0x1: 執行文件丟進IDA解析

0x2: Il2CppDumper還原符號

將得到兩個重要的文件:

    dump.cs
    script.py

dump文件是給自己做參考的,里面的方法 都標注有地址。

script.py這個是輔助IDA解析使用的。

dump.cs:

script.py:

0x3: 分析

dump.cs文件中包含了所有方法名、類名、偏移地址等等,可以直接從字符串入手,搜索:Attack、Speed等關鍵字,找到偏移之后,IDA中跳轉地址。

以攻擊力方法:0x101DB0AA8

IDA中找到地址,之后F5轉到偽代碼:


邏輯很簡單,參數a1是一個地址(對象),a1偏移136后 *取值,拿到攻擊力返回。

0x4: hook

關于hook,有多種辦法可以修改攻擊力的返回值,本次使用的是HookZz的ZzBuildHookAddress 和 LBGModifyMemoryValue的ModifyMemoryValue方法。

    void *hack_Address_ptr_101C3B128 = (void *)(_dyld_get_image_vmaddr_slide(0) + 0x101C3B128 ); //ASLR+函數地址

    ZzBuildHookAddress((void *)((unsigned long)hack_Address_ptr_101C3B128 ), (void *)((unsigned long)hack_Address_ptr_101C3B128 + 4), getpid_pre_call_sub_101C3B128, getpid_half_call_sub_101C3B128,TRUE);

    ZzEnableHook((void *)((unsigned long)hack_Address_ptr_101C3B128));

代碼運行到ASLR+ 0x101C3B128 地址后,觸發 getpid_pre_call_sub_101C3B128 、 getpid_half_call_sub_101C3B128 方法.

方法觸發后,在匯編 LDR W0, [X0,#0x88] 之前,改變(a1 + 136)內存地址的值,LDR等同于屬性的 get 方法:


打包運行,效果很明顯 神擋殺神。但是有個小小問題,你可以秒別人,別人也可以秒你,也就是說攻擊力這個方法,游戲英雄在使用,怪物也在使用。

繼續逆向:

從IDA的偽代碼看到:return *(unsigned int *)(a1 + 136),a1的136偏移得到攻擊力,那說明英雄的對象模型和怪物的模型是一樣的,都是136偏移的那個屬性代表攻擊力,嗯~ (工廠模式 + 繼承)。
通過測試發現怪物攻擊我時,*(unsigned int *)(a1 + 136)的值是固定的,比如200 、 150 而英雄的卻是0,由此可以推斷,英雄的攻擊力是(武器裝備+暴擊+各種BUFF)組合而成的,而英雄本身是無傷害的,通過這個關鍵點邏輯,稍微修改修改代碼:


這下打包運行后,效果就能接受了,怪物子彈攻擊始終為1 ,而英雄的攻擊傷害爆表(嗯~綠箭俠)。

其余攻擊速度,子彈彈道速度都可以按上述方法逐一hook。

總結

1.本次逆向,站在了眾多巨人肩膀之上。很遺憾,本人只做了一點微小的工作。

2.關于LBGModifyMemoryValue 是拆解、重新封裝了DLGMemor.framework,可以在lldb中 po命令 寫內存,讀內存。

3.最終成品并沒有Mod Menu Hack,也不需要,那東西給沒有源碼的用戶用的。作用也只不過是修改各種hack的值。(當然狗屎灰會加個登錄or授權框)。

4.關于遷移到非越獄,也可以借助HookZz來實現。

以下是非越獄效果:


[font=Consolas, Monaco, Andale Mono, monospace][color=#f8f8f2][backcolor=rgb(35, 36, 31)]

免費評分

參與人數 36吾愛幣 +29 熱心值 +35 收起 理由
自去經心 + 1 熱心回復!
xu6456338 + 1 [email protected]!
華月方昊 + 1 + 1 [email protected]!
zt8594 + 1 [email protected]!
Mgyj + 1 [email protected]!
yu4608105 + 1 我很贊同!
小p菇 + 1 我很贊同!
DONE510 + 1 + 1 我很贊同!
七個漲停一倍 + 1 鼓勵轉貼優秀軟件安全工具和文檔!
exluku + 1 + 1 賊棒!
86527abc + 1 + 1 我很贊同!
17376777302 + 1 熱心回復!
bugof52pj + 1 + 1 [email protected]!
siuhoapdou + 1 + 1 熱心回復!
kibaamor + 1 + 1 用心討論,共獲提升!
zpzb + 1 + 1 我很贊同!
xiong_online + 1 + 1 用心討論,共獲提升!
shb123 + 1 + 1 我很贊同!
安倚靜軒 + 1 + 1 我很贊同!
666789kk + 1 + 1 [email protected]!
baixiuxiu + 1 + 1 [email protected]!
kw2046 + 1 熱心回復!
zhangkun910625 + 1 + 1 厲害厲害,慶哥那個青蛙的好早了啊
hiodis + 1 + 1 [email protected]!
zsynb + 1 + 1 我很贊同!
18587205491 + 1 + 1 樓樓出幾個安卓的唄,找找思路
溫柔的一哥 + 1 + 1 熱心回復!
CrazyNut + 3 + 1 歡迎分析討論交流,吾愛破解論壇有你更精彩!
kentish + 1 + 1 [email protected]!
CG_illusion + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
zxcnny930 + 1 + 1 用心討論,共獲提升!
笙若 + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
cheninye + 1 [email protected]!
獨行風云 + 1 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
fei8255 + 1 + 1 用心討論,共獲提升!
loddv + 1 + 1 熱心回復!

查看全部評分

本帖被以下淘專輯推薦:

發帖前要善用論壇搜索功能,那里可能會有你要找的答案或者已經有人發布過相同內容了,請勿重復發帖。

推薦
 樓主| 平而不凡 發表于 2020-3-18 11:34 <
射鼠魚 發表于 2020-3-2 19:55
你好 我也逆向了這個游戲, 但是我是直接用匯編修改了攻擊力,  這里我不懂你的       0x101C3B128 這個地址 ...

ASLR 這個雖然是隨機變化的,但是程序運行后是可以拿到起始地址的,起始地址+沒有偏移的函數地址 就等于當前程序進程的函數地址。getpid_pre_call_sub_101C3B128 、 getpid_half_call_sub_101C3B128折兩個函數是自定義的,后綴用到的就是函數地址,自己看的時候容易看明白一些,HookZz是一個大神寫的, LBGModifyMemoryValue 這個是我自己封裝的DLGMemor.framework。 關于HookZz 還能靜態hook 自己去他github看看就知道
推薦
射鼠魚 發表于 2020-3-2 19:55
你好 我也逆向了這個游戲, 但是我是直接用匯編修改了攻擊力,  這里我不懂你的       0x101C3B128 這個地址是怎么拿到的,  ASLR+函數地址
不是應該不確定么. 還有  getpid_pre_call_sub_101C3B128 、 getpid_half_call_sub_101C3B128 這兩個函數名 是怎么知道的呢? 還有 HookZz和 LBGModifyMemoryValue 是兩個庫嗎?  小弟接觸逆向不就, 希望大佬解惑....
4#
回憶小馬甲 發表于 2019-12-6 15:31
5#
猛虎嗅薔薇 發表于 2019-12-6 15:36
是不是還需要一mac系統的電腦,已經越獄的手機可不可以
6#
 樓主| 平而不凡 發表于 2019-12-6 15:43 <
猛虎嗅薔薇 發表于 2019-12-6 15:36
是不是還需要一mac系統的電腦,已經越獄的手機可不可以

這個就是越獄的開發,系統需要MAC系統,電腦不一定非要MAC
7#
csp0227 發表于 2019-12-6 15:54
學習了學習了,感謝大佬分享
8#
wudi5299122 發表于 2019-12-6 16:07
感謝分享,但是硬件限制著,只能仰慕了
9#
loddv 發表于 2019-12-6 16:15
很好 謝謝
10#
codershmily 發表于 2019-12-6 16:27
樓主 很厲害
11#
 樓主| 平而不凡 發表于 2019-12-6 17:08 <

沒有 沒有!  小打小鬧
12#
濤之雨 發表于 2019-12-6 17:21
能搞得起iOS的都是大佬。。。
證書怎么樣可以免費白嫖。。。
買不起啊。。。。
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則 警告:本版塊禁止灌水或回復與主題無關內容,違者重罰!

快速回復 收藏帖子 返回列表 搜索

RSS訂閱|小黑屋|聯系我們|吾愛破解 - LCG - LSG ( 京ICP備16042023號 | 京公網安備 11010502030087號 )

GMT+8, 2020-4-1 15:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表
腾讯二分彩骗局