├── README.md ├── a10.png └── alipaylog ├── .theos ├── _ │ ├── DEBIAN │ │ └── control │ └── Library │ │ └── MobileSubstrate │ │ └── DynamicLibraries │ │ ├── alipaylog.dylib │ │ └── alipaylog.plist ├── build_session ├── fakeroot ├── last_package ├── obj │ └── debug │ │ ├── .stamp │ │ ├── alipaylog.dylib │ │ ├── arm64 │ │ ├── APListData.m.92570829.o │ │ ├── H5WebViewController.m.92570829.o │ │ ├── Tweak.xm.92570829.o │ │ └── alipaylog.dylib │ │ └── armv7 │ │ ├── APListData.m.96d50747.o │ │ ├── H5WebViewController.m.96d50747.o │ │ ├── Tweak.xm.96d50747.o │ │ └── alipaylog.dylib └── packages │ └── com.yourcompany.alipaylog-0.0.1 ├── APListData.h ├── APListData.m ├── AUToast.h ├── H5WebViewController.h ├── H5WebViewController.m ├── Makefile ├── PSDJsBridge.h ├── Tweak.xm ├── alipaylog.plist ├── control └── packages └── com.yourcompany.alipaylog_0.0.1-119+debug_iphoneos-arm.deb /README.md: -------------------------------------------------------------------------------- 1 | 2 | #越狱插件 3 | #iOS支付宝蚂蚁森林能量收取助手 4 | 5 | 6 | ### 分析文章博客 7 | 8 | http://blog.csdn.net/kissing_huo/article/details/78548942 9 | 10 | 感觉csdn的排版markdwon要好看点吧 吾爱的和预览有点偏差 11 | 12 | 13 | show 14 | -------------------------------------------------------------------------------- /a10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/a10.png -------------------------------------------------------------------------------- /alipaylog/.theos/_/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: com.yourcompany.alipaylog 2 | Name: alipaylog 3 | Depends: mobilesubstrate 4 | Architecture: iphoneos-arm 5 | Description: An awesome MobileSubstrate tweak! 6 | Maintainer: cardlan_yuhuajun 7 | Author: cardlan_yuhuajun 8 | Section: Tweaks 9 | Version: 0.0.1-119+debug 10 | Installed-Size: 264 11 | -------------------------------------------------------------------------------- /alipaylog/.theos/_/Library/MobileSubstrate/DynamicLibraries/alipaylog.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/_/Library/MobileSubstrate/DynamicLibraries/alipaylog.dylib -------------------------------------------------------------------------------- /alipaylog/.theos/_/Library/MobileSubstrate/DynamicLibraries/alipaylog.plist: -------------------------------------------------------------------------------- 1 | { Filter = { Bundles = ( "com.alipay.iphoneclient" ); }; } 2 | -------------------------------------------------------------------------------- /alipaylog/.theos/build_session: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/build_session -------------------------------------------------------------------------------- /alipaylog/.theos/fakeroot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/fakeroot -------------------------------------------------------------------------------- /alipaylog/.theos/last_package: -------------------------------------------------------------------------------- 1 | ./packages/com.yourcompany.alipaylog_0.0.1-119+debug_iphoneos-arm.deb 2 | -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/.stamp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/.stamp -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/alipaylog.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/alipaylog.dylib -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/arm64/APListData.m.92570829.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/arm64/APListData.m.92570829.o -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/arm64/H5WebViewController.m.92570829.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/arm64/H5WebViewController.m.92570829.o -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/arm64/Tweak.xm.92570829.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/arm64/Tweak.xm.92570829.o -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/arm64/alipaylog.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/arm64/alipaylog.dylib -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/armv7/APListData.m.96d50747.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/armv7/APListData.m.96d50747.o -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/armv7/H5WebViewController.m.96d50747.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/armv7/H5WebViewController.m.96d50747.o -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/armv7/Tweak.xm.96d50747.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/armv7/Tweak.xm.96d50747.o -------------------------------------------------------------------------------- /alipaylog/.theos/obj/debug/armv7/alipaylog.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/.theos/obj/debug/armv7/alipaylog.dylib -------------------------------------------------------------------------------- /alipaylog/.theos/packages/com.yourcompany.alipaylog-0.0.1: -------------------------------------------------------------------------------- 1 | 119 -------------------------------------------------------------------------------- /alipaylog/APListData.h: -------------------------------------------------------------------------------- 1 | // 2 | // APListData.h 3 | // GameTodayNews 4 | // 5 | // Created by cardlan_yuhuajun on 2017/11/14. 6 | // Copyright © 2017年 hua. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface APListData : NSObject 12 | 13 | +(id)sharedInstance; 14 | @property(nonatomic,strong)id jsBridge; 15 | @property(nonatomic,strong)id topFriends; 16 | @property(atomic,strong)NSMutableDictionary *topBubblesDic; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /alipaylog/APListData.m: -------------------------------------------------------------------------------- 1 | // 2 | // APListData.m 3 | // GameTodayNews 4 | // 5 | // Created by cardlan_yuhuajun on 2017/11/14. 6 | // Copyright © 2017年 hua. All rights reserved. 7 | // 8 | 9 | #import "APListData.h" 10 | 11 | @implementation APListData 12 | @synthesize jsBridge; 13 | @synthesize topFriends; 14 | @synthesize topBubblesDic; 15 | 16 | static APListData *apList=nil; 17 | +(id)sharedInstance 18 | { 19 | static dispatch_once_t onceToken; 20 | dispatch_once(&onceToken, ^{ 21 | apList=[[self alloc]init]; 22 | 23 | }); 24 | return apList; 25 | } 26 | 27 | + (instancetype)allocWithZone:(struct _NSZone *)zone 28 | { 29 | static dispatch_once_t onceToken; 30 | dispatch_once(&onceToken, ^{ 31 | apList = [super allocWithZone:zone]; 32 | }); 33 | return apList; 34 | } 35 | 36 | /*-(NSMutableDictionary*)topBubblesDic 37 | { 38 | if(!_topBubblesDic){ 39 | _topBubblesDic=[NSMutableDictionary dictionaryWithCapacity:10]; 40 | } 41 | return _topBubblesDic; 42 | } 43 | 44 | -(void)setTopBubblesDic:(NSMutableDictionary *)topBubblesDic{ 45 | 46 | _topBubblesDic=topBubblesDic; 47 | if(_topBubblesDic!=topBubblesDic) 48 | { 49 | [_topBubblesDic release]; 50 | _topBubblesDic=[topBubblesDic retain]; 51 | } 52 | 53 | }*/ 54 | @end 55 | -------------------------------------------------------------------------------- /alipaylog/AUToast.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated by class-dump 3.5 (64 bit). 3 | // 4 | // class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2013 by Steve Nygard. 5 | // 6 | 7 | 8 | @class NSString, NSTimer, UIImageView, UILabel; 9 | 10 | @interface AUToast : UIView 11 | { 12 | int _iconType; 13 | UIView *_iconView; 14 | UILabel *_textLabel; 15 | NSString *_progressPrefixText; 16 | int _suppressCount; 17 | double _second; 18 | double _xOffset; 19 | double _yOffset; 20 | NSTimer *_timer; 21 | UIView *_backgoundView; 22 | NSString *_voiceOverText; 23 | 24 | UIImageView *_backgroundImageView; 25 | NSString *_logTag; 26 | } 27 | 28 | 29 | + (id)presentModalToastWithin:(id)arg1 withIcon:(int)arg2 text:(id)arg3 duration:(double)arg4 delay:(double)arg5 logTag:(id)arg6 completion:(id)arg7; 30 | + (id)presentModalToastWithin:(id)arg1 withIcon:(int)arg2 text:(id)arg3 duration:(double)arg4 logTag:(id)arg5 completion:(id)arg6; 31 | + (id)presentModelToastWithin:(id)arg1 text:(id)arg2 logTag:(id)arg3; 32 | + (id)presentToastWithin:(id)arg1 withIcon:(int)arg2 text:(id)arg3 duration:(double)arg4 delay:(double)arg5 logTag:(id)arg6 completion:(id)arg7; 33 | + (id)presentToastWithin:(id)arg1 withIcon:(int)arg2 text:(id)arg3 duration:(double)arg4 logTag:(id)arg5 completion:(id)arg6; 34 | 35 | + (id)presentToastWithin:(id)arg1 withIcon:(int)arg2 text:(id)arg3 duration:(double)arg4 logTag:(id)arg5; 36 | + (id)presentToastWithin:(id)arg1 withIcon:(int)arg2 text:(id)arg3 logTag:(id)arg4; 37 | + (id)presentToastWithin:(id)arg1 text:(id)arg2 logTag:(id)arg3; 38 | + (id)presentToastWithText:(id)arg1 logTag:(id)arg2; 39 | @property(copy, nonatomic) NSString *logTag; // @synthesize logTag=_logTag; 40 | @property(retain, nonatomic) UIImageView *backgroundImageView; // @synthesize backgroundImageView=_backgroundImageView; 41 | @property(nonatomic) int suppressCount; // @synthesize suppressCount=_suppressCount; 42 | @property(retain, nonatomic) NSString *voiceOverText; // @synthesize voiceOverText=_voiceOverText; 43 | @property(retain, nonatomic) UIView *backgoundView; // @synthesize backgoundView=_backgoundView; 44 | @property(retain, nonatomic) NSTimer *timer; // @synthesize timer=_timer; 45 | @property(nonatomic) double yOffset; // @synthesize yOffset=_yOffset; 46 | @property(nonatomic) double xOffset; // @synthesize xOffset=_xOffset; 47 | @property(nonatomic) double second; // @synthesize second=_second; 48 | 49 | - (void)setSocialTipToastStyle; 50 | - (void)setProgressText:(float)arg1; 51 | - (void)setProgressPrefix:(id)arg1; 52 | - (void)dismissToast; 53 | - (void)updateAllToastDisplay; 54 | - (void)suppressRelatedToasts:(_Bool)arg1; 55 | - (void)popFromStack; 56 | - (void)pushToStack; 57 | - (_Bool)relatedToToast:(id)arg1; 58 | - (void)showDelayedToast; 59 | - (void)playiingVoiceOverText; 60 | - (void)showToast; 61 | - (void)addToastIconView; 62 | - (id)initWithText:(id)arg1 toastType:(int)arg2; 63 | 64 | @end 65 | 66 | -------------------------------------------------------------------------------- /alipaylog/H5WebViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated by class-dump 3.5 (64 bit). 3 | // 4 | // class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2013 by Steve Nygard. 5 | // 6 | 7 | 8 | #import 9 | #import 10 | #import "APListData.h" 11 | #import "PSDJsBridge.h" 12 | 13 | @interface H5WebViewController : UIViewController 14 | { 15 | 16 | } 17 | 18 | +(NSString*)getNumberRandom:(int)count; 19 | +(void)getTopUserBubbles:(id)mbrige userId:(NSString*)userID; 20 | +(void)collectBubbles:(id)mbrige bubbleId:(NSString*)bID userId :(NSString*)userID; 21 | +(void)collectTopBub; 22 | @property(readonly, nonatomic) UIWebView *h5WebView; 23 | @property(readonly, nonatomic) UIWebView *webView; 24 | @property(retain, nonatomic) UILabel *webviewDomainLabel; 25 | @end 26 | 27 | -------------------------------------------------------------------------------- /alipaylog/H5WebViewController.m: -------------------------------------------------------------------------------- 1 | 2 | #import "H5WebViewController.h" 3 | 4 | @interface H5WebViewController () 5 | 6 | @end 7 | 8 | @implementation H5WebViewController 9 | 10 | 11 | +(NSString*)getNumberRandom:(int)count 12 | { 13 | NSString *strRandom = @""; 14 | 15 | for(int i=0; i 2 | #import 3 | #import "H5WebViewController.h" 4 | #import "APListData.h" 5 | #import "PSDJsBridge.h" 6 | #import "AUToast.h" 7 | 8 | %hook PSDJsBridge 9 | + (id)bridge4Page:(id)arg1 contentView:(id)arg2 webViewDelegate:(id)arg3 { %log; id r = %orig; HBLogDebug(@" = %@", r); return r; } 10 | + (id)bridge4Page:(id)arg1 contentView:(id)arg2 pageParam:(id)arg3 { %log; id r = %orig; HBLogDebug(@" = %@", r); return r; } 11 | + (void)enableLogging { %log; %orig; } 12 | - (void)setIsTimeout:(_Bool )isTimeout { %log; %orig; } 13 | - (_Bool )isTimeout { %log; _Bool r = %orig; HBLogDebug(@" = %d", r); return r; } 14 | - (void)setIsFailToLoad:(_Bool )isFailToLoad { %log; %orig; } 15 | - (_Bool )isFailToLoad { %log; _Bool r = %orig; HBLogDebug(@" = %d", r); return r; } 16 | - (void)setLoadFinishedDate:(NSDate *)loadFinishedDate { %log; %orig; } 17 | - (NSDate *)loadFinishedDate { %log; NSDate * r = %orig; HBLogDebug(@" = %@", r); return r; } 18 | - (void)setIsBridgeReady:(_Bool )isBridgeReady { %log; %orig; } 19 | - (_Bool )isBridgeReady { %log; _Bool r = %orig; HBLogDebug(@" = %d", r); return r; } 20 | 21 | 22 | - (void)setStartupMessageQueue:(NSMutableArray *)startupMessageQueue { %log; %orig; } 23 | - (NSMutableArray *)startupMessageQueue { %log; NSMutableArray * r = %orig; HBLogDebug(@" = %@", r); return r; } 24 | - (void)setResponseCallbacks:(NSMutableDictionary *)responseCallbacks { %log; %orig; } 25 | - (NSMutableDictionary *)responseCallbacks { %log; NSMutableDictionary * r = %orig; HBLogDebug(@" = %@", r); return r; } 26 | 27 | - (void)setUniqueId:(int )uniqueId { %log; %orig; } 28 | - (int )uniqueId { %log; int r = %orig; HBLogDebug(@" = %d", r); return r; } 29 | - (void)wkLoadFinisd { %log; %orig; } 30 | - (void)webView:(id)arg1 runJavaScriptTextInputPanelWithPrompt:(id)arg2 defaultText:(id)arg3 initiatedByFrame:(id)arg4 completionHandler:(id)arg5 { %log; %orig; } 31 | - (void)webView:(id)arg1 runJavaScriptConfirmPanelWithMessage:(id)arg2 initiatedByFrame:(id)arg3 completionHandler:(id)arg4 { %log; %orig; } 32 | - (void)webView:(id)arg1 runJavaScriptAlertPanelWithMessage:(id)arg2 initiatedByFrame:(id)arg3 completionHandler:(id)arg4 { %log; %orig; } 33 | - (id)getPanelTitleWithType:(int)arg1 webView:(id)arg2 { %log; id r = %orig; HBLogDebug(@" = %@", r); return r; } 34 | - (id)javaScriptPanelTitleWithWebView:(id)arg1 { %log; id r = %orig; HBLogDebug(@" = %@", r); return r; } 35 | - (void)addDelayTask:(id)arg1 { %log; %orig; } 36 | - (_Bool)isCurrentVCVisible { %log; _Bool r = %orig; HBLogDebug(@" = %d", r); return r; } 37 | - (_Bool)isCurrentVCAnimationFinished { %log; _Bool r = %orig; HBLogDebug(@" = %d", r); return r; } 38 | - (void)webViewDidClose:(id)arg1 { %log; %orig; } 39 | - (id)webView:(id)arg1 createWebViewWithConfiguration:(id)arg2 forNavigationAction:(id)arg3 windowFeatures:(id)arg4 { %log; id r = %orig; HBLogDebug(@" = %@", r); return r; } 40 | - (void)webViewWebContentProcessDidTerminate:(id)arg1 { %log; %orig; } 41 | - (void)webView:(id)arg1 didReceiveAuthenticationChallenge:(id)arg2 completionHandler:(id)arg3 { %log; %orig; } 42 | - (void)webView:(id)arg1 didFailNavigation:(id)arg2 withError:(id)arg3 { %log; %orig; } 43 | - (void)webView:(id)arg1 didFinishNavigation:(id)arg2 { %log; %orig; } 44 | - (void)webView:(id)arg1 didCommitNavigation:(id)arg2 { %log; %orig; } 45 | - (void)webView:(id)arg1 didFailProvisionalNavigation:(id)arg2 withError:(id)arg3 { %log; %orig; } 46 | - (void)webView:(id)arg1 didReceiveServerRedirectForProvisionalNavigation:(id)arg2 { %log; %orig; } 47 | - (void)webView:(id)arg1 didStartProvisionalNavigation:(id)arg2 { %log; %orig; } 48 | - (void)webView:(id)arg1 decidePolicyForNavigationResponse:(id)arg2 decisionHandler:(id)arg3 { %log; %orig; } 49 | - (void)webView:(id)arg1 decidePolicyForNavigationAction:(id)arg2 decisionHandler:(id)arg3 { %log; %orig; } 50 | - (void)reset { %log; %orig; } 51 | - (void)doLoadJSBridgeFileWithDynamicInjectJsCodeSnippets:(id)arg1 { %log; %orig; } 52 | - (void)loadJSBridgeFileWithDynamicInjectJsCodeSnippets:(id)arg1 { %log; %orig; } 53 | - (void)loadJS:(id)arg1 { %log; %orig; } 54 | - (void)callJsApi:(id)arg1 url:(id)arg2 data:(id)arg3 responseCallback:(id)arg4 { %log; %orig; } 55 | - (void)callHandler:(id)arg1 data:(id)arg2 responseCallback:(id)arg3 { %log; %orig; } 56 | - (void)callHandler:(id)arg1 data:(id)arg2 { %log; %orig; } 57 | - (void)callHandler:(id)arg1 { %log; %orig; } 58 | - (void)send:(id)arg1 responseCallback:(id)arg2 { %log; %orig; } 59 | - (void)send:(id)arg1 { %log; %orig; } 60 | - (void)webView:(id)arg1 didCreateJavaScriptContext:(id)arg2 { %log; %orig; } 61 | - (void)webView:(id)arg1 didFailLoadWithError:(id)arg2 { %log; %orig; } 62 | - (void)webViewDidFinishLoad:(id)arg1 { %log; %orig; } 63 | - (void)updateBridgeReadyStatus:(id)arg1 { %log; %orig; } 64 | - (void)webViewDidStartLoad:(id)arg1 { %log; %orig; } 65 | - (_Bool)webView:(id)arg1 shouldStartLoadWithRequest:(id)arg2 navigationType:(long long)arg3 { %log; _Bool r = %orig; HBLogDebug(@" = %d", r); return r; } 66 | - (void)flushResponseCallbacks { %log; %orig; } 67 | - (void)loadFinished { %log; %orig; } 68 | - (void)_log:(id)arg1 json:(id)arg2 { %log; %orig; } 69 | - (id)_deserializeMessageJSON:(id)arg1 { %log; id r = %orig; HBLogDebug(@" = %@", r); return r; } 70 | - (id)_serializeMessage:(id)arg1 { %log; id r = %orig; HBLogDebug(@" = %@", r); return r; } 71 | - (id)transformResponseData:(id)arg1 72 | { 73 | %log; 74 | id r = %orig; 75 | HBLogDebug(@" = %@", r); 76 | APListData *jdata=[APListData sharedInstance]; 77 | jdata.jsBridge=self; 78 | 79 | 80 | if(arg1!=nil&&[arg1 isKindOfClass:[NSDictionary class]]) 81 | { 82 | //获取top10的用户ID 83 | NSDictionary *dic=arg1; 84 | id topListvalue=[dic objectForKey:@"friendRanking"]; 85 | if(topListvalue){ 86 | jdata.topFriends=topListvalue; 87 | } 88 | //获取用户的能量的ID 89 | id userbubbles=[dic objectForKey:@"bubbles"]; 90 | if(userbubbles){ 91 | if(![userbubbles isKindOfClass:[NSArray class]]||[userbubbles count]<=0) 92 | return r; 93 | 94 | NSLog(@"发现能量了---------%@",userbubbles); 95 | 96 | NSDictionary *dicbulles=[userbubbles objectAtIndex:0]; 97 | NSString *userID=[dicbulles objectForKey:@"userId"]; 98 | 99 | [jdata.topBubblesDic setObject:userbubbles forKey:userID]; 100 | 101 | } 102 | } 103 | 104 | 105 | 106 | return r; 107 | } 108 | 109 | - (void)_doFlushMessageQueue:(id)arg1 url:(id)arg2 110 | { 111 | 112 | %log; 113 | 114 | %orig; 115 | } 116 | - (void)_flushMessageQueue { %log; %orig; } 117 | - (void)_flushMessageQueueWithMessage:(id)arg1 url:(id)arg2 { %log; %orig; } 118 | - (void)_doFlushH5ReportMessageQueue:(id)arg1 url:(id)arg2 { %log; %orig; } 119 | - (void)_flushH5ReportMessageQueue { %log; %orig; } 120 | - (void)_doFlushMonitorMessageQueue:(id)arg1 url:(id)arg2 { %log; %orig; } 121 | - (void)_flushMonitorMessageQueue { %log; %orig; } 122 | - (void)_dispatchMessage:(id)arg1 { %log; %orig; } 123 | - (void)_queueMessage:(id)arg1 { %log; %orig; } 124 | - (void)_sendData:(id)arg1 responseCallback:(id)arg2 handlerName:(id)arg3 { %log; %orig; } 125 | - (void)doSendData:(id)arg1 responseCallback:(id)arg2 handlerName:(id)arg3 { %log; %orig; } 126 | - (void)observeValueForKeyPath:(id)arg1 ofObject:(id)arg2 change:(id)arg3 context:(void *)arg4 { %log; %orig; } 127 | - (void)dealloc { %log; %orig; } 128 | - (id)init { %log; id r = %orig; HBLogDebug(@" = %@", r); return r; } 129 | - (NSString *)debugDescription { %log; NSString * r = %orig; HBLogDebug(@" = %@", r); return r; } 130 | - (NSString *)description { %log; NSString * r = %orig; HBLogDebug(@" = %@", r); return r; } 131 | - (unsigned long long )hash { %log; unsigned long long r = %orig; HBLogDebug(@" = %llu", r); return r; } 132 | - (Class )superclass { %log; Class r = %orig; HBLogDebug(@" = %@", r); return r; } 133 | %end 134 | 135 | 136 | %hook H5RPCCaller 137 | - (void)callRPC:(id)arg1 completeBlock:(id)arg2 138 | { 139 | %log; 140 | 141 | %orig; 142 | } 143 | %end 144 | 145 | %hook H5WebViewController 146 | - (void)viewDidLoad 147 | { 148 | %orig; 149 | APListData *jdata=[APListData sharedInstance]; 150 | jdata.topBubblesDic=[NSMutableDictionary dictionaryWithCapacity:10]; 151 | 152 | 153 | } 154 | - (void)viewDidAppear:(_Bool)arg1 155 | { 156 | %orig; 157 | UILabel *showlb=[self webviewDomainLabel]; 158 | 159 | if ([showlb.text rangeOfString:@"60000002.h5app.alipay.com"].location != NSNotFound) { 160 | UIButton *btnAdd=[[UIButton alloc]initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width-80, 150, 80, 40)]; 161 | [btnAdd setTitle:@"一键收取" forState:UIControlStateNormal]; 162 | btnAdd.titleLabel.font = [UIFont systemFontOfSize: 15.0]; 163 | [btnAdd addTarget:self action:@selector(clickBtn) forControlEvents:UIControlEventTouchUpInside]; 164 | [btnAdd setBackgroundColor:[UIColor orangeColor]]; 165 | 166 | UIButton *btnTest=[[UIButton alloc]initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width-80, 210, 80, 40)]; 167 | [btnTest setTitle:@"Test" forState:UIControlStateNormal]; 168 | btnTest.titleLabel.font = [UIFont systemFontOfSize: 15.0]; 169 | //[btnTest addTarget:self action:@selector(collectTopBub) forControlEvents:UIControlEventTouchUpInside]; 170 | [btnTest setBackgroundColor:[UIColor orangeColor]]; 171 | 172 | UIWebView *show=[self h5WebView]; 173 | [show addSubview:btnAdd]; 174 | // [show addSubview:btnTest]; 175 | } 176 | 177 | 178 | } 179 | 180 | 181 | %new 182 | - (void)clickBtn 183 | { 184 | AUToast *progressView=[%c(AUToast) presentToastWithText:@"收取能量中" logTag:@"1"]; 185 | UIWebView *show=[self h5WebView]; 186 | APListData *jdata=[APListData sharedInstance]; 187 | NSLog(@"一键收取 click:%@---%@",jdata.jsBridge,[jdata.topFriends class]); 188 | int count=1; 189 | for(NSDictionary *key in jdata.topFriends) 190 | { 191 | 192 | NSDictionary *dic2=key; 193 | NSString *userID=[dic2 objectForKey:@"userId"]; 194 | [H5WebViewController getTopUserBubbles:jdata.jsBridge userId:userID]; 195 | NSLog(@"这是第%d波用户获取能量",count); 196 | count++; 197 | [NSThread sleepForTimeInterval:0.1]; 198 | } 199 | //等最后一波的回掉结果 200 | dispatch_async(dispatch_get_global_queue(0, 0), ^{ 201 | 202 | [NSThread sleepForTimeInterval:0.4]; 203 | dispatch_async(dispatch_get_main_queue(), ^{ 204 | [H5WebViewController collectTopBub]; 205 | [progressView dismissToast]; 206 | 207 | AUToast *showSucessView=[%c(AUToast) presentModelToastWithin:show text:@"前10的用户全部收取成功,自行刷新页面" logTag:@"2"]; 208 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 209 | [showSucessView dismissToast]; 210 | }); 211 | }); 212 | 213 | }); 214 | 215 | 216 | } 217 | 218 | 219 | 220 | 221 | %end 222 | -------------------------------------------------------------------------------- /alipaylog/alipaylog.plist: -------------------------------------------------------------------------------- 1 | { Filter = { Bundles = ( "com.alipay.iphoneclient" ); }; } 2 | -------------------------------------------------------------------------------- /alipaylog/control: -------------------------------------------------------------------------------- 1 | Package: com.yourcompany.alipaylog 2 | Name: alipaylog 3 | Depends: mobilesubstrate 4 | Version: 0.0.1 5 | Architecture: iphoneos-arm 6 | Description: An awesome MobileSubstrate tweak! 7 | Maintainer: cardlan_yuhuajun 8 | Author: cardlan_yuhuajun 9 | Section: Tweaks 10 | -------------------------------------------------------------------------------- /alipaylog/packages/com.yourcompany.alipaylog_0.0.1-119+debug_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackxhj/alipayForestTweak/a60e3dee8aefa5bab11b27235a8ca3e7571fe8a1/alipaylog/packages/com.yourcompany.alipaylog_0.0.1-119+debug_iphoneos-arm.deb --------------------------------------------------------------------------------