This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

woim.net: mã hóa chuỗi địa chỉ URL

lolz lolz
Added by almost 3 years ago  »  Votes: 2/2

{{{allow @Assignable, @Blogger}}}

Lâu rồi không dùng và kiểm tra kịch bản woim để tải nhạc từ trang web "chôm nhạc" http://woim.net/. Hôm nay do tình cờ nghe nhà bên có nhạc hòa tấu, mới nhớ ra mình từng viết kịch bản để chôm lại “đồ bị chôm” :)

Hóa ra, kịch bản vẫn làm việc tốt. Nhưng có một số thay đổi ở phía server, kết cục là để tiếp tục sử dụng kịch bản do mình viết, bạn phải

  • Xóa bỏ toàn bộ các thông đã lưu trong bộ đệm (thư mục cache). Xem thêm hướng dẫn và thông tin ở woim.
  • Chịu khó đặt lại tên cho các bài hát được tải về. Lý do là tất cả các tập tin mp3 được thiết lập cùng một tên (nhưng khác địa chỉ) ở phía server, nên khi bạn tải về sẽ không phân biệt được bài này với bài kia.

Ngoài ra, bạn chỉ có thể dùng tham số album cho kịch bản woim (trước đây có thể sử dụng tham số song, ví dụ song/12312). Mình sẽ điều chỉnh lại kịch bản khi có thời gian, nhưng tạm thời có gì xài đấy :)

Tạm dừng ở đây. Nếu bạn muốn biết chi tiết kỹ thuật liên quan, thì hãy xem tiếp: Câu hỏi đặt ra là, có điều gì đã xảy ra? Lập trình viên cho woim đã thay đổi các kịch bản tới từng tập tin mp3, nhằm che mắt người dùng. Hãy xem ví dụ sau

 1 $ woim 3006 | grep mp3
 2 :: list of mp3 files
 3 http://media1.woim.info/url.php?auth=ZEhKMWIyNW5hR1Z5Ynk5S2FXRnVaMTlLYVdGdUxVMXBiaTlUZDI5eVpFOXVWR2hsUW05M0
 4  x6QXhMV05vZFc0dFozVmhibWN0YldWcExUSTNOemd4TXkxM2QzY3VkMjlwYlM1dVpYUXViWEF6TERFeU56WTNNVEl6TURBc01USXpMakl3T
 5  GpFdU1qQTFMRE1zTUN4TVRGOHdMQ3hqWWpsak16ZzFZMlF3WlRVNFl6UmlaREk0WVRrek16VXpPVGN5WmpNNU1peHRZWFJ0WVdSMWJtZHRZ
 6  V2h2WVE9PQ%3D%3D/0.mp3
 7 http://media1.woim.info/url.php?auth=ZEhKMWIyNW5hR1Z5Ynk5S2FXRnVaMTlLYVdGdUxVMXBiaTlUZDI5eVpFOXVWR2hsUW05M0
 8  x6QXlMV2h2Ym1jdFpHOTFMV2h2Ym1jdE16Y3dNamt3TFhkM2R5NTNiMmx0TG01bGRDNXRjRE1zTVRJM05qY3hNak13TlN3eE1qTXVNakF1T
 9  VM0eU1EVXNNeXd3TEV4TVh6QXNMRGhrT1Rjd1l6UmtNVFkxTW1SaE1qRTRaakkxTkdaa1pXSmlZalU0WmpFeUxHMWhkRzFoWkhWdVoyMWhh
10  Rzlo/0.mp3

Choáng. Nếu dùng wget để tải về thì bạn sẽ được các tập tin 0.mp3, 0(1).mp3,... Còn tên bài hát, tác giả,... thì hòan tòan được che đi sau dòng mã ZEhKMWIyNW5h.... Tay lập trình viên này khá lắm đây :) Nhưng khôn mà không ngoan. Có lẽ biết được câu “khó người, khó ta”, lập trình viên đã sử dụng một thuật toán giải mã rất đơn giản. Nói đơn giản là vì sự xuất hiện của chuỗi ZEhKMWIyNW5hR1Z5Ynk5S2FXRnVa làm mình nghĩ ngay tới base64 encode.

1 $ s="ZEhKMWIyNW5hR1Z5Ynk5S2FXRnVaMTlLYVdGdUxVMXBiaTlUZDI5eVpFOXVWR2hsUW05M0
2  x6QXhMV05vZFc0dFozVmhibWN0YldWcExUSTNOemd4TXkxM2QzY3VkMjlwYlM1dVpYUXViWEF6TERFeU56WTNNVEl6TURBc01USXpMakl3T
3  GpFdU1qQTFMRE1zTUN4TVRGOHdMQ3hqWWpsak16ZzFZMlF3WlRVNFl6UmlaREk0WVRrek16VXpPVGN5WmpNNU1peHRZWFJ0WVdSMWJtZHRZ
4  V2h2WVE9PQ" 
5 $ echo "$s" | base64_decode
6  dHJ1b25naGVyby9KaWFuZ19KaWFuLU1pbi9Td29yZE9uVGhlQm93LzAxLWNodW4tZ3VhbmctbWVpLTI3NzgxMy13d3cud29pbS5uZXQubXAz
7  LDEyNzY3MTIzMDAsMTIzLjIwLjEuMjA1LDMsMCxMTF8wLCxjYjljMzg1Y2QwZTU4YzRiZDI4YTkzMzUzOTcyZjM5MixtYXRtYWR1bmdtYWhvYQ=

Chết rồi. Mình đoán sai. Việc giải mã ngược chuỗi ban đầu không mang lại cái gì đẹp cả :) Lưu ý rằng, mình bỏ đi phần %3D%3D/0.mp3, vì hiển nhiên, /0.mp3 chẳng liên quan gì, và các kết quả của việc mã hóa base64 theo cách thông thường sẽ không bao giờ chứa ký lạ như %.

Sai. Nhưng hãy nhìn kết quả ở trên, cùng với dấu bằng = ở cuối rất đặc trưng. Có lẽ kết quả đó cũng liên quan tới base64

1 $ echo "$s" | base64_decode | base64_decode
2  truonghero/Jiang_Jian-Min/SwordOnTheBow/01-chun-guang-mei-277813-www.woim.net.mp3
3  ,1276712300
4  ,123.20.1.205
5  ,3,0,LL_0,
6  ,cb9c385cd0e58c4bd28a93353972f392
7  ,matmadungmahoa

Rõ ràng rồi nhé: sau hai lần giải mã liên tiếp thì ra ngay thông tin về tập tin mp3, gồm có:

  1. địa chỉ tới tập tin mp3 thật trên server (tập tin này có thể không truy cập được trực tiếp)
  2. kích thước hoặc thời gian tạo tập tin
  3. địa chỉ IP của server hoặc của người đã tải tập tin (trường hợp sau có khả năng hơn)
  4. vài thông tin gì đấy
  5. một chuỗi mã md5 để kiểm tra chất lượng tập tin, hoặc có thể là để sinh ra id của tập tin và bài hát
  6. Mật mã dùng mã hóa (cái này rất kỳ, có thể sẽ thay đổi trong tương lai)

Tay lập trình viên này mã hóa hai lần. Thật là siêu cao. Nhưng “vỏ quýt x thì có móng tay y”. Sắp tới có thể là một cuộc đấu trí với tay lập trình viên và kiến trúc sư trưởng của http://woim.net/ đây :)) Nhưng sẽ còn lâu, vì bài viết này được công bố riêng tư và bạn sẽ theo dõi cho riêng mình mà chưa (nên) công bố cho mọi người khác biết nhé :P


Comments

Added by hoangtran almost 3 years ago

làm thế nào xem được bác Kỳ ơi

Added by almost 3 years ago

Bác xem được rồi đó: phải là thành viên của dự án mới xem được :D Rắc rối nhỉ :))

Added by almost 3 years ago

{{{allow @Assignable}}}

Tìm ra thằng này rồi: http://www.vibralogix.com/linklokurl/

Linklok URL allows you to place links to download files (or embedded images etc) on your website while securely hiding the true location of the files. The actual files linked to can actually be stored anywhere on your server (within or outside of webroot) or even on another server on the other side of the world! Links are automatically authenticated using MD5 and can be set to expire between 1 minute and several years after creation if required. Links can also be locked to the users IP address ensuring they can't be shared even before they expire! There is basically no way an internet user can find out the actual location of your files.

Added by hoaihung [G] almost 3 years ago

hix mình cũng muốn xem

Added by almost 3 years ago

hoaihung: Mình chỉ công bố bài viết cho một số bạn bè quen biết để bảo vệ kết quả và bảo vệ cho trang web woim.net.

Added by hoaihung [G] over 2 years ago

mình không có ý phá hoại trang đó. mình chỉ mong muốn được tham khảo những cách mã hóa và bảo mật, cũng như tìm tòi những giải pháp mã hóa link. hi vọng bác giúp em :)

Added by over 2 years ago

Vấn đề thực chất không liên quan gì tới mã hóa hay bảo mật, nên mình chắc là bạn không tìm được gì ở bài viết của mình rồi. Hihi