[原创]苹果账号自动过检测协议源码
新注册的苹果账号,自动过检测代码
内含kbsync获取、actionsignature值获取代码
无法过苹果服务器策略
关键字:
苹果过检测、ios协议、itunes协议、kbsync获取、actionsignature值获取、aso优化、刷榜
源码下载地址
svn://biyoubar.com/debugee/trunk/src/projects/ios/appid_bypass
账号密码: guest:guest
//一下为部分代码
bool getKbsync_Proxy(int type, const string &strDsid, string &strKbsync)
{
VMPBegin("getKbsync_Proxy");
USES_CONVERSION;
ULONG num2 = getNum2_Proxy();
char *pend = NULL;
ULONGLONG ullDsid = strtoull(strDsid.c_str(), &pend, 10);
LPBYTE pout = NULL;
ULONG outLen = 1;
int err = pfn_kbsync(num2, ullDsid, 0, type, &pout, &outLen);
if (err != 0)
{
DBG_TEXT_PUT(_T("getKbsync_Proxy err %d \n"), err);
return false;
}
int nEncodeBuffer = NeedEncodeSize(outLen);
char *pEncodeBuffer = (char *)malloc(nEncodeBuffer);
if (NULL == pEncodeBuffer)
{
DBG_TEXT_PUT(_T("getKbsync_Proxy malloc err %d"), nEncodeBuffer);
if (pout)
pfn_Release_Mem(pout);
return false;
}
memset(pEncodeBuffer, 0, nEncodeBuffer);
Base64Encode(pEncodeBuffer, (const unsigned char *)pout, outLen);
strKbsync = pEncodeBuffer;
free(pEncodeBuffer);
if (pout)
pfn_Release_Mem(pout);
DBG_TEXT_PUT(_T("getKbsync_Proxy return 0"));
DBG_TEXT_PUT(_T("getKbsync_Proxy return %s"), _CA2T(strKbsync.c_str()));
return true;
VMPEnd();
}
bool setKeybag_Proxy(const string &str_keybag)
{
VMPBegin("setKeybag_Proxy");
ULONG num2 = getNum2_Proxy();
size_t nDecodeBuffer = NeedDecodeSize(str_keybag.length());
unsigned char *pDecodeBuffer = (unsigned char *)malloc(nDecodeBuffer);
if (NULL == pDecodeBuffer)
{
DBG_TEXT_PUT(_T("setKeybag_Proxy malloc err"));
return false;
}
memset(pDecodeBuffer, 0, nDecodeBuffer);
size_t nSize = Base64Decode(pDecodeBuffer, str_keybag.c_str(), str_keybag.length());
int err = pfn_setkeybag(num2, pDecodeBuffer, nSize);
//fix leaked bug
free(pDecodeBuffer);
DBG_TEXT_PUT(_T("setKeybag_Proxy return %d"), err);
return err == 0 ? true : false;
VMPEnd();
}
bool getActionSignature_Proxy(unsigned char *pBody, size_t nBody, string &strActionSignature)
{
VMPBegin("getActionSignature_Proxy");
USES_CONVERSION;
LPBYTE pout = NULL;
ULONG outLen = 0;
int err = pfn_ActionSignature(getNum_Proxy(), pBody, nBody, &pout, &outLen);
if (err != 0 || pout == NULL)
{
DBG_TEXT_PUT(_T("getActionSignature_Proxy err return : %d"), err);
return false;
}
int nEncodeBuffer = NeedEncodeSize(outLen);
char *pEncodeBuffer = (char *)malloc(nEncodeBuffer);
if (!pEncodeBuffer)
{
DBG_TEXT_PUT(_T("getActionSignature_Proxy malloc err"));
pfn_Release_Mem(pout);
return false;
}
memset(pEncodeBuffer, 0, nEncodeBuffer);
Base64Encode(pEncodeBuffer, pout, outLen);
strActionSignature = pEncodeBuffer;
free(pEncodeBuffer);
pfn_Release_Mem(pout);
DBG_TEXT_PUT(_T("getActionSignature_Proxy return size : %d"), outLen);
DBG_TEXT_PUT(_T("getActionSignature_Proxy return X-Apple-ActionSignature : %s"), _CA2T(strActionSignature.c_str()));
return true;
VMPEnd();
}void CTask::doTask(void *pvWorkParam)
{
VMPBegin("doTask");
USES_CONVERSION;
m_pMainDlg = reinterpret_cast<CMainDlg *>(pvWorkParam);
CItunesProtocol itunes_protocol(m_session);
if (!itunes_protocol.initNum2_Proxy())
{
AppendLog(_T("初始化1失败。 %s|%s|%s\r\n"),
_CA2T(itunes_protocol.m_session.m_appid.c_str()),
_CA2T(itunes_protocol.m_session.m_guid.c_str()),
_CA2T(itunes_protocol.m_session.getProxyString().c_str()));
return;
}
bool binitcert = itunes_protocol.initCert_Proxy(
itunes_protocol.m_session.getProxyString(),
itunes_protocol.m_session.m_UserAgent,
itunes_protocol.m_session.m_AppleTz,
itunes_protocol.m_session.m_AppleStoreFront);
if (!binitcert)
{
AppendLog(_T("初始化2失败。 %s|%s|%s\r\n"),
_CA2T(itunes_protocol.m_session.m_appid.c_str()),
_CA2T(itunes_protocol.m_session.m_guid.c_str()),
_CA2T(itunes_protocol.m_session.getProxyString().c_str()));
return;
}
AppendLog(_T("初始化1和2成功。 %s|%s|%s\r\n"),
_CA2T(itunes_protocol.m_session.m_appid.c_str()),
_CA2T(itunes_protocol.m_session.m_guid.c_str()),
_CA2T(itunes_protocol.m_session.getProxyString().c_str()));
int err = itunes_protocol.send_authenticate_pack(false, "signIn");
if (err == -2)
{
err = itunes_protocol.send_authenticate_pack(false, "signIn");
}
if (err == 1)
{
AppendLog(_T("登录成功。 %s|%s|%s\r\n"),
_CA2T(itunes_protocol.m_session.m_appid.c_str()),
_CA2T(itunes_protocol.m_session.m_guid.c_str()),
_CA2T(itunes_protocol.m_session.getProxyString().c_str()));
return;
}
if (err <= 0 && itunes_protocol.m_session.m_failureType != "5001")
{
AppendLog(_T("登录失败。 %s|%s|%s|%s\r\n"),
_CA2T(itunes_protocol.m_session.m_appid.c_str()),
_CA2T(itunes_protocol.m_session.m_guid.c_str()),
_CA2T(itunes_protocol.m_session.getProxyString().c_str()),
_CA2T(itunes_protocol.m_session.m_customerMessage.c_str()));
return;
}
AppendLog(_T("需要过检。 %s|%s|%s\r\n"),
_CA2T(itunes_protocol.m_session.m_appid.c_str()),
_CA2T(itunes_protocol.m_session.m_guid.c_str()),
_CA2T(itunes_protocol.m_session.getProxyString().c_str()));
string strCookies;
string str_name_temp = "wosid";
if (itunes_protocol.m_session.m_cookie.end() != itunes_protocol.m_session.m_cookie.find(str_name_temp))
{
strCookies += str_name_temp;
strCookies += "=";
strCookies += itunes_protocol.m_session.m_cookie.find(str_name_temp)->second;
strCookies += ";";
}
str_name_temp = "ns-mzf-inst";
if (itunes_protocol.m_session.m_cookie.end() != itunes_protocol.m_session.m_cookie.find(str_name_temp))
{
strCookies += str_name_temp;
strCookies += "=";
strCookies += itunes_protocol.m_session.m_cookie.find(str_name_temp)->second;
strCookies += ";";
}
strCookies += "itspod="; strCookies += itunes_protocol.m_session.m_serverid;
//Cookie:wosid=efPFc8jdT0GwYW9OKTV6Tg; ns-mzf-inst=39-89-443-124-74-8170-302404-30-nk11;
if (!itunes_protocol.send_appidbypass(strCookies, "signIn"))
{
AppendLog(_T("过检失败。 %s|%s|%s\r\n"),
_CA2T(itunes_protocol.m_session.m_appid.c_str()),
_CA2T(itunes_protocol.m_session.m_guid.c_str()),
_CA2T(itunes_protocol.m_session.getProxyString().c_str()));
return;
}
AppendLog(_T("过检成功。 %s|%s|%s\r\n"),
_CA2T(itunes_protocol.m_session.m_appid.c_str()),
_CA2T(itunes_protocol.m_session.m_guid.c_str()),
_CA2T(itunes_protocol.m_session.getProxyString().c_str()));
return ;
VMPEnd();
}
