查看JS 终于发现了相关的JS函数
原来是经过一系统计算的 "formSubmit" : function() {
var form = RegisterV2.getForm();
var rdmCode = form["rcall"].value;
var deRdmCode = decrypt(rdmCode,"xzkavoiddeszf12d");
var p = RegisterV2.check.computechildpath(deRdmCode);
form.action = form.action + p + ".do";
form.submit();
}decrypt加密函数引用 https://res.udb.duowan.com/js/decoder.min.jsRegisterV2.check.computechildpath函数如下:
"computechildpath" : function(code) {
var base = code.charAt(0).charCodeAt();
var start = base % 30;
var len = start % 8 + 2; return code.substring(start,start + len)
},但是为什么我调用decrypt加密函数引用 https://res.udb.duowan.com/js/decoder.min.js
总会提示"未结束的字符串常量" 求教!function RunJs(const JsCode, JsVar: string): string;
var
  Script: OleVariant;
begin
  try
    Script := CreateOleObject('ScriptControl');
    Script.Language := 'JavaScript';
    Script.ExecuteStatement(JsCode);
    Result := Script.Eval(JsVar);
  except
    Result := '';
  end;
end;  S_JSFunc := Format('decrypt("%s", "%s")', ['NaUCdSTwSYzWk6uODiiEztHFSz1QwvOpmsyy8X5qXeNxm5bHouOIBg==', 'xzkavoiddeszf12d']);
  Edit1.Text := RunJs(Memo1.Lines.Text, S_JSFunc);
  出错 提示"未结束的字符串常量"  求解 谢谢

解决方案 »

  1.   

    JS调用成功了RegisterV2.check.computechildpath函数如下:
    "computechildpath" : function(code) {
    var base = code.charAt(0).charCodeAt();
    var start = base % 30;
    var len = start % 8 + 2;return code.substring(start,start + len)
    },求这个函数的解释 其中的 base % 30 是乘以0.3吗? 还是求余?
      

  2.   

    求余。又学到一招,直接调用,我都是直接转成delphi代码的
      

  3.   

    参数我都捕捉到了 但为什么已提交POST 就提示错误啊 郁闷!
      

  4.   

      Form1.memo1.Text:=Utf8ToAnsi(GetWebPage('https://udb.duowan.com/register/core.do?regType=inner&appid=1&url='));
      Form1.IdHTTP1.IOHandler := Form1.IdSSLIOHandlerSocket1;
      Form1.IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
      Form1.IdHTTP1.ProtocolVersion := pv1_1;
      Form1.IdHTTP1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; 360SE)';
      Form1.IdHTTP1.Request.Referer := 'https://udb.duowan.com/register/core.do?regType=inner&appid=1&url=';
      Form1.IdHTTP1.Request.Host := 'udb.duowan.com';
     // Form1.IdHTTP1.Request.Connection:='Keep-Alive';
      Form1.idHTTP1.HandleRedirects := True;  j:=Pos('input type="hidden" name=',Form1.Memo1.Text);
      Form1.edit4.Text:= Copy(Form1.Memo1.Text,j+26,40);
     //edit2.Text:= LeftStr(edit1.Text, 60)
      Form1.edit5.Text:= Copy(Form1.Memo1.Text,j+80,40);
      pos1 := pos('name="rcall" value="', Form1.memo1.Text);
      pos2 := pos('<input type="hidden" id="message" value="" />', Form1.memo1.Text);
      Form1.edit6.Text:= copy(Form1.memo1.Text, pos1 + 20, pos2 - pos1 - 29);  
     { S_JSFunc := Format('decrypt("%s", "%s")', [Form1.edit6.text,'xzkavoiddeszf12d']);
      Form1.Edit7.Text := RunJs(Form1.Memo3.Lines.Text, S_JSFunc);  J_JSFunc := Format('computechildpath("%s")', [Form1.Edit7.Text]);
      Form1.Edit8.Text := RunJs(Form1.Memo4.Lines.Text, J_JSFunc);  }
      Form1.WebBrowser1.Navigate('https://udb.duowan.com/verify/register.do');repeat
       sleep(100);
        Application.ProcessMessages;
        until length(Trim(form1.edit3.Text))=6;
       begin   postList.add('url=');
       postList.add('appid=1');
       postList.add('regType=inner');
       postList.add(Trim(form1.edit4.Text)+'='+Trim(form1.edit5.Text));
       postList.add('rcall='+Form1.edit6.Text);
       postList.add('username='+Trim(form1.edit1.Text));
       postList.add('password='+Trim(form1.edit2.Text));
       postList.add('securityCode1='+Trim(form1.edit3.Text));
    form1.IdHTTP1.Post('https://udb.duowan.com/registerV2/'+Trim(form1.edit8.Text)+'.do', postList, Response); form1.Memo2.Lines.Add(Response.DataString);
     form1.Memo2.Text := Utf8ToAnsi(form1.Memo2.Text);为什么一POST 就提示错误啊?
      

  5.   

    Socket error 10038 - Socket operation on non-socket 
    提示这个错误与信息 错误在哪里啊 高手指点下 谢谢
      

  6.   

    不知道LS错误的意思
    我注册时老提示IP访问太频繁
    竟然一个都注册不了
      

  7.   

    使用模拟IP地址看看可以不可以。
    如果再不行,就使用扫代理的情况注册。
    关于随机地址的,直接使用一个固定POST不行嘛?以前我遇到过这样的地址,直接就使用了其中一个注册的。
      

  8.   

    ki818ss 
    是否 可以联系一下11966429
      

  9.   

    请问
    Form1.edit4.Text得到的是什么值???
    Form1.edit5.Text得到的是什么值???
    有哪位高手 可以指教一下