目前 App Store 最新版是V5.5.28 我用的是V5.5.27
下载后载入Xcode ,准备进行动态调试 进程:tieba
不料有反调试这个文件打开,并打开这个注释,就可以调试了
经过追中,发现验证码发送是这些参数
+[<ZYURLRequest: POSTRequestWithURL:https://api.izuiyou.com/verifycode/login?sign=79b3815bf8b11f93442b5ba549770592 parameters:{
"h_app" = zuiyou;
"h_av" = "5.5.27";
"h_ch" = appstore;
"h_did" = 5ba1b0701c2fe88afd8afb74c81ea421;
"h_dt" = 1;
"h_m" = 244555212;
"h_model" = "iPhone X";
"h_nt" = 1;
"h_os" = 1360000;
"h_ts" = 1611224122151;
hemera = "BKi07JXeLNCwvigQt7otMXxe30mULqf0UMV3V+Jzcgap8y6bc43ri1Y97ixPIoO+kh7lXYp/TPShTbeuur88a+Q==";
"no_hash_code" = 1;
phone = 13800138000;
"region_code" = 86;
token = "T6K7NVHbK3NWPFUo_2a7wBgpuV995yWvfHw1CZL47CPvgPIUok9YNb634b5B11j6g5aKmBNevFk5ylzpNepRucE8cNzwzaA8dXEEGwA0fU2uN7CQ=";
}];
https://api.izuiyou.com/verifycode/login?sign=v2-7d5acf184a9e999195c9813429412bef
//如果输入手机号已注册返回下面信息
{"ret":1,"data":{}}
//如果输入手机号未注册 {输入验证码会跳到 设置性别,设置出生年月,设置签名}
{"ret":1,"data":{"is_phone_reg":1}}
Hook发送验证码方法
//发送验证码
%hook ZYAPIRequestManager
+ (id)getPhoneLoginVerifyCode:(id)arg1 success:(void(^)(NSURLSessionTask*,NSDictionary *) )arg2 failure:(void(^)(NSURLSessionTask*,NSError*) )arg3{
void(^hook1)(NSURLSessionTask*,NSDictionary *) = ^(NSURLSessionTask*t,NSDictionary *s){
if(arg1){// "phone" : "13800138000
}
NSLog(@"发送验证码_block_success=hook1%@",t);
NSLog(@"发送验证码_block_success=hook1%@",s);//s __NSDictionaryM * 0 key/value pairs
arg2(t,s);
};
void(^hook2)(NSURLSessionTask*,NSError*) = ^(NSURLSessionTask*t,NSError*e){
if(arg1){
}
NSLog(@"发送验证码_block_failure=hook2%@",t);
NSLog(@"发送验证码_block_failure=hook2%@",e);
arg3(t,e);
};
id s = %orig(arg1,hook1,hook2);
return s;
}
%end
接下来就是看看怎么确认输入验证码
确认注册
+[<ZYURLRequest:POSTRequestWithURL:https://api.izuiyou.com/account/verifycode_login?sign=a9be7c9d11f2ce9e8c79b61111de7b88 parameters:{
birth = 852049024;//生日
code = 6655;//验证码
gender = 2;//男1,女2
"h_app" = zuiyou;
"h_av" = "5.5.27";
"h_ch" = appstore;
"h_did" = 5ba1b0701c2fe88afd8afb74c81ea421;
"h_dt" = 1;
"h_m" = 244555212;
"h_model" = "iPhone X";
"h_nt" = 1;
"h_os" = 1360000;//手机系统版本13.6
"h_ts" = 1611239384563;
mid = 244555212;
phone = 13800138000;//手机号
"region_code" = 86;
sign = oooooooooooooo;//签名
token = "T0K9NVHbK3NWPFUo_2a7wBgpuVyy_HRVuXMAk43aEIKd44AWGpYNeCHVVJgmv0qdKn6MNDu51lBAiw9awSKC_P20qEH0kXo4VVLWtFZ3CGoVLo9Y=";
}]
https://api.izuiyou.com/account/verifycode_login?sign=v2-790a312ac89c20a0f39f83d0bde7e050
//返回信息
//验证码错误
{"ret":-7,"msg":"验证码错误"}
%hook XCAccountManager
//确认注册
- (void)xcVerifyCodeRegisterOrLogin:(id)arg1 verifyCode:(id)arg2 gender:(long long)arg3 nickName:(id)arg4 birth:(long long)arg5 sign:(id)arg6 invite:(id)arg7 success:(void(^)(NSDictionary*) )arg8 failure:(void(^)(NSString*) )arg9{
//arg3=男1,女=2
//arg5=long long 852049024=1997-01-01
NSLog(@"确认注册_block_success=%@",block2);//NSDictionary
NSLog(@"确认注册_block_failure=%@",block3);//NSString
void(^hook1)(NSDictionary *) = ^(NSDictionary *d){
if(arg1){
}
NSLog(@"确认注册_block_success=hook1%@",d);
arg8(d);
};
void(^hook2)(NSString *) = ^(NSString *s){
if(arg1){
}
NSLog(@"确认注册_block_failure=hook1%@",s);
arg9(s);
};
%orig(arg1,arg2,arg3,arg4,arg5,arg6,arg7,hook1,hook2);
}
%end
日志
//调试记录
852049024=1997-01-01
852135424=1997-01-02
-[XCAccountManager xcVerifyCodeLogin:verifyCode:invite:success:failure:];
-[XCAccountManager xcVerifyCodeRegisterOrLogin:verifyCode:gender:nickName:birth:sign:invite:success:failure:];
+[ZYAPIRequestManager getPhoneLoginVerifyCode:success:failure:];
-[ZYURLSessionManager dataTaskWithRequest:responseBlock:uploadProgress:downloadProgress:dataBlock:completionHandler:];
-[ZYAPIClient zy_sendRequestWithURL:parameters:userInfo:type:constructingBodyWithBlock:progress:success:retry:failure:addressTypeInfo:];
-[ZYAPIClient _postWithURL:parameters:userInfo:progress:success:retry:failure:];
-[ZYAPIClient postWithURL:parameters:userInfo:progress:success:retry:failure:];
-[ZYAPIClient postWithPath:parameters:userInfo:progress:success:retry:failure:];
[<ZYURLRequest:POSTRequestWithURL:https://api.izuiyou.com/account/verifycode_login?sign=5160f96862c8fe6af63e3092026d55fa parameters:{
birth = 852049024;
code = 2588;
gender = 2;
"h_app" = "zuiyou_speed";
"h_av" = "1.1.1";
"h_ch" = appstore;
"h_did" = 5ba1b0701c2fe88afd8afb74c81ea421;
"h_dt" = 1;
"h_m" = 244555212;
"h_model" = "iPhone X";
"h_nt" = 1;
"h_os" = 1360000;
"h_ts" = 1611112963428;
mid = 244555212;
phone = 13244774755;
"region_code" = 86;
sign = qqqqqqq;
token = "T6K6NVHbK3NWPFUo_2a7wBgpuV6ovqJbZ8ObkvtSt8O1UzrENkT7pgHlnIiACyxJuz8sLUqCIT0J-R0hlO1klNdvaoj8Gsx2t-_Dg4ZtdtsDWfoY=";
}];