得到App 逆向分析学习过程

先导出所有头文件, 慢慢看

./class-dump -S -s -H /Users/hz/Desktop/得到/Payload/LuoJiFM-IOS.app/LuoJiFM-IOS -o ~/Desktop/DeDao

得到App 逆向分析学习过程_第1张图片
image.png

发现里面网络请求是用的 DataService 这个类来处理的

#import "NSObject.h"

#import "UIAlertViewDelegate.h"

@class NSString;

@interface DataService : NSObject 
{
    long long retryTimes;
}

+ (id)GetInstance;
- (void)FM_AddChat:(long long)arg1 infoId:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_BindOrModifyPhone:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_ChangeBookOnShelf:(id)arg1 set:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_ChangePassword:(id)arg1 newPwd:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_ChangeUserProfile:(id)arg1 saveValue:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_CheckVerificationCode:(id)arg1 code:(id)arg2 countryCode:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_DDLiveGetHistoryMessage:(long long)arg1 pageSize:(long long)arg2 roomId:(id)arg3 messageType:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_DDLiveGetPlayBackHistoryMessage:(long long)arg1 pageSize:(long long)arg2 roomId:(id)arg3 messageType:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_DDLiveRoomProgramStatus:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_DDLiveSendMeesageToServer:(id)arg1 userName:(id)arg2 userAvatar:(id)arg3 messageContent:(id)arg4 messageUUID:(id)arg5 callBack:(CDUnknownBlockType)arg6;
- (void)FM_DeleteChat:(long long)arg1 infoId:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_DownLoadEbook:(long long)arg1 isDRM:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_FindPassword:(id)arg1 countryCode:(id)arg2 newPwd:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_FirstOpenEBook:(long long)arg1 ebookName:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetActivityInfo:(long long)arg1 responseBlock:(CDUnknownBlockType)arg2;
- (void)FM_GetAudioDetail:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetBalanceCountWithCallBack:(CDUnknownBlockType)arg1;
- (void)FM_GetChatNumber:(CDUnknownBlockType)arg1;
- (void)FM_GetDiscoverAllList:(long long)arg1 sort:(id)arg2 responseBlock:(CDUnknownBlockType)arg3;
- (void)FM_GetDiscoverAudioList:(long long)arg1 sort:(id)arg2 responseBlock:(CDUnknownBlockType)arg3;
- (void)FM_GetDiscoverBookList:(long long)arg1 sort:(id)arg2 bookType:(long long)arg3 responseBlock:(CDUnknownBlockType)arg4;
- (void)FM_GetDiscoverGatherInfo:(long long)arg1 responseBlock:(CDUnknownBlockType)arg2;
- (void)FM_GetFreeAudioInfo:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetGoldenImagesListWithBlock:(CDUnknownBlockType)arg1;
- (void)FM_GetGoldenInfoWithBlock:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetGoldenWordsListWithBlock:(CDUnknownBlockType)arg1;
- (void)FM_GetJCBProductList:(CDUnknownBlockType)arg1;
- (void)FM_GetLikeListForArticleWithPage:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetLikeListForAudioWithPage:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetLikeListForGlodenWordsWithPage:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetLikeListWithType:(long long)arg1 page:(long long)arg2 callBlock:(CDUnknownBlockType)arg3;
- (void)FM_GetPaidDetail:(long long)arg1 bid:(long long)arg2 tid:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetPaidList:(long long)arg1 paidType:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetRechargeDetail:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetURLArrayWithIds:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetURLWithId:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetUserBookshelfList:(long long)arg1 action:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetUserOutBookshelfList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_HowToGetRule:(CDUnknownBlockType)arg1;
- (void)FM_InitalizedAPP:(CDUnknownBlockType)arg1;
- (void)FM_LikeAudio:(id)arg1 like:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_LikeGlodenWords:(long long)arg1 like:(_Bool)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_LikeWithType:(int)arg1 like:(long long)arg2 itemId:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_ListChat:(CDUnknownBlockType)arg1;
- (void)FM_LogOutByLiftOff;
- (void)FM_MobileLogin:(id)arg1 countrycallingcodes:(id)arg2 pwd:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_MobileLogout:(CDUnknownBlockType)arg1;
- (void)FM_MobileRegister:(id)arg1 password:(id)arg2 countryCode:(id)arg3 nickname:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_ModifyPhone:(id)arg1 countryCode:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_MultiGetAudioDrmToken:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_NewGetForgetPwdSMSCode:(id)arg1 countryCode:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_NewGetSMSCode:(id)arg1 countryCode:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_NewGetSMSCodeNoVerify:(id)arg1 countryCode:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_NewGetVoiceCode:(id)arg1 countryCode:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_PayChat:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_PayGatherInfo:(long long)arg1 sPrice:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_PayInfo:(long long)arg1 fromIndex:(long long)arg2 infoId:(long long)arg3 teamId:(long long)arg4 productPrice:(double)arg5 callBack:(CDUnknownBlockType)arg6;
- (void)FM_PostRequest:(id)arg1 withParams:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_RelationEvent:(id)arg1 bid:(id)arg2 topicId:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_SendFeedBack:(id)arg1 content:(id)arg2 userMail:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_ShareAudio:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_ShareBook:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_ShareTopic:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_UserRuleDetail:(CDUnknownBlockType)arg1;
- (void)FM_checkOrder:(id)arg1 cid:(id)arg2 responseBlock:(CDUnknownBlockType)arg3;
- (void)FM_checkReceiptApplePayData:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_getBookLatestkey:(long long)arg1 resourceType:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_getChatRoomToken:(CDUnknownBlockType)arg1;
- (void)FM_getDiscoverGatherList:(long long)arg1 sid:(long long)arg2 responseBlock:(CDUnknownBlockType)arg3;
- (void)FM_getHotfixRequest:(CDUnknownBlockType)arg1;
- (void)FM_getMeidaContentInfo:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_getProgramDetail:(long long)arg1 responseBlock:(CDUnknownBlockType)arg2;
- (void)FM_getRulelist:(long long)arg1 pateCount:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_getUserProfile:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_liveBookTV:(long long)arg1 responseBlock:(CDUnknownBlockType)arg2;
- (void)FM_paySubscriptionByBalance:(long long)arg1 title:(id)arg2 description:(id)arg3 price:(double)arg4 logFromEnum:(unsigned long long)arg5 responseBlock:(CDUnknownBlockType)arg6;
- (void)FM_paySubscriptionWithId:(long long)arg1 title:(id)arg2 description:(id)arg3 price:(double)arg4 type:(id)arg5 responseBlock:(CDUnknownBlockType)arg6;
- (void)FM_queryList:(id)arg1 searchType:(id)arg2 page:(long long)arg3 size:(long long)arg4 responseBlock:(CDUnknownBlockType)arg5;
- (void)FM_querySuggestionList:(id)arg1 size:(long long)arg2 responseBlock:(CDUnknownBlockType)arg3;
- (void)FM_request:(id)arg1 apiName:(id)arg2 params:(id)arg3 responseBlock:(CDUnknownBlockType)arg4;
- (void)FM_requestBookMarkWithAPI:(id)arg1 params:(id)arg2 responseBlock:(CDUnknownBlockType)arg3;
- (void)FM_requestNoteInfoWithAPI:(id)arg1 params:(id)arg2 responseBlock:(CDUnknownBlockType)arg3;
- (void)FM_requestReadProgressWithAPI:(id)arg1 params:(id)arg2 responseBlock:(CDUnknownBlockType)arg3;
- (void)FM_uploadImage:(id)arg1 cate:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)cancelCurrentRequest;
- (id)paramsStringWithDic:(id)arg1;
- (void)showLogOutByLiftOffAlert;

// Remaining properties
@property(readonly, copy) NSString *debugDescription;
@property(readonly, copy) NSString *description;
@property(readonly) unsigned long long hash;
@property(readonly) Class superclass;

@end

(还有v2, 这后台这样设计, 真的好吗)

#import "DataService.h"

@interface DataServiceV2 : DataService
{
}

+ (id)GetInstance;
- (void)FM_AddColumnnoteLineation:(id)arg1 lid:(id)arg2 note_id:(id)arg3 aid:(id)arg4 mind:(id)arg5 tid:(id)arg6 type:(id)arg7 extra:(id)arg8 columnType:(long long)arg9 callBack:(CDUnknownBlockType)arg10;
- (void)FM_AddUserTagByTagid:(id)arg1 type:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_AutoRefreshAlreadyPaid:(double)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_Badge_Badgestatus:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_BindUserMobilePhone:(id)arg1 countryCode:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_BindUserRealted:(CDUnknownBlockType)arg1;
- (void)FM_BlackComment:(long long)arg1 userId:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_BookRackFolderPullCallBack:(CDUnknownBlockType)arg1;
- (void)FM_BookRackFolderPush:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_ChangeMiningData:(long long)arg1 pageCount:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_ColumnPlayArticleAudio:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_ColumnPushSwitchByColumnId:(long long)arg1 status:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_ColumnTopSwitchByColumnId:(long long)arg1 type:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_DailyAudioPlayCompleted:(id)arg1 playTime:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_DailyAudionChangeAudio:(id)arg1 aid:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_DailyAudionGetPlaylistPlayTime:(long long)arg1 audio_types:(id)arg2 block_cols:(id)arg3 block_types:(id)arg4 page_size:(long long)arg5 list_id:(id)arg6 callBack:(CDUnknownBlockType)arg7;
- (void)FM_DailyAudionGetPlaylistPlayTime:(long long)arg1 audio_types:(id)arg2 block_cols:(id)arg3 page_size:(long long)arg4 list_id:(id)arg5 callBack:(CDUnknownBlockType)arg6;
- (void)FM_DailyAudionStartPlay:(id)arg1 playTime:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_DailyAudionUserOptionCallBack:(CDUnknownBlockType)arg1;
- (void)FM_DailyVerseCollection:(id)arg1 action:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_DailyVerseContribute:(id)arg1 phone:(id)arg2 source:(id)arg3 career:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_DailyVerseDetail:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_DeleteAnswer:(id)arg1 answerId:(id)arg2 groupId:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_DeleteColumnnoteMid:(id)arg1 type:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_DeleteComment:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_DeleteLineationColumnnoteLid:(id)arg1 type:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_DeletePosts:(id)arg1 postsId:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_DeleteReply:(id)arg1 postsId:(id)arg2 replyId:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_DeteleNoteById:(long long)arg1 articleId:(long long)arg2 content:(id)arg3 type:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_DownLoadedAudiosEncryption:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_EditColumnnoteMid:(id)arg1 aid:(id)arg2 type:(long long)arg3 mind:(id)arg4 tid:(id)arg5 callBack:(CDUnknownBlockType)arg6;
- (void)FM_FeedBatchDisplay:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_FreeColumn_ArticleDetail:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_FreeColumn_ColumnArticles:(id)arg1 order:(long long)arg2 page:(long long)arg3 size:(long long)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_FreeColumn_ColumnAudios:(id)arg1 order:(long long)arg2 page:(long long)arg3 size:(long long)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_FreeColumn_ColumnDetail:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_FreeColumn_ImageTextColumn:(id)arg1 order:(long long)arg2 page:(long long)arg3 size:(long long)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_FreeColumn_SubscribeColumn:(id)arg1 action:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetAddCommentByColumnId:(long long)arg1 articleId:(long long)arg2 type:(long long)arg3 content:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_GetAllColumnAudios:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetAllCommentAndReply:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetAllCommentByArticleId:(long long)arg1 type:(long long)arg2 page:(long long)arg3 pageSize:(long long)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_GetAllListByPage:(long long)arg1 CallBack:(CDUnknownBlockType)arg2;
- (void)FM_GetAllMedalList:(CDUnknownBlockType)arg1;
- (void)FM_GetAllNotesStoreNumByArticleId:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetAllPersonListByGroupId:(id)arg1 startTime:(id)arg2 currentPage:(long long)arg3 pageSize:(long long)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_GetAllSubscribeList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetAllTagList:(CDUnknownBlockType)arg1;
- (void)FM_GetAllTagListStoreNumByArticleId:(long long)arg1 type:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetArticleBuyInfoBy:(id)arg1 article_id:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetArticleByAudioId:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetArticleContentById:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetArticleLikeByArticleId:(long long)arg1 type:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetArticleNoteList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetArticleNotesStoreByNoteId:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetArticleUpdateTimeById:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetAudioCategoryListcallBack:(CDUnknownBlockType)arg1;
- (void)FM_GetAudioEntityByMagazineId:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetAudioEntityByREbookId:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetAudioList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetAudioSourceInfo:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetAudioTagList:(long long)arg1 currentPage:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetAuthorDetail:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetAuthorStorytellList:(id)arg1 page:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetBuyByMonth:(id)arg1 continueInteger:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetCheckSubscribeByColumnId:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetChoicePostsHome:(CDUnknownBlockType)arg1;
- (void)FM_GetChoicePostsMoreData:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetColumn:(CDUnknownBlockType)arg1;
- (void)FM_GetColumnArticlesByColumnId:(id)arg1 page:(id)arg2 pageSize:(id)arg3 order:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_GetColumnArticlesByMonth:(long long)arg1 month_id:(long long)arg2 order:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetColumnAudioMonthList:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetColumnAudiosByColumnId:(long long)arg1 page:(long long)arg2 pageSize:(long long)arg3 order:(long long)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_GetColumnAudiosByMonth:(long long)arg1 month_id:(long long)arg2 order:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetColumnDetailByColumnId:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetColumnUpdateMonthList:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetCommentByArticle:(long long)arg1 elected:(_Bool)arg2 page:(long long)arg3 pageSize:(long long)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_GetCommentByColumnId:(long long)arg1 page:(long long)arg2 pageSize:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetCountryCodes:(CDUnknownBlockType)arg1;
- (void)FM_GetDailyAudioHomeInfo:(CDUnknownBlockType)arg1;
- (void)FM_GetDailyAudioRecommoneListWithTime:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetDailyVerseList:(id)arg1 page:(unsigned long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetDeleteCommentByCommentId:(long long)arg1 type:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetFeedColumnList:(CDUnknownBlockType)arg1;
- (void)FM_GetFontLists:(CDUnknownBlockType)arg1;
- (void)FM_GetGradeMedalListWithGradeMedalCode:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetGroupLeaderList:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetGroupList:(CDUnknownBlockType)arg1;
- (void)FM_GetGroupMainData:(id)arg1 orderType:(id)arg2 userId:(id)arg3 currentPage:(long long)arg4 pageSize:(long long)arg5 callBack:(CDUnknownBlockType)arg6;
- (void)FM_GetGroupMainMoreData:(id)arg1 currentPage:(long long)arg2 pageSize:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetGroupMainMoreDataByPostTime:(id)arg1 max_id:(id)arg2 count:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetGuestInfo:(CDUnknownBlockType)arg1;
- (void)FM_GetHistoryMagazine:(CDUnknownBlockType)arg1;
- (void)FM_GetHotSearchKeyword:(CDUnknownBlockType)arg1;
- (void)FM_GetLatestReadArticleByColumnId:(id)arg1 pageSize:(id)arg2 order:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetLikeCommentByColumnId:(long long)arg1 articleId:(long long)arg2 type:(long long)arg3 action:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_GetLineationListStoreNumByArticleId:(long long)arg1 type:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetMagazineCalendar:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetMagazineCalendarById:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetMagazineDetailById:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetMagazineFreeListDetail:(CDUnknownBlockType)arg1;
- (void)FM_GetMagazineList:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetMagazineListById:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetMagazineListDetailById:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetMainDataByStructure:(long long)arg1 pageSize:(long long)arg2 dataType:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetMainDataByStructure:(long long)arg1 structureType:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetMainStructure:(CDUnknownBlockType)arg1;
- (void)FM_GetMainTotalData:(CDUnknownBlockType)arg1;
- (void)FM_GetMedalAwardsList:(CDUnknownBlockType)arg1;
- (void)FM_GetMedalInfoWithBadgeId:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetMedalSystemsList:(CDUnknownBlockType)arg1;
- (void)FM_GetMessageCenterSectionList:(CDUnknownBlockType)arg1;
- (void)FM_GetMessageList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetMessageListByType:(id)arg1 source:(id)arg2 page:(long long)arg3 size:(long long)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_GetMindInfoByMid:(id)arg1 type:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetNewBeginnerGiftListCallBack:(CDUnknownBlockType)arg1;
- (void)FM_GetNewMedalSystem:(CDUnknownBlockType)arg1;
- (void)FM_GetNewMedalV2:(CDUnknownBlockType)arg1;
- (void)FM_GetPortName:(id)arg1 params:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetPostsReportReason:(CDUnknownBlockType)arg1;
- (void)FM_GetProbationArticleContentById:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetProbationArticlesByColumnId:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetSearchRecommend:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetSelectedCommentByColumnId:(long long)arg1 articleId:(long long)arg2 type:(long long)arg3 page:(long long)arg4 size:(long long)arg5 callBack:(CDUnknownBlockType)arg6;
- (void)FM_GetSignInPersonListByGroupId:(id)arg1 currentPage:(long long)arg2 pageSize:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetStoryBookListByMonth:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStoryDetail:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStoryMonthDetailByMonth:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStoryMonthHistoryByPage:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStorytellAllBooksByMonthIdV3:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStorytellCalendar:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStorytellList:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStorytellListByMonth:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStorytellListByMonthIdV3:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStorytellListByTagIdV3:(long long)arg1 currentPage:(long long)arg2 pageSize:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetStorytellMainDataV3:(CDUnknownBlockType)arg1;
- (void)FM_GetStorytellTagsListV3:(CDUnknownBlockType)arg1;
- (void)FM_GetStorytellVIPList:(CDUnknownBlockType)arg1;
- (void)FM_GetStudyGroupEnterInfo:(id)arg1 isProbation:(long long)arg2 productType:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetStudyGroupMainData:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_GetStudyInfoData:(id)arg1 groupId:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetSubscribeList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetSubscribeSwitchList:(CDUnknownBlockType)arg1;
- (void)FM_GetTagAllByCallBack:(CDUnknownBlockType)arg1;
- (void)FM_GetTagAllNotesStoreNumByTagid:(long long)arg1 type:(long long)arg2 page:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetTagTop5ByCallBack:(CDUnknownBlockType)arg1;
- (void)FM_GetUnSubscribeList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetUnachievedMedalList:(CDUnknownBlockType)arg1;
- (void)FM_GetUserInfoStudyGroupList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_GetUserNotesStoreByArticleId:(long long)arg1 content:(id)arg2 extra:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_GetUserProfile:(CDUnknownBlockType)arg1;
- (void)FM_GetWIFIDownLoadColumnAudio:(CDUnknownBlockType)arg1;
- (void)FM_GetWIFIDownLoadFeedAudios:(CDUnknownBlockType)arg1;
- (void)FM_GetYearAndMonthStatus:(id)arg1 cardType:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_LikedTodayFeedData:(id)arg1 feedType:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_NewAppleVerify:(id)arg1 orderno:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_NewGuestUserWechatAuth:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_NewUserBindWechatAuth:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_NewUserWechatBindPhone:(id)arg1 mobile:(id)arg2 password:(id)arg3 countryCode:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_OldUserBindWechatAuth:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_PaidMedalAwards:(long long)arg1 rewardId:(long long)arg2 rewardCategory:(long long)arg3 paidId:(long long)arg4 paidType:(long long)arg5 bookType:(long long)arg6 callBack:(CDUnknownBlockType)arg7;
- (void)FM_PayMagazineYearCard:(id)arg1 type:(id)arg2 price:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_PayStoryMonths:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_PostAnswer:(id)arg1 postsId:(id)arg2 srcAnswerId:(id)arg3 srcMemberId:(id)arg4 postsContent:(id)arg5 callBack:(CDUnknownBlockType)arg6;
- (void)FM_PostAppImageErrorReport:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_PostPosts:(id)arg1 postsTitle:(id)arg2 postsContent:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_PostReplays:(id)arg1 postsId:(id)arg2 postsContent:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_PostsReport:(id)arg1 type:(id)arg2 reason:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_PullMedalWithBadgeId:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_ReBindUserRealted:(CDUnknownBlockType)arg1;
- (void)FM_ReadMessage:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_RefreshMonthlyPackageSort:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_ReplyComment:(long long)arg1 content:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_ReplyInfo:(id)arg1 answerId:(id)arg2 postsId:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_RequestALiCloudImageConfig:(CDUnknownBlockType)arg1;
- (void)FM_RequestALiCloudToken:(CDUnknownBlockType)arg1;
- (void)FM_RequestMainLatestAdv:(CDUnknownBlockType)arg1;
- (void)FM_RequestTodayFeedData:(id)arg1 weight:(id)arg2 pageSize:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_RerangeByThird:(id)arg1 desc:(id)arg2 price:(double)arg3 productId:(long long)arg4 remark:(id)arg5 paidType:(id)arg6 callBack:(CDUnknownBlockType)arg7;
- (void)FM_RerangeSuccess:(id)arg1 cid:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_SearchColumnTab:(id)arg1 currentPage:(long long)arg2 type:(id)arg3 columnId:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_SearchGoodsAndColumnCount:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_SearchGoodsTab:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_SearchSuggest:(id)arg1 type:(id)arg2 columnId:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_SetGoodComment:(long long)arg1 isElected:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_ShareToWXSuccess:(id)arg1 infoType:(long long)arg2 shareType:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_SignInGroup:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_StoryMonthlyPackage:(CDUnknownBlockType)arg1;
- (void)FM_StorytellBookDetail:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_StorytellCanShowRedPackage:(id)arg1 audioType:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_StorytellCreateRedPackage:(id)arg1 audioType:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_StorytellPaidForYear:(CDUnknownBlockType)arg1;
- (void)FM_StorytellPaidForYear:(double)arg1 yearPrice:(double)arg2 yearType:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_StorytellVipInfo:(CDUnknownBlockType)arg1;
- (void)FM_TopPosts:(id)arg1 postsId:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_TouristInTo:(CDUnknownBlockType)arg1;
- (void)FM_TouristMobileBind:(id)arg1 password:(id)arg2 countryCode:(id)arg3 nickname:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_TouristWeChatBind:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_UnLikedTodayFeedData:(id)arg1 feedType:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_UntopPosts:(id)arg1 postsId:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_UpdateComment:(long long)arg1 content:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_UpdateShareCount:(long long)arg1 type:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_UploadUseAudioOperation:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_UploadUseDuration:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_UploadUseEBookOperation:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_VerifyCdkey:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_getDiplomaColumnId:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)FM_getLatestReadAudioByColumnId:(id)arg1 pageSize:(id)arg2 order:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_posts_getpostcontent:(id)arg1 postsId:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_posts_goodposts:(id)arg1 member_id:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_posts_modifyPosts:(id)arg1 postsId:(id)arg2 postsTitle:(id)arg3 postsContent:(id)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)FM_posts_unessencePosts:(id)arg1 postsId:(id)arg2 memberId:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)FM_posts_ungoodposts:(id)arg1 member_id:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_postst_essencePosts:(id)arg1 postsId:(id)arg2 memberId:(id)arg3 callBack:(CDUnknownBlockType)arg4;

@end

DataServiceUtils 这个类是算加密, header之类的

@interface DataServiceUtils : NSObject
{
}

+ (id)FM_getUserMD5:(id)arg1;
+ (id)FM_getWithParams:(id)arg1 userId:(id)arg2;
+ (id)FM_getWithParams:(id)arg1 userId:(id)arg2 timestamp:(double)arg3;
+ (id)getURLSign:(id)arg1;
+ (id)paramsStringWithDic:(id)arg1;
+ (id)setRequestHeader:(id)arg1 userId:(id)arg2 timestamp:(double)arg3;

@end

DDDataService 这个 应该是 DataServiceV2 的升级版

#import "NSObject.h"

@class AFAppDotNetAPIClient;

@interface DDDataService : NSObject
{
    long long retryTimes;
    AFAppDotNetAPIClient *_apiService;
}

+ (id)sharedClient;
- (void).cxx_destruct;
- (void)DD_AppleAutoRenewSubscribeCheck:(CDUnknownBlockType)arg1;
- (void)DD_AppleAutoRenewSubscribeReceiveData:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_ApplePayVipCard:(unsigned long long)arg1 cardPrice:(double)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)DD_AudioQualityControlGroup:(id)arg1 type:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)DD_BorrowStorytellInfoWithIds:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_BorrowStorytellingThemeWithId:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_DDLiveGetAlreadyPurchasedList:(id)arg1 currentPage:(long long)arg2 pageSize:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)DD_DDLiveGetCourseDetailByAliasId:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_DDLiveGetCourseDetailById:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_DDLiveGetLessonDetailById:(id)arg1 courseId:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)DD_DDLiveGetLessonRateProgress:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_DDLiveGetMainCourseList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)DD_DDLiveGetManitoDetailById:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_DDLiveGetSpeakerInfo:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_DDLiveGetUserScholarShipDetailList:(id)arg1 currentPage:(long long)arg2 pageSize:(long long)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)DD_DDLiveGetUserScholarShipInfo:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)DD_DDLiveGetUserScholarShipList:(long long)arg1 pageSize:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)DD_DDLiveRateReport:(id)arg1 lessonId:(id)arg2 reportType:(id)arg3 rateValue:(double)arg4 callBack:(CDUnknownBlockType)arg5;
- (void)DD_DDLiveScholarPostProfiles:(id)arg1 actualName:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)DD_DDLiveScholarShipDoWithDraw:(CDUnknownBlockType)arg1;
- (void)DD_DDLiveScholarShipDrawCheck:(CDUnknownBlockType)arg1;
- (void)DD_DDLiveScholarUserAuthProfilesCheck:(CDUnknownBlockType)arg1;
- (void)DD_GetBookBorrowUserTimelineWithSince_id:(id)arg1 max_id:(id)arg2 count:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)DD_GetStorytellListByMonthIdV4:(long long)arg1 pageIndex:(long long)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)DD_GetStorytellMainDataV4:(CDUnknownBlockType)arg1;
- (void)DD_GetStorytellVipGiveIndexWithYearVipCardId:(long long)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_IsBorrowedOfStorytellingIds:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_SendRequestApiPath:(id)arg1 requestMethod:(unsigned long long)arg2 contentType:(unsigned long long)arg3 queryItems:(id)arg4 parameters:(id)arg5 callBackBlock:(CDUnknownBlockType)arg6;
- (void)DD_StorytellingDetail:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_StorytellingTagBooks:(id)arg1 page:(id)arg2 pageSize:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)DD_StorytellingTagList:(CDUnknownBlockType)arg1;
- (void)DD_StorytellingThemeBooks:(id)arg1 page:(id)arg2 size:(id)arg3 callBack:(CDUnknownBlockType)arg4;
- (void)DD_StorytellingThemeInfo:(id)arg1 callBack:(CDUnknownBlockType)arg2;
- (void)DD_StorytellingThemeList:(id)arg1 size:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)DD_StotytellingVipInfo:(CDUnknownBlockType)arg1;
- (void)DD_StotytellingVipTransferStatus:(CDUnknownBlockType)arg1;
@property(retain, nonatomic) AFAppDotNetAPIClient *apiService; // @synthesize apiService=_apiService;
- (void)cancelCurrentRequest;
- (id)init;

@end

FMEventDataService 封装的进行网络请求的地方

#import "NSObject.h"

@interface FMEventDataService : NSObject
{
    long long retryTimes;
}

+ (id)GetInstance;
- (void)FM_PostRequest:(id)arg1 withParams:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (void)FM_getConfigData:(CDUnknownBlockType)arg1;
- (void)FM_sendEventData:(id)arg1 infoData:(id)arg2 callBack:(CDUnknownBlockType)arg3;
- (id)getUserMD5:(id)arg1;
- (id)getWithParams:(id)arg1 userId:(id)arg2;

@end

(好熟悉的感觉, 所有参数都有了)
//登录接口
- (void)FM_MobileLogin:(id)arg1 countrycallingcodes:(id)arg2 pwd:(id)arg3 callBack:(CDUnknownBlockType)arg4;
---明天继续分析---
1.试试打个jspatch进去
2.试试是否可以给isVip直接返回个YES
3.重签名测试

你可能感兴趣的:(得到App 逆向分析学习过程)