成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用CocoaPods給微信集成SDK打印收發(fā)消息

移動開發(fā) iOS
本文介紹的是一套逆向工具,可以在非越獄手機(jī)上給任意應(yīng)用增加插件。在文末的示例中,作者拿微信舉例,展示出在微信中打印收發(fā)消息的功能。

推薦序

本文介紹的是一套逆向工具,可以在非越獄手機(jī)上給任意應(yīng)用增加插件。在文末的示例中,作者拿微信舉例,展示出在微信中打印收發(fā)消息的功能。

這套工具可以加快逆向開發(fā)的速度,其重簽名思想也可以用于二次分發(fā)別人的應(yīng)用。

其實(shí)這也展示出蘋果在應(yīng)用安全上的防護(hù)還需要加強(qiáng),希望“董小姐”可以看到本文(偷笑)。

作者介紹:劉培慶,目前在網(wǎng)易信息安全部門工作。個人博客地址: http://www.alonemonkey.com/。感謝作者授權(quán)轉(zhuǎn)發(fā)。

背景

筆者本身是一個iOS逆向的愛好者,曾在使用iOSOpenDev在Xcode開發(fā)越獄插件的時候,由于工具已經(jīng)好幾年沒有更新,安裝和使用起來都會諸多問題,所以最初筆者只是想改良iOSOpenDev的兼容問題,后面在開發(fā)中不斷冒出新的idea,并在工具中實(shí)現(xiàn)了這些想法,所以就有了本文將要給大家強(qiáng)烈推薦的工具M(jìn)onkeyDev。

用途

在使用之前,大家關(guān)心的都是它的功能,可以做什么。那么MonkeyDev這個工具可以做什么呢?總結(jié)來說可以做如下這些事情:

  • 可以使用Xcode開發(fā)CaptainHook Tweak、Logos Tweak 和 Command-line Tool,在越獄機(jī)器開發(fā)插件,這是原來iOSOpenDev功能的遷移和改進(jìn)。
  • 只需拖入一個砸殼應(yīng)用,自動集成Reveal、Cycript和注入的動態(tài)庫并重簽名安裝到非越獄機(jī)器。
  • 支持調(diào)試自己編寫的動態(tài)庫和第三方App
  • 支持通過CocoaPods第三方應(yīng)用集成SDK以及非越獄插件,簡單來說就是通過CocoaPods搭建了一個非越獄插件商店。

大概了解了之后下面就通過具體的實(shí)際應(yīng)用來體會它的強(qiáng)大之處吧。

環(huán)境準(zhǔn)備

在使用之前首先是環(huán)境的配置,如果配置不對的話,可能會出一些奇怪的問題,你也可以結(jié)合Wiki來操作。

  • 安裝最新的theos 
  1. git clone --recursive https://github.com/theos/theos.git /opt/theos 
  • 安裝ldid
  1. brew install ldid 

如果是用于越獄開發(fā),需要配置免密碼登錄越獄設(shè)備,如果沒有越獄機(jī)器可以跳過這步。

  1. ssh-keygen -t rsa -P '' 
  2.  
  3. ssh-copy-id -i /Users/username/.ssh/id_rsa root@ip  

安裝

你可以通過如下命令選擇指定的Xcode進(jìn)行安裝,也可以默認(rèn)安裝。

  • 指定Xcode安裝:
  1. sudo xcode-select -s /Applications/Xcode-xxx.app 
  • 默認(rèn)安裝的Xcode:
  1. xcode-select -p 
  • 執(zhí)行安裝命令:
  1. git clone https://github.com/AloneMonkey/MonkeyDev.git 
  2.  
  3. cd MonkeyDev/bin 
  4.  
  5. sudo ./md-install  
  • 如需卸載,執(zhí)行卸載命令:
  1. sudo ./md-uninstall 
  • 如需更新,執(zhí)行更新命令:
  1. sudo ./md-update 

模塊介紹

安裝完成之后,打開Xcode,點(diǎn)擊File - New - Project...,選擇iOS滑動到最下方可以看到MonkeyDev提供的模塊:

 

介紹下這幾個模塊的用途:

越獄模塊

  • CaptainHook Tweak

使用CaptainHook提供的頭文件進(jìn)行OC函數(shù)的Hook,以及屬性的獲取。

  • Logos Tweak

使用theos提供的logify.pl工具將.xm文件轉(zhuǎn)成.mm文件進(jìn)行編譯,默認(rèn)集成CydiaSubstrate,可以使用MSHookMessageEx和MSHookFunction來Hook OC函數(shù)和指定地址。

  • Command-line Tool

可以直接創(chuàng)建運(yùn)行于越獄設(shè)備的命令行工具

非越獄模塊

  • MonkeyApp

這是自動給第三方應(yīng)用集成Reveal、Cycript和注入dylib的模塊,支持調(diào)試dylib和第三方應(yīng)用,支持Pod給第三放應(yīng)用集成SDK,只需要準(zhǔn)備一個砸殼后的ipa或者app文件即可。

功能介紹

關(guān)于CaptainHook Tweak、Logos Tweak 和 Command-line Tool的使用這里不再介紹,有問題可以查看項(xiàng)目Wiki

下面主要介紹MonkeyApp的使用,開啟你的非越獄插件開發(fā)之旅~

準(zhǔn)備

在開始使用前,需要準(zhǔn)備一個砸殼后的應(yīng)用,可以使用越獄手機(jī)砸殼,然后獲取ipa或app,沒有越獄手機(jī)直接從某助手下載越獄應(yīng)用即可。

創(chuàng)建項(xiàng)目

點(diǎn)擊File - New - Project...創(chuàng)建iOS項(xiàng)目,選擇MonkeyApp。

 

創(chuàng)建完成之后,你會得到一個這樣的工程:

 

這里我創(chuàng)建的項(xiàng)目名字就是MonkeyApp,所以下面對應(yīng)的都是MonkeyApp,你自己創(chuàng)建的由你的項(xiàng)目名字而定! 另外Xcode 8需要另外在App里面增加動態(tài)庫的依賴,如下:

 

MonkeyAppDylib這個是將被注入目標(biāo)App的動態(tài)庫,你自己要hook的代碼可以在MonkeyAppDylib.m文件里面寫,我在里面寫了一些Demo代碼,直接運(yùn)行即可看到效果,支持OC runtime的HOOK,C函數(shù)的fishhook。

AntiAntiDebug這個里面是反反調(diào)試的代碼。

fishhook這個是自動集成的fishhook模塊。

下面Framewroks已經(jīng)自動集成了Reveal.framework和Cycript.framework。

拖入砸殼應(yīng)用編譯

打開某助手選擇應(yīng)用游戲里面的越獄應(yīng)用,下載一個應(yīng)用就是已經(jīng)砸殼了的。

然后打開TargetApp目錄,拷貝ipa文件到當(dāng)前目錄下面,如下圖所示:

 

 

然后點(diǎn)擊運(yùn)行即可,運(yùn)行后可以從控制臺看到動態(tài)庫已經(jīng)注入成功,Reveal已經(jīng)成功加載!當(dāng)然手機(jī)上面也運(yùn)行起來了!

 

打開Mac上的Reveal即可查看應(yīng)用的界面結(jié)構(gòu)啦!如下圖所示:

 

默認(rèn)還集成了Cycript,從Cycript官網(wǎng)下載SDK,然后進(jìn)去SDK目錄運(yùn)行如下命令即可:

  1. ./cycript -r iphoneip:6666 

 

獲取微信消息

下面以一個簡單獲取微信收到的消息為例,來進(jìn)一步介紹它的使用,首先打開MonkeyAppDylib.m文件,在最下面寫入如下代碼:

  1. @interface CMessageWrap 
  2. @property (nonatomic, strong) NSString* m_nsContent; 
  3. @property (nonatomic, assign) NSInteger m_uiMessageType; 
  4. @end 
  5. CHDeclareClass(CMessageMgr) 
  6.  
  7. CHMethod2(void, CMessageMgr, AsyncOnAddMsg, NSString*, msg, MsgWrap, CMessageWrap*, msgWrap){ 
  8.     NSString* content = [msgWrap m_nsContent]; 
  9.     if([msgWrap m_uiMessageType] == 1){ 
  10.         NSLog(@"收到消息: %@", content); 
  11.     } 
  12.     CHSuper2(CMessageMgr, AsyncOnAddMsg, msg, MsgWrap, msgWrap); 
  13.  
  14. CHConstructor{ 
  15.     CHLoadLateClass(CMessageMgr); 
  16.     CHClassHook2(CMessageMgr, AsyncOnAddMsg, MsgWrap); 
  17.  

然后重新運(yùn)行就能看到效果了:

 

然后就可以愉快的開發(fā)非越獄插件了,還可以直接調(diào)試!

 

使用CocoaPods集成SDK

  1. target 'MonkeyAppDylib' do 
  2.      pod 'FLEX' 
  3. end  

這里的Target要設(shè)置為動態(tài)庫而不是App,然后執(zhí)行Pod install。然后將如下選項(xiàng)改回Yes。

 

在MonkeyAppDylib.m文件中加入SDK初始化代碼:

  1. #import <FLEX/FLEXManager.h> 
  2.  
  3. void initCycriptServer(){ 
  4.     [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidFinishLaunchingNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) { 
  5.         [[FLEXManager sharedManager] showExplorer]; 
  6.         CYListenServer(6666); 
  7.     }]; 
  8.  

運(yùn)行效果如下:

 

非越獄插件商店

既然可以支持CocoaPods了,那么完全可以將自己寫的非越獄插件傳到CocoaPods,然后通過pod一鍵安裝!

下面就將上面寫的獲取微信消息插件放到CocoaPods,新建Cocoa Touch Framework項(xiàng)目,然后增加頭文件CaptainHook.h和自己的源文件PrintWXMessage.m,并將上面的代碼拷貝過來,如下圖所示: 

 

然后生成framework弄成zip包(zip包需要包含模擬器和真機(jī)的架構(gòu)才能通過本地驗(yàn)證),編輯PrintWXMessage.podspec文件內(nèi)容如下:

  1. Pod::Spec.new do |spec| 
  2.   spec.name             = "PrintWXMessage" 
  3.   spec.version          = "1.0.0" 
  4.   spec.summary          = "Print WX Message for MonkeyDev" 
  5.   spec.description      = <<-DESC 
  6.                           - Print WX Message for MonkeyDev 
  7.                         DESC 
  8.  
  9.   spec.homepage         = "https://github.com/AloneMonkey/MonkeyDev" 
  10.  
  11.   spec.license          = { :type => "BSD", :file => "LICENSE" } 
  12.   spec.author           = { "AloneMonkey" => "liupeiqing1993@163.com" } 
  13.   spec.social_media_url = "http://weibo.com/xiaoqing28" 
  14.   spec.platform         = :ios, "8.0" 
  15.   spec.source           = { :http => "https://github.com/AloneMonkey/MonkeyDevPod/raw/master/PrintWXMessage/LatestBuild/PrintWXMessage.zip"
  16.   spec.vendored_frameworks = "PrintWXMessage.framework" 
  17. end  

這里source直接寫的是zip包的地址,里面就是筆者生成的framework動態(tài)庫。

增加私有CocosPods:

  1. pod repo add MonkeyDevSpecs https://github.com/AloneMonkey/MonkeyDevSpecs.git 

將PrintWXMessage包發(fā)布到私有Pod:

  1. pod repo push MonkeyDevSpecs PrintWXMessage.podspec 

修改Podfile文件內(nèi)容如下,然后pod install安裝,并且把原來寫在MonkeyAppDylib.m的打印微信消息的代碼刪除。

  1. source 'https://github.com/AloneMonkey/MonkeyDevSpecs.git' 
  2.  
  3. target 'MonkeyAppDylib' do 
  4.      pod 'PrintWXMessage' 
  5. end 
  6.  
  7. ~ MonkeyApp pod install 
  8. Cloning spec repo `alonemonkey` from `https://github.com/AloneMonkey/MonkeyDevSpecs.git` 
  9. Analyzing dependencies 
  10. Downloading dependencies 
  11. Installing PrintWXMessage (1.0.0) 
  12. Generating Pods project 
  13. Integrating client project 
  14.  
  15. [!] Please close any current Xcode sessions and use `MonkeyPod.xcworkspace` for this project from now on
  16. Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.  

運(yùn)行即可看到插件已經(jīng)完美集成成功!!!

 

MonkeyDev項(xiàng)目地址請點(diǎn)擊閱讀原文查看。 

責(zé)任編輯:龐桂玉 來源: iOS開發(fā)by唐巧
相關(guān)推薦

2022-07-26 20:00:35

場景RabbitMQMQ

2025-03-28 10:06:01

架構(gòu)輪詢延時

2023-11-30 08:34:29

批量消息消息隊(duì)列

2020-09-14 11:50:21

SpringBootRabbitMQJava

2016-08-24 15:43:01

2013-04-12 02:54:04

微信開放平臺iOS

2013-04-12 03:15:34

微信開放平臺Android

2022-08-22 08:45:57

Kafka網(wǎng)絡(luò)層源碼實(shí)現(xiàn)

2018-09-28 18:26:51

微信朋友圈更新

2013-04-12 01:22:02

2015-02-12 17:45:41

微信SDK

2022-04-16 12:46:28

Python微信

2025-03-31 10:49:16

2015-02-12 16:57:35

微信SDK

2016-10-11 16:31:56

微信服務(wù)器消息

2025-04-15 09:00:00

2016-11-02 13:12:31

微信離線消息

2015-01-14 10:32:55

微信JS SDK

2013-04-08 16:19:40

微信微信公眾平臺圖文消息

2017-06-27 10:53:32

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品一卡 | 日韩手机视频 | 国产91在线精品 | 福利视频网站 | 欧美日韩在线国产 | 国产亚洲一区二区三区在线 | 欧美精品网站 | av电影一区二区 | 美国黄色一级片 | 亚洲一区二区av | 精品网 | 精品国产不卡一区二区三区 | av天天看 | 欧美视频在线看 | 欧美亚洲国产精品 | 日韩黄 | 91麻豆精品国产91久久久资源速度 | 国产真实乱对白精彩久久小说 | 九色国产 | 国产精品视频一区二区三区四区国 | 国产毛片毛片 | 一区二区三区精品在线视频 | 国产精品视频网 | 日韩在线欧美 | 久久人人网 | 日本成人中文字幕在线观看 | 国产精品天堂 | 欧美三区在线观看 | 国产精品久久久久久久久久久久午夜片 | 午夜影院黄 | 一级特黄网站 | 国产成人免费视频网站高清观看视频 | 日韩在线中文字幕 | 91欧美| 亚洲国产精品久久久久婷婷老年 | 粉色午夜视频 | 九九热免费看 | 中文字幕免费视频 | 伊人中文字幕 | 老司机久久 | 久久伊人精品 |