欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]苹果账号自动过检测协议源码

[原创]苹果账号自动过检测协议源码

新注册的苹果账号,自动过检测代码

内含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();

}


注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功