iOS:通過(guò)MonkeyDev逆向微信運(yùn)動(dòng),簡(jiǎn)單粗暴非越獄

前言


前一段時(shí)間,一直忙于面試,也沒(méi)做研究什么稀奇古怪的技術(shù).近來(lái)也是學(xué)習(xí)了幾天的iOS逆向工程方面的知識(shí),這里就班門(mén)弄斧下,看看如何通過(guò)逆向工程來(lái)修改微信運(yùn)動(dòng)數(shù)據(jù).先看一下效果圖.



前期準(zhǔn)備


在逆向之前我們需要準(zhǔn)備一下以下工作.以方便我們的逆向功能能順利開(kāi)發(fā).

需要技能:

1.懂基本的終端指令以及操作.

2.會(huì)使用Xcode.

3.一臺(tái)未越獄的iPhone.


1. 安裝PP助手

PP助手這是主要的功能是下載越獄ipa文件,也就是脫殼文件.這里是什么脫殼文件就不過(guò)描述了.


2. 安裝class-dump

class-dump主要是用來(lái)查看脫殼之后的Mach-O文件的所能暴露出來(lái)的頭文件.如何安裝呢?

方式一:可以直接從下面的下載地址中直接下載運(yùn)行好的class-dump文件.

→ → →class-dump下載傳送門(mén)

方式二:也可以去github搜索class-dump下載xcode工程運(yùn)行取出Finder中的class-dump.

然后把class-dump復(fù)制到/usr/local/bin/class-dump即可(OS X 10.11以上).

這時(shí)候我們直接在終端上敲出class-dump指令了.如下所示.


3. 安裝MonkeyDev

其實(shí)為什么安裝MonkeyDev呢?MonkeyDev是集成與OpenDev的,但是OpenDev在13年就不在更新了,所以AloneMonkey就在此基礎(chǔ)上做了進(jìn)一步的更新,而且更加簡(jiǎn)單,更加傻瓜式.具體安裝步驟可以查看原文博客.

MonkeyDev原文安裝鏈接

安裝完成之后,在新建項(xiàng)目的時(shí)候就會(huì)有如下的模塊.


修改微信運(yùn)動(dòng)數(shù)據(jù)的邏輯原理


整體的示意圖如上圖所示.我們把通過(guò)PP助手下載的越獄ipa文件通過(guò)class-dump指令來(lái)查看所有包含類(lèi)的頭文件.然后編寫(xiě)動(dòng)態(tài)庫(kù).通過(guò)runtime的機(jī)制動(dòng)態(tài)注入到破殼文件中.然后對(duì)注入完成的文件進(jìn)行重新簽名,最后安裝應(yīng)用程序.

其中MonkeyDev的作者已經(jīng)把其中的三步進(jìn)行了封裝,我玩了玩之后,發(fā)現(xiàn)相當(dāng)?shù)暮?jiǎn)單粗暴無(wú)腦.


通過(guò)PP助手下載破殼ipa文件


我們打開(kāi)PP助手,然后通過(guò)"越獄程序"模塊下載"微信",如下所示.

下載完成之后,在Finder里面找到對(duì)應(yīng)的ipa文件 拿出來(lái)備用.如下圖所示.


通過(guò)Class-dump指令查看所有頭文件信息(本文可不操作)


首先,我們先把.ipa文件進(jìn)行解壓.如下所示.


解壓之后找到里面的WeChat,然后顯示包內(nèi)容.

找到包里面的WeChat文件,如下所示.

拿出來(lái).然后使用下面class-dump指令格式

class-dump -H "Mach-O文件路徑" -o "導(dǎo)出Headers文件的路徑"

這里我直接把WeChat這個(gè)Mach-O文件放到了桌面之上.所以指令如下圖所示.

執(zhí)行完成之后,我們就可以看到桌面上多了一個(gè)Headers的文件夾,打開(kāi)之后全是WeChat里面的頭文件.然后我們可以使用Sublime Text這個(gè)工具快速查找我們所要的類(lèi).如下所示.


我們主要是用到的是WCDeviceStepObject中的m7StepCount這個(gè)屬性.只要我們修改這個(gè)值就可以修改微信運(yùn)動(dòng)里面的步數(shù)了.


使用MonkeyDev完成三部曲.


這時(shí)候我們就創(chuàng)建一個(gè)MonkeyApp工程出來(lái).如下所示.

緊接著.我們需要做的就是把我們的ipa文件放到指定位置(當(dāng)然是放在工程目錄下了,這里就不多說(shuō)了.).然后添加到工程中去.里面的put ipa or app here文件不要?jiǎng)h除.

接著我們就需要編譯所需要的動(dòng)態(tài)庫(kù)就好.編寫(xiě)DemoDylib.m文件就好.


把DemoDylib.m文件中所有的內(nèi)容刪除(除導(dǎo)入頭文件外).添加如下代碼.

CHDeclareClass(WCDeviceStepObject); // declare class  
  
CHOptimizedMethod(0, self,  unsigned int, WCDeviceStepObject, m7StepCount) // hook method (with no arguments and no return value)  
{  
    // write code here ...  
      
    return 98888; //隨意改數(shù) 
}  
  
  
  
CHConstructor // code block that runs immediately upon load  
{  
    @autoreleasepool  
    {  
        CHLoadLateClass(WCDeviceStepObject);  
        CHHook(0, WCDeviceStepObject,m7StepCount);  
    }  
}  

編寫(xiě)完成之后這里有個(gè)坑就是不讓使用runtime庫(kù),修改如圖位置即可,改為NO.

然后運(yùn)行完動(dòng)態(tài)庫(kù),在運(yùn)行App,即可安裝成功兩個(gè)微信.

這時(shí)候就算大功告成了.打開(kāi)新安裝的微信運(yùn)動(dòng)即可.等待幾分鐘數(shù)據(jù)就可修改完成代碼中的數(shù)字了.


結(jié)束


到此就結(jié)束了本篇博客,騷棟班門(mén)弄斧了,Demo過(guò)大,這里就不上傳了,如果有問(wèn)題,歡迎指導(dǎo)批評(píng).騷棟在此謝過(guò)了.


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,406評(píng)論 6 538
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,034評(píng)論 3 423
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 177,413評(píng)論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,449評(píng)論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,165評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,559評(píng)論 1 325
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,606評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,781評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,327評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,084評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,278評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,849評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,495評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,927評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,172評(píng)論 1 291
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,010評(píng)論 3 396
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,241評(píng)論 2 375

推薦閱讀更多精彩內(nèi)容