分析kbsync时手译出来的c++伪代码

Harr 逆向工程 1,139 次浏览 , 4条评论

辛辛苦苦研究了好久,最终竹篮打水。呵呵

[code lang=”cpp”]
/*
* kbsync
*/

typedef void* var;
typedef char* NSString;

// -[AuthenticateAttemptOperation _account]:
void* _ZN11_AuthenticateAttemptOperation_S_account(){
var authCtx = [self authenticationContext];
var requiredUID = [authCtx requiredUniqueIdentifier];
var store = [DaemonAccountStore defaultStore];
var scope = [authCtx accountScope];
if(scope!=0){
var acc = [store accountWithUniqueIdentifier:requiredUID
scope:scope];
if(acc!=0){
return acc;
}
}
return [store accountWithUniqueIdentifier:requiredUID];
}

// ?
// encrypted
void* sub_10017D78C(unsigned long long arg1, char* path, NSString* nsPath, void** pp_arg4){
return 0;
}

// ?
// 没发现这个函数引用参数
void* sub_10001DA38(){

NSString* path = NSHomeDirectory(); // /var/mobile
[path stringByAppendingPathComponent:@"Media/iTunes_Control/iTunes"]
// /var/mobile/Media/iTunes_Control/iTunes
int sp_0xC=0;
sub_10017D78C(0, path.UTF8String, path, &sp_0xC);

return sp_0xC;
}

bool sub_100171224(int id, unsigned long long unique_identifier, int arg3, int type, void** pp_buf, int* p_len){
return true;
}

// 获取kbsync数据
bool sub_10001C2F4(unsigned long long unique_identifier, int type, void** pp_kbsync){

void* sp_0x8 = 0; // buf
int sp_0x4 = 0; // len
// arg1 = 0x000000003fad9dc8; // 有点像是CRC32
// arg2 = 0x000000027d4f97ec; // UID,可能是服务器给的会话ID
// arg3 = 0; // 常数
// arg4 = 0xB; // 常数
int error = sub_100171224(sub_10001DA38(), unique_identifier, 0, type, &sp_0x8, &sp_0x4);
if(error){
if(sp_0x8){
// encode
}
}else{
// error == 0
// sp_0x8 = 0x000000013e331580
// 00040000
// sp_0x4 = 0x3E4;
*pp_kbsync = CFDataCreateWithBytes(sp_0x8, sp_0x4);
}

return true;
}

// -[AuthenticateAttemptOperation _newAuthenticateAccountRequestParameters]
void* sub_10016E440(void* self){

//…

// 获取kbsync数据
void* _kbsync = 0;
unsigned long long uniqueIdentifier = 0;
if(sub_10001C2F4(uniqueIdentifier, 0xB, &_kbsync)){
// 加入字典
[_kbsync release];
}

//…

return 0;
}
[/code]

4条评论

  1. luanwulin 2018年11月15日 上午11:26 回复

    楼主现在可以模拟登陆了么?

    • Harr 2018年11月15日 下午4:15 回复

      很早就可以模拟登录了,而且可以多线程登录,但是刷下载量不生效。

  2. 王哈哈 2019年3月3日 上午1:32 回复

    请教您模拟登录 批量操作账户问题 可有偿

  3. Li R 2019年3月28日 下午3:10 回复

    li hai

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go