日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

@interface CTDataFactoryViewController : CTMessageViewController

發(fā)布時間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 @interface CTDataFactoryViewController : CTMessageViewController 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

http://code.taobao.org/p/mpaa...

查找AlipayWallet相關(guān)的代碼

1、alipaywalletchatvoicesaver
iOS支付寶螞蟻森林能量收取助手

diff
ALISJSBridgeKit

剛開源不久的
https://github.com/davidxwwan... 目前支付寶使用的JsBridge,9 天之前 有人以靜態(tài)庫的形式 共享到GitHub

//JsBridge類,用來處理Native和Js的相互調(diào)用

//JsBridge類,用來處理Native和Js的相互調(diào)用 +@interface PSDJsBridge : NSObject<UIWebViewDelegate> + +/** + * @brief 創(chuàng)建一個JsBridge對象 + * + * @date 2014-08-20 + * + * @param page 關(guān)聯(lián)的PSDPage對象 + * @param webView 關(guān)聯(lián)的webView對象 + * @param delegate webView的代理 + * + * @return 返回一個JsBridge對象 + */ ++ (instancetype)bridge4Page:(PSDPage *)page webView:(UIWebView *)webView webViewDelegate:(id<UIWebViewDelegate>)delegate; + +/** #import "PSDKernel.h"@class NSString, PSDJsBridge, PSDPageParam;@interface PSDPage : PSDKernel {PSDJsBridge *_bridge;NSString *_pageUUID;PSDPageParam *_pageParam; }+ (id)pageWithPageParam:(id)arg1 parentObject:(id)arg2; @property(retain, nonatomic) PSDPageParam *pageParam; // @synthesize pageParam=_pageParam; @property(retain, nonatomic) NSString *pageUUID; // @synthesize pageUUID=_pageUUID; @property(readonly, nonatomic) PSDJsBridge *bridge; // @synthesize bridge=_bridge; - (void).cxx_destruct; - (id)createParam; - (id)initWithPageParam:(id)arg1 parentObject:(id)arg2; - (void)triggerRecord; - (id)getH5PageHAR;@end \t_jsApiManager (PSDJsApiManager*): <PSDJsApiManager: 0x8ce3fa0> \t_pluginManager (PSDPluginManager*): <PSDPluginManager: 0x8cd48a0> cy# [#0x10b689e0 _ivarDescription].toString() `<PSDJsBridge: 0x10b689e0>: in PSDJsBridge: \t_isBridgeReady (BOOL): 1 \t_isFailToLoad (BOOL): 0 \t_isTimeout (BOOL): 0 \t_uniqueId (int): 0 \t_page (PSDPage*): <PSDPage: 0x10b67e00> \t_responseCallbacks (NSMutableDictionary*): <__NSDictionaryM: 0x10b68a40> \t_startupMessageQueue (NSMutableArray*): nil \t_contentView (PSDContentView*): <H5WebView: 0x1028ff00> \t_webViewDelegate (<UIWebViewDelegate>*): <PSDView: 0x1028fec0> \t_webViewUIDelegate (<WKUIDelegate>*): <PSDView: 0x1028fec0> \t_webViewNavigationDelegate (<WKNavigationDelegate>*): <PSDView: 0x1028fec0> \t_loadFinishedDate (NSDate*): <__NSDate: 0x10185770> in NSObject: \tisa (Class): NSKVONotifying_PSDJsBridge`

關(guān)鍵代碼模擬請求

+(void)collectBubbles:(id)mbrige bubbleId:(NSString*)bID userId :(NSString*)userID {long timems=[[NSDate date] timeIntervalSince1970]*1000;NSString *timeStamp = [NSString stringWithFormat:@"%ld", timems];NSString *randNum=[H5WebViewController getNumberRandom:16];NSString *arg1=[NSString stringWithFormat:@"[{\"handlerName\":\"remoteLog\",\"data\":{\"seedId\":\"ANTFOREST-BEHAVIOR-CLICK-COLLECT\",\"param1\":\"shareBiz=none^bubbleId=%@^actionUserId=%@^type=behavior^currentTimestamp=%@\",\"param2\":\"monitor_type=clicked^remoteType=info^pageName=home.html^pageState=friend%@_enterhomeOff\",\"bizType\":\"antForest\"},\"callbackId\":\"remoteLog_15105601282940.%@\"},{\"handlerName\":\"rpc\",\"data\":{\"operationType\":\"alipay.antmember.forest.h5.collectEnergy\",\"requestData\":[{\"userId\":%@,\"bubbleIds\":[%@],\"av\":\"5\",\"ct\":\"ios\"}],\"disableLimitView\":true},\"callbackId\":\"rpc_15105601282960.%@\"}] ",bID,userID,timeStamp,userID,randNum,userID,bID,randNum];NSString *arg2=[NSString stringWithFormat:@"https://60000002.h5app.alipay.com/app/src/home.html?userId=%@",userID];PSDJsBridge *jsB=mbrige;[jsB _doFlushMessageQueue:arg1 url:arg2]; } install.exec "killall -9 AlipayWallet"

模擬獲取通訊錄信息的請求

Nov 30 09:57:52 iPhone AlipayWallet[1494] <Warning>: KNHooklog :-(void)_doFlushMessageQueue:url:(have 2 value)return:(null)value1:__NSCFString-->[{"handlerName":"remoteLog","data":{"type":"monitor","bizType":"ALIPAYJSAPI","logLevel":1,"actionId":"MonitorReport","seedId":"ALIPAYJSAPI_INVOKE_COUNTER","param1":"hideOptionButton|getAllContacts|rpc"},"callbackId":"remoteLog_15120070727620.6753028354141861"}]value2:__NSCFString-->*https://render.alipay.com/p/f/fd-j6lzqrgm/addressbook.html?__webview_options__=canPullDown%3DNO%26showOptionMenu%3DNO%26transparent%3DNO%26networkIndicator%3DYES*object:<PSDJsBridge: 0x18f0ee40>##########################################
  • _doFlushMessageQueue
{"handlerName":"remoteLog","data":{"type":"monitor","bizType":"ALIPAYJSAPI","logLevel":1,"actionId":"MonitorReport","seedId":"ALIPAYJSAPI_INVOKE_COUNTER","param1":"hideOptionButton|getAllContacts|rpc"},"callbackId":"remoteLog_15120070727620.6753028354141861"}
  • url
"https://render.alipay.com/p/f/fd-j6lzqrgm/addressbook.html?__webview_options__=canPullDown=NO&showOptionMenu=NO&transparent=NO&networkIndicator=YES" Nov 30 13:00:04 iPhone AlipayWallet[1935] <Warning>: KNHooklog :-(void)setRequest:(have 1 value)return:(null)value1:NSMutableURLRequest--><NSMutableURLRequest: 0xdd02880> { URL: https://render.alipay.com/p/f/fd-j6lzqrgm/addressbook.html?__webview_options__=canPullDown%3DNO%26showOptionMenu%3DNO%26transparent%3DNO%26networkIndicator%3DYES }object:PSDProxyEvent-proxy.request.start.handle##########################################

transformResponseData 獲取數(shù)據(jù)

Nov 30 09:57:48 iPhone AlipayWallet[1494] <Warning>: KNHooklog :-(id)transformResponseData:(have 1 value) Nov 29 18:59:41 iPhone AlipayWallet[1298] <Warning>: KNHooklog :-(void)addExposureChatMessage:(have 1 value) CTDataFactoryViewController Nov 29 18:59:39 iPhone AlipayWallet[1298] <Warning>: KNHooklog :-(void)mergeLoaclDataWithNewMessages:animation:cellDataItems:(have 3 value)

發(fā)送消息

Nov 29 19:05:35 iPhone AlipayWallet[1298] <Warning>: KNHooklog :-(void)addExposureChatMessage:(have 1 value)return:(null)value1:__NSDictionaryM-->{alignmentType = 2;data = {HeadIcon = "http://tfs.alipayocts.com/images/partner/T11HbXXXXXXXX";action = 0;bizImage = "Local_Image_(null).right";bizMemo = The;cellSelected = 0;clientMsgID = "2088622058395905@151195353329254";fromUId = 20886058395905;localId = 10;m = "The ";msgID = 171129190533903721;seed = "2088622058395905@151195353329254";sessionId = 2088312287547988;sessionType = 1;timeLine = "2017-11-29 11:05:33 +0000";toUId = 20883127547988;userID = 20883187547988;userType = 1;};id = 11;msgType = 0;originId = 11;state = 2;templateData = {m = "The ";};}object:<CTDataFactoryViewController: 0x5af3600> Nov 30 10:08:02 iPhone AlipayWallet[1494] <Warning>: KNHooklog :-(void)_log:json:(have 2 value)return:(null)value1:__NSCFConstantString-->RCVDvalue2:__NSCFDictionary-->{callbackId = "rpc_15120076820390.505001102341339";data = {headers = {};operationType = "com.alipay.antmember.biz.rpc.invite.h5.InviteFriend";requestData = ({friends = ({mobile = 15576235981;name = 155;scope = "NOT_RELATED_ALIPAY_ACCOUNT";userId = "";});scene = "C2C_OFFLINE_PAY";});};handlerName = rpc;}object:<PSDJsBridge: 0x18f0ee40>

分析H5WebViewController的請求邏輯

%hook DFClientDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {%log();// 打印某個類的所有方法的,查看所有方法的執(zhí)行順序[KNHook hookClass:@"H5Configs"];//H5WebViewController[KNHook hookClass:@"PSDJsBridge"];//[KNHook hookClass:@"H5ExternNativeApiManager"];//getUaPageName aluMTopService _tokenLoginInvoker[KNHook hookClass:@"TBSDKMTOPServer"];//getUaPageName aluMTopService _tokenLoginInvokerreturn %orig; } %end ########################################## Nov 29 14:42:50 iPhone AlipayWallet[2539] <Warning>: KNHooklog :-(void)_doFlushMessageQueue:url:(have 2 value)return:(null)value1:__NSCFString-->[{"handlerName":"hideOptionMenu","data":{},"callbackId":"hideOptionMenu_15119377706460.3834035850595683"},{"handlerName":"getAllContacts","data":{},"callbackId":"getAllContacts_15119377706480.0362124708481133"},{"handlerName":"reportData","data":{"spm":{"url":"https://render.alipay.com/p/f/fd-j6lzqrgm/addressbook.html","bizType":"H5behavior","isSPM":true,"cityid":"","spmId":"a284.b3011"},"spmDetail":{"url":"https://render.alipay.com/p/f/fd-j6lzqrgm/addressbook.html","fullUrl":"https://render.alipay.com/p/f/fd-j6lzqrgm/addressbook.html?__webview_options__=canPullDown%3DNO%26showOptionMenu%3DNO%26transparent%3DNO%26networkIndicator%3DYES","mPageState":"","bizScenario":"","mBizScenario":"","appId":"20000067"}},"callbackId":"reportData_15119377706540.555558682186529"},{"handlerName":"remoteLog","data":{"seedId":"H5_TRACERT_USE_LOG","actionId":"clicked","logLevel":3,"param4":"tracert-version=1.1.0^mBizScenario=^mPageState=^mPageName=^fullURL=https://render.alipay.com/p/f/fd-j6lzqrgm/addressbook.html?__webview_options__=canPullDown%3DNO%26showOptionMenu%3DNO%26transparent%3DNO%26networkIndicator%3DYES","type":"monitor","bizType":"H5behavior"},"callbackId":"remoteLog_15119377706550.984431563410908"}]value2:__NSCFString-->https://render.alipay.com/p/f/fd-j6lzqrgm/addressbook.html?__webview_options__=canPullDown%3DNO%26showOptionMenu%3DNO%26transparent%3DNO%26networkIndicator%3DYESobject:<PSDJsBridge: 0xc4a0f50>

重點關(guān)注handlerName

關(guān)注url 參數(shù)的如何組裝

Nov 29 14:42:50 iPhone AlipayWallet[2539] <Warning>: KNHooklog :-(void)_log:json:(have 2 value)

PSDConnectionMonitor

  • PSDURLProtocolProcessor:didReceiveResponse
Nov 29 15:05:58 iPhone AlipayWallet[2579] <Warning>: KNHooklog :-(void)PSDURLProtocolProcessor:didReceiveResponse:(have 2 value)return:(null)value1:PSDURLProtocolProcessor--><PSDURLProtocolProcessor: 0x10ec60e0>value2:NSHTTPURLResponse--><NSHTTPURLResponse: 0xf93cf80> { URL: https://oalipay-dl-django.alicdn.com/rest/1.0/image?fileIds=5a6g8mQHRGidDFZ_6ftluAAAACMAAQQD&zoom=140w_140h } { status code: 200, headers {Age = 1096027;"Cache-Control" = "max-age=2592000";Connection = "keep-alive";"Content-Length" = 4181;"Content-Type" = "image/jpeg";Date = "Thu, 16 Nov 2017 14:38:51 GMT";EagleId = 776186cf15119391584854726e;Expires = "Sat, 16 Dec 2017 14:38:51 GMT";"Keep-Alive" = "timeout=120";"Last-Modified" = "Wed, 15 Apr 2015 07:03:44 GMT";Server = Tengine;"Timing-Allow-Origin" = "*";Via = "cache23.l2cn8[32,304-0,H], cache28.l2cn8[33,0], cache7.cn6[0,200-0,H], cache7.cn6[3,0]";"X-Cache" = "HIT TCP_MEM_HIT dirn:8:549551215 mlen:-1";"X-Swift-CacheTime" = 2592000;"X-Swift-SaveTime" = "Thu, 16 Nov 2017 14:38:51 GMT";auth = "1, serverlist, dl.django.t.taobao.com";} }object:<PSDConnectionMonitor: 0xd913e50>########################################## Nov 29 15:05:58 iPhone AlipayWallet[2579] <Warning>: KNHooklog :-(void)setCurrentResponse:(have 1 value) Nov 29 15:05:58 iPhone AlipayWallet[2579] <Warning>: KNHooklog :-(void)startStatistics:receiveDataLength:error:(have 3 value)

總結(jié)

以上是生活随笔為你收集整理的@interface CTDataFactoryViewController : CTMessageViewController的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。