Exemplo n.º 1
0
    public static void run(String[] args)
    {
        try {
            Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);

            // <form action="http://mybox/cgi-bin/myscript.cgi
            //  method="post" enctype="multipart/form-data">
            MultiPartForm mf = new MultiPartForm();

            // <input name="frmUsername">
            mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "frmUsername",
                          CURLformoption.CURLFORM_COPYCONTENTS, "testtcc",
                          CURLformoption.CURLFORM_END);

            // <input name="frmPassword">
            mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "frmPassword",
                          CURLformoption.CURLFORM_COPYCONTENTS, "tcc",
                          CURLformoption.CURLFORM_END);

            // <input name="frmFileOrigPath">
            mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "frmFileOrigPath",
                          CURLformoption.CURLFORM_COPYCONTENTS, args[1],
                          CURLformoption.CURLFORM_END);

            // <input name="frmFileDate">
            mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "frmFileDate",
                          CURLformoption.CURLFORM_COPYCONTENTS, "08/01/2004",
                          CURLformoption.CURLFORM_END);

            // <input type="File" name="f1">
            mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "f1",
                          CURLformoption.CURLFORM_FILE, args[1],
                          CURLformoption.CURLFORM_CONTENTTYPE, "application/binary",
                          CURLformoption.CURLFORM_END);

            Easy easy = new Easy();

            Easy.DebugFunction df = new Easy.DebugFunction(OnDebug);
            easy.SetOpt(CURLoption.CURLOPT_DEBUGFUNCTION, df);
            easy.SetOpt(CURLoption.CURLOPT_VERBOSE, true);

            Easy.ProgressFunction pf = new Easy.ProgressFunction(OnProgress);
            easy.SetOpt(CURLoption.CURLOPT_PROGRESSFUNCTION, pf);

            easy.SetOpt(CURLoption.CURLOPT_URL, args[0]);
            easy.SetOpt(CURLoption.CURLOPT_HTTPPOST, mf);

            easy.Perform();
            //easy.Cleanup();
            mf.Free();

            Curl.GlobalCleanup();
        }
        catch (Exception ex) {
            Console.WriteLine(ex);
        }
    }
Exemplo n.º 2
0
        public void UploadFile(string url, MultiPartForm mf)
        {
            easy.SetOpt(CURLoption.CURLOPT_URL, url);
            easy.SetOpt(CURLoption.CURLOPT_HTTPPOST, mf);
            easy.Perform();

            easy.GetInfo(CURLINFO.CURLINFO_EFFECTIVE_URL, ref currentURL);

            if (this.page.Contains("<!DOCTYPE"))
            {
                doc.LoadHtml(this.page);
            }
        }
Exemplo n.º 3
0
        public short activate_via_apple_servers()
        {
            IntPtr activation_info_node;
            string activation_info;
            string activation_info_pre;


            string ICCID        = lockdownd_get_string_value(lockdownd_handle, "IntegratedCircuitCardIdentity");
            string IMEI         = lockdownd_get_string_value(lockdownd_handle, "InternationalMobileEquipmentIdentity");
            string IMSI         = lockdownd_get_string_value(lockdownd_handle, "InternationalMobileSubscriberIdentity");
            string serialNumber = lockdownd_get_string_value(lockdownd_handle, "SerialNumber");

            External.lockdownd_get_value(lockdownd_handle, null, "ActivationInfo", out activation_info_node);

            int type = (int)External.plist_get_node_type(activation_info_node);

            if (activation_info_node == null || External.plist_get_node_type(activation_info_node) != External.plist_type.PLIST_DICT)
            {
                MessageBox.Show("Unable to get ActivationInfo from lockdownd");
                return(-1);
            }

            uint   activation_info_size = 0;
            IntPtr activation_info_data; //char*

            External.plist_to_xml(activation_info_node, out activation_info_data, out activation_info_size);
            External.plist_free(activation_info_node);

            string activation_info_data_s = Marshal.PtrToStringAnsi(activation_info_data);


            //string activation_info_start = strstr(activation_info_data_s, "<dict>");
            int index_start = activation_info_data_s.IndexOf("<dict>");
            int index_end   = activation_info_data_s.IndexOf("</dict>");

            activation_info_pre = activation_info_data_s.Remove(0, index_start);
            activation_info     = activation_info_pre.Replace(activation_info_data_s.Remove(0, index_end + 7), "");
            if (index_start == -1)
            {
                MessageBox.Show("Unable to locate beginning of ActivationData.");
                return(-1);
            }
            if (index_end == -1)
            {
                MessageBox.Show("Unable to locate end of ActivationData.");
                return(-1);
            }
            index_end            = index_end + 7;
            activation_info_size = Convert.ToUInt32(index_end - index_start);
            IntPtr activationInfo = Marshal.StringToHGlobalAnsi(activation_info);

            Curl.GlobalInit(1);
            Easy easy_handle = new Easy();
            //easy_handle.SetOpt(CURLoption.CURLOPT_POSTFIELDS, "machine=linux&InStoreActivation=false&IMEI="+ IMEI+ "&IMSI=" + IMSI + "&ICCID=" + ICCID + "&AppleSerialNumber=" + serialNumber + "&activation-info=" + activation_info);
            MultiPartForm mf = new MultiPartForm();

            mf.AddSection(new object[] { CURLformoption.CURLFORM_COPYNAME, "machine", CURLformoption.CURLFORM_COPYCONTENTS, "win32", CURLformoption.CURLFORM_END });
            mf.AddSection(new object[] { CURLformoption.CURLFORM_COPYNAME, "InStoreActivation", CURLformoption.CURLFORM_COPYCONTENTS, "false", CURLformoption.CURLFORM_END });
            mf.AddSection(new object[] { CURLformoption.CURLFORM_COPYNAME, "IMEI", CURLformoption.CURLFORM_COPYCONTENTS, IMEI, CURLformoption.CURLFORM_END });
            mf.AddSection(new object[] { CURLformoption.CURLFORM_COPYNAME, "IMSI", CURLformoption.CURLFORM_COPYCONTENTS, IMSI, CURLformoption.CURLFORM_END });
            mf.AddSection(new object[] { CURLformoption.CURLFORM_COPYNAME, "ICCID", CURLformoption.CURLFORM_COPYCONTENTS, ICCID, CURLformoption.CURLFORM_END });
            mf.AddSection(new object[] { CURLformoption.CURLFORM_COPYNAME, "AppleSerialNumber", CURLformoption.CURLFORM_COPYCONTENTS, serialNumber, CURLformoption.CURLFORM_END });
            mf.AddSection(new object[] { CURLformoption.CURLFORM_COPYNAME, "activation-info", CURLformoption.CURLFORM_COPYCONTENTS, activation_info, CURLformoption.CURLFORM_END });


            IntPtr curl_slist = new IntPtr();

            curl_slist = curl.curl_slist_append(curl_slist, "X-Apple-Tz: -14400");
            curl_slist = curl.curl_slist_append(curl_slist, "X-Apple-Store-Front: 143441-1");

            easy_handle.SetOpt(CURLoption.CURLOPT_HTTPHEADER, curl_slist);
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            giftWriter = new System.IO.StreamWriter(ms);
            Easy.WriteFunction wf = new Easy.WriteFunction(OnWriteData);
            easy_handle.SetOpt(CURLoption.CURLOPT_HTTPPOST, mf);
            easy_handle.SetOpt(CURLoption.CURLOPT_USERAGENT, "iTunes/9.1 (Macintosh; U; Intel Mac OS X 10.5.6)");
            easy_handle.SetOpt(CURLoption.CURLOPT_URL, "https://albert.apple.com/WebObjects/ALUnbrick.woa/wa/deviceActivation");
            easy_handle.SetOpt(CURLoption.CURLOPT_SSL_VERIFYPEER, false);
            easy_handle.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);
            ret = (short)easy_handle.Perform();



            index_start = output.IndexOf("<plist");
            index_end   = output.IndexOf("</plist>");

            string ticket_data_pre = output.Remove(0, index_start);
            string ticket_data     = ticket_data_pre.Replace(output.Remove(0, index_end + 8), "");

            int    ticket_length = ticket_data.Length;
            IntPtr ticket_dict;

            External.plist_from_xml(ticket_data, ticket_length, out ticket_dict);

            IntPtr iphone_activation_node = External.plist_dict_get_item(ticket_dict, "iphone-activation");

            if (iphone_activation_node.ToInt32() == 0)
            {
                iphone_activation_node = External.plist_dict_get_item(ticket_dict, "device-activation");
                if (iphone_activation_node.ToInt32() == 0)
                {
                    MessageBox.Show("Unable to find activation node.");
                    return(-2);
                }
            }

            IntPtr activation_record = External.plist_dict_get_item(iphone_activation_node, "activation-record");

            if (activation_record.ToInt32() == 0)
            {
                MessageBox.Show("Unable to find activation record.");
                return(-2);
            }

            ret = External.lockdownd_activate(lockdownd_handle, activation_record);
            return(ret);
        }
Exemplo n.º 4
0
        public static bool gomultipartpost(string url, string user, string password, string fname, string fpath, int ticketid, int maxwaitsec, bool showprogress, TradeLink.API.DebugDelegate deb, out string result)
        {
            debs = deb;
            Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);

            Easy easy = new Easy();

            rresult   = new StringBuilder();
            hasresult = false;

            MultiPartForm mf = new MultiPartForm();


            // <input name="frmFileOrigPath">
            mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "document[name]",
                          CURLformoption.CURLFORM_COPYCONTENTS, fname,
                          CURLformoption.CURLFORM_END);



            // <input type="File" name="f1">
            mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "document[file]",
                          CURLformoption.CURLFORM_FILE, fpath,
                          CURLformoption.CURLFORM_CONTENTTYPE, "application/octet-stream",
                          CURLformoption.CURLFORM_END);

            // <input name="frmFileDate">
            if (ticketid != 0)
            {
                mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "document[ticket_id]",
                              CURLformoption.CURLFORM_COPYCONTENTS, ticketid.ToString(),
                              CURLformoption.CURLFORM_END);
            }

            if (showprogress)
            {
                Easy.ProgressFunction pf = new Easy.ProgressFunction(OnProgress);
                easy.SetOpt(CURLoption.CURLOPT_PROGRESSFUNCTION, pf);
            }


            Easy.WriteFunction wf = new Easy.WriteFunction(OnWritePostData);
            easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);
            easy.SetOpt(CURLoption.CURLOPT_HTTPPOST, mf);
            Easy.DebugFunction df = new Easy.DebugFunction(OnDebug);
            easy.SetOpt(CURLoption.CURLOPT_DEBUGFUNCTION, df);

            // simple post - with a string
            //easy.SetOpt(CURLoption.CURLOPT_POSTFIELDS,data);
            Slist sl = new Slist();

            //sl.Append("Content-Type:multipart/form-data");
            sl.Append("Accept: application/xml");
            easy.SetOpt(CURLoption.CURLOPT_HTTPHEADER, sl);
            easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYPEER, false);
            easy.SetOpt(CURLoption.CURLOPT_USERAGENT,
                        "Mozilla 4.0 (compatible; MSIE 6.0; Win32");
            easy.SetOpt(CURLoption.CURLOPT_FOLLOWLOCATION, true);
            easy.SetOpt(CURLoption.CURLOPT_USERPWD, user + ":" + password);
            CURLhttpAuth authflag = CURLhttpAuth.CURLAUTH_BASIC;

            easy.SetOpt(CURLoption.CURLOPT_HTTPAUTH, authflag);
            easy.SetOpt(CURLoption.CURLOPT_URL, url);

            //easy.SetOpt(CURLoption.CURLOPT_POST, true);
            if (debs != null)
            {
                easy.SetOpt(CURLoption.CURLOPT_VERBOSE, true);
            }



            CURLcode err      = easy.Perform();
            int      waits    = 0;
            int      maxwaits = 100 * maxwaitsec;

            while (!hasresult && (waits++ < maxwaits))
            {
                System.Threading.Thread.Sleep(10);
            }

            int      rcodei = 0;
            CURLcode rcode  = easy.GetInfo(CURLINFO.CURLINFO_RESPONSE_CODE, ref rcodei);


            if (!hasresult && (deb != null))
            {
                deb(easy.StrError(err));
            }

            easy.Cleanup();
            mf.Free();


            Curl.GlobalCleanup();
            result = rresult.ToString();



            return(hasresult && (rcodei == 201));
        }
Exemplo n.º 5
0
        public void postFile(string imgpath, string bigimgpath)
        {
            try
            {
                Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);

                // <form action="http://mybox/cgi-bin/myscript.cgi
                //  method="post" enctype="multipart/form-data">
                MultiPartForm mf = new MultiPartForm();

                // <input name="frmUsername">
                mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "filecode",
                              CURLformoption.CURLFORM_COPYCONTENTS, this.fcode,
                              CURLformoption.CURLFORM_END);

                // <input type="File" name="f1">
                mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "file",
                              CURLformoption.CURLFORM_FILE, this.file_out,
                              CURLformoption.CURLFORM_CONTENTTYPE, "application/binary",
                              CURLformoption.CURLFORM_END);
                mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "img",
                              CURLformoption.CURLFORM_FILE, imgpath,
                              CURLformoption.CURLFORM_CONTENTTYPE, "application/binary",
                              CURLformoption.CURLFORM_END);

                mf.AddSection(CURLformoption.CURLFORM_COPYNAME, "bigimg",
                              CURLformoption.CURLFORM_FILE, bigimgpath,
                              CURLformoption.CURLFORM_CONTENTTYPE, "application/binary",
                              CURLformoption.CURLFORM_END);


                Easy easy = new Easy();

                Easy.DebugFunction df = new Easy.DebugFunction(OnDebug);
                easy.SetOpt(CURLoption.CURLOPT_DEBUGFUNCTION, df);
                easy.SetOpt(CURLoption.CURLOPT_VERBOSE, true);

                Easy.ProgressFunction pf = new Easy.ProgressFunction(OnProgress);
                easy.SetOpt(CURLoption.CURLOPT_PROGRESSFUNCTION, pf);

                easy.SetOpt(CURLoption.CURLOPT_URL, this.weburl);
                easy.SetOpt(CURLoption.CURLOPT_HTTPPOST, mf);

                easy.Perform();
                easy.Cleanup();
                mf.Free();

                Curl.GlobalCleanup();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                FileStream   fs1 = new FileStream("D:\\test\\1.txt", FileMode.OpenOrCreate);
                StreamWriter sw1 = new StreamWriter(fs1);
                sw1.Write(ex.ToString());
                sw1.Close();
                fs1.Close();
            }

            FileStream   fs = new FileStream("D:\\test\\A.txt", FileMode.OpenOrCreate);
            StreamWriter sw = new StreamWriter(fs);

            sw.Write("aaaa ");
            sw.Close();
            fs.Close();
        }