Home > C#, HTML/CSS/JQUERY, Tip & Trick > FastFrog v1.0 – Fast Download Mediafire.com

FastFrog v1.0 – Fast Download Mediafire.com


image Mấy hôm nay bức bối vì mấy cái tool Get Direct Link Mediafire 3.0 trên mạng bắt đầu giở chứng không Get được link nữa, còn cả kho film trên MF mà đành đứng nhìn, thôi thì viết lấy một cái mà dùng vậy ;)

Yêu cầu :

  1. Chút kiến thức về HTML – JS
  2. FireFox & extension FireBug http://getfirebug.com/
  3. Visual Studio 2008 + Chút kiến thức C#

Phần I : Get Link Folder :

Bước 1 : Phân “tách”:

Link MF Folder thường có dạng :

http://www.mediafire.com/?sharekey=a8468f28b2455feb08f8df73f2072ed6b76ece68be32fa3e4d71ee60c1ce7296

Chú ý tham số sharekey.

Khi pass link vào Browser, MF 3.0 sẽ load trang Folder trước, sau đó sẽ load tập link các file con bằng ajax nên khi view source trang sẽ không nhìn thấy. Bật FireBug lên, load lại trang, và chú ý :

image

Vậy sau khi load trang, Browser sẽ gửi một request để lấy list file theo dạng :

http://www.mediafire.com/js/myfiles.php/?20170&key={key}&t=_shared

key này chính là sharekey ở trên, chẳng biết tham số 20170 là gì nhưng không có nó thì không GET được gì cả, và sau khi thử với nhiều link folder thì thấy giá trị này không thay đổi, vậy thì nó sẽ là hằng số ^^ /.

Bấm vào request lúc nãy, chọn tab Response để xem kết quả trả về cho trình duyệt, mã nhận được là mã js đã được làm rối và làm xấu đi :D Nhìn rất kinh !

image

Cần làm đẹp lên tí để đỡ nhìn, copi đoạn code ở trên và pasre vào http://jsbeautifier.org/

var es = Array();
var kX = Array();
var ma = Array();
var kJ = Array();
var ld = Array();
var oe = Array();
var fd = Array();
var oO = '100';
es[0] = Array('1', '1', 0, 'imzzkkwjk5d', '06fc0ee804f0f08aff2ac175b2e738f6', 'Lost 01x20 - Do No Harm.avi.__a', '104857600', '100', 'MB', '73', '05/13/2009', '0', '', '', '', '0144f8e80ea87f8e0b21bf1937721c3d');
oe[0] = Array('imzzkkwjk5d', 0);
kX[0] = Array('lost 01x20 - do no harm.avi.__a', 0);
ma[0] = Array('104857600', 0);
kJ[0] = Array('2009-05-13 12:55:53', 0);
ld[0] = Array('73', 0);
es[1] = Array('1', '1', 0, '4yn3jmzwmxi', '06fc0ee804f0f08aff2ac175b2e738f6', 'Lost 01x24 - 01x25 - Exodus (2).avi.__b', '104857600', '100', 'MB', '70', '05/13/2009', '0', '', '', '', '023d2e5ab1d01b8aae4b65190c01cfdc');
oe[1] = Array('4yn3jmzwmxi', 1);
kX[1] = Array('lost 01x24 - 01x25 - exodus (2).avi.__b', 1);

Đấy, đúng là dễ nhìn hơn ;) Giờ chú ý một chút, thông tin các file sẽ được chứa trong mảng es[i]. Xét một ví dụ như sau :

es[0] = Array(’1′, ’1′, 0, ‘imzzkkwjk5d’, ’06fc0ee804f0f08aff2ac175b2e738f6′, ‘Lost 01×20 – Do No Harm.avi.__a’, ’104857600′, ’100′, ‘MB’, ’73′, ’05/13/2009′, ’0′, ”, ”, ”, ’0144f8e80ea87f8e0b21bf1937721c3d’);

Tạm thời chỉ cần chừng đó thông tin là đủ rồi ./

Thuật toán bóc tách không quá phức tạp, sử dụng StringBuilder để xử lý :

  1. Đưa toàn bộ Reponse Text vào 1 StringBuilder, giả sử là sb.
  2. Tách các dòng lệnh thành các hàng bằng ký tự ‘;’, mỗi hàng đưa vào một chuỗi, tất cả các hàng tập hợp thành một mảng chuỗi.
  3. Loại bỏ những chuỗi nào không chứa “es
  4. Từ các chuỗi es có được, tiến hành tách 1 lần nữa bằng ký tự ‘,’ sẽ được mảng mới chứa các thông tin cơ bản như trên.

Như vậy thuật toán toàn bộ sẽ là :

  1. Nhận vào Link Folder
  2. Tách lấy sharekey
  3. Tạo một request đến http://www.mediafire.com/js/myfiles.php/?20170&key={key}&t=_shared
  4. Nhận về response và thực hiện Bóc tách
  5. Làm sạch link trả về và display ./

Bước 2 : Cài đặt :

private void GetLinkFolder(object sender, EventArgs e)
        {
            string linkFolder = tbLinkFolder.Text;
            // http://www.mediafire.com/?sharekey=3a4f50099495d84b7069484bded33bcd8cd8ffad0d855f75

            string param0 = "20170";

            string param1 = tbLinkFolder.Text.Split('=')[1];
            // 3a4f50099495d84b7069484bded33bcd8cd8ffad0d855f75

            string ajaxCall = string.Format("http://www.mediafire.com/js/myfiles.php/?{0}&key={1}&t=_shared", param0,
                                            param1);

            var request = (HttpWebRequest)WebRequest.Create(ajaxCall);

            var builder = new StringBuilder();
            var buff = new byte[8192];
            var response = (HttpWebResponse)request.GetResponse();
            int count = 0;
            do
            {
                count = response.GetResponseStream().Read(buff, 0, buff.Length);
                if (count != 0)
                {
                    var tmp = Encoding.ASCII.GetString(buff, 0, count);
                    builder.Append(tmp);
                }
            } while (count > 0);

            // Bóc tách
            string[] arr = builder.ToString().Split(';');
            var newLink = new List();
            int lenght = arr.Length;
            for (int i = lenght - 1; i > 0; i--)
            {
                if (arr[i].IndexOf("es[") != -1)
                {
                    newLink.Add(arr[i]);
                }
            }

            var files = new List();
            for (int i = 1; i < newLink.Count; i++)
            {
                files.Add(new FileInfo(newLink[i].Split(',')[3], newLink[i].Split(',')[5], "", newLink[i].Split(',')[7] + " " + newLink[i].Split(',')[8]));
            }

            dataGridView1.DataSource = files;
        }

Một vấn đề còn tồn đọng là :

  1. Link kiểu : http://mediafire.com/lehoaian chẳng hạn, bạn làm sao đó có link share như trên rồi sử dụng lại hàm vừa cài đặt, yên tâm là link share thế nào đó nó cũng nằm đâu đó trong source ;)
  2. Link Folder chứa nhiều Folder bên trong, dễ nhận biết là các Folder con khi Get bằng thuật toán trên thì trả về giá trị dung lượng file là rỗng, rất dễ nhận biết, kèm theo nó cũng có luôn sharekey, đệ quy thêm một lượt mà lôi ra cho bằng hết nhé ;)

Không tệ lắm cho Build đầu tiên đúng không ? :)

Ta hãy gọi nó là FastFrog ver 1.0 nhé ;)

image

Dự kiến

  • Build 1.1 : Get được Link Direct từ link file vừa fetch được.
  • Build 1.2 : Gọi IDM để chém link vừa fetch được.

Source : http://www.mediafire.com/?325u52y2dmn

  1. danglv
    May 30, 2010 at 4:24 pm | #1

    Xin chào
    Mình thấy bài viết của bạn rất thú vị
    Sao bạn không tiếp tục Version tiếp theo đi nhỉ?
    Mình ủng hộ bạn !
    hy vọng sẽ được dùng phần mềm của bạn !

  2. lehoaian
    June 3, 2010 at 6:23 pm | #2

    @danglv : Mình vừa thi tốt nghiệp xong và đang chuẩn bị đi làm nên ko có nhiều thời gian lắm, thêm nữa mediafire quả thật đáng gờm, fix quá thường xuyên, mình chưa thể theo kịp được. Hiện cũng có 1 phần mềm khá tốt đc mọi người hay dùng là FESoup, bạn có thể Google tải về dùng, phần mềm này cách đây tầm 1 tháng chạy tốt, còn gần đây thì mình chưa test, chưa biết !.

    Thank for your comment !

  3. hoang quoc hoang
    June 11, 2010 at 10:04 am | #3

    Ban Pro nhi.Viet lun class gui link wa IDM lun di.Nhớ chỉ dẫn cụ thể lun nha.Mà h bạn làm ở đâu zị?

  4. lehoaian
    June 11, 2010 at 11:57 am | #4

    @hoang : Giờ mình thất nghiệp bạn ơi ! Chắc đi bán kẹo kéo quá ^^

  5. bem
    July 15, 2010 at 4:55 pm | #5

    lam sao ma` nem duoc cai link sang IDM de no tu down nhi?

  6. February 25, 2011 at 10:45 pm | #6

    send link qua IDM thì dễ thôi, bạn vào file help của IDM đó, có phần command line
    mình còn bí chỗ check IDM download xong hay chưa, bạn nào biết chỉ hộ mình với
    mail: okitakimura@gmail.com

    @lehoaian: bạn cho mình mail đc không, mình mới học C#, cũng có ý định làm soft download MF mà chưa biết cơ chế get link ra sao

  7. February 27, 2011 at 3:20 pm | #7

    Hi.
    Để send link sang IDM bang vào file help IDM có phần commandline đó.
    @lehoaian: Mong bạn tiếp tục viết để truyền kinh nghiệm cho anh em ^^.

    • lehoaian
      February 28, 2011 at 9:28 am | #8

      Hi bạn, thực ra chuyện send command đến cho IDM thì không khó, khó là get được link trực tiếp từ mediafire.com, nó là cty lớn làm ăn kiếm tiền nên chuyện ngăn chặn người dùng get link trực tiếp là sống còn đối với nó, có thể nó change cách mã hóa hàng ngày ấy chứ, mình thì không muốn mất quá nhiều time cho chuyện này nên đã pending lại rồi, hiện tại cũng có một soft của mấy bạn bên UpdateSoft tên là : FESoup hay Chicken Soup j đấy, thấy cũng tốt, thời gian gần đây mình ko dùng nên cũng ko biết còn xài đc ko, bạn có thể Google và try nhé !

      Nếu bạn mới học C# thì nên làm các project đơn giản để tìm hiểu thôi, làm extract MF thì nó liên quan tới nhiều công nghệ khác xa hơn như HTML, XML … , thậm chí C# trong cái soft này cũng không đáng bao nhiêu % cả.
      Cần trao đổi gì bạn cứ reply hoặc mail, mình sẽ support !

      Thanks !

  8. February 28, 2011 at 7:06 pm | #9

    Hi :D
    Thanks bạn đã góp ý,vì hầu hết kiến thức về lập trình là tự tìm hiểu vì ko phải chuyên nghành của mình ^^”, chỉ tìm hiểu do đam mê thôi nên nhìu lỗ hỏng lắm.
    Nếu có bạn giúp đỡ thì còn gì bằng, có gì mình pm nhá.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 39 other followers