Bài đăng

wifi hotspot và vpn

Hình ảnh
VPN và câu chuyện phát wifi Tổng quan Đôi khi tôi hay dùng 4G và v2rayNG để tạo vpn truy cập mạng tránh kiểm duyệt, dùng trên điện thoại android cùi bắp của tôi thì vẫn tốt không vấn đề gì nhưng, khi tôi muốn chia sẻ wifi cho điện thoại hoặc máy tính khác thì 1 là không vào được mạng, 2 là không đúng cái mạng vpn đã tạo mà là mạng 4G. Hơn nữa muốn truy cập đúng cái vpn đã tạo thì phải thiết đặt http/socks5 proxy các kiểu trên các máy khác, điều này làm tôi khó chịu nên tôi đã điều tra, phân tích nguyên nhân. Sau đây là bài phân tích đó. Các thông tin cơ bản. Ứng dụng v2rayNG Ứng dụng này có 2 thành phần quan trọng sau đó là tun2socks và v2ray core. Tun2socks là một ứng dụng đóng/mở gói và chuyển tiếp gói tin đến các proxy như HTTP/Socks4/Socks5/Shadowsocks. Hoạt động tại lớp mạng như là một gateway (cổng mạng). V2ray là một ứng dụng proxy. Hay được dùng để vượt tường lửa bên tàu. Theo mặc định v2ray sẽ tạo socks5 server tại: 0.0.0.0:10808 và http server tại: 0.0.0.0:10809

Chặn quảng cáo facebook

Hình ảnh
Tổng quan Ở bài viết này sẽ hướng dẫn chặn quảng cáo có trong facebook web. Để loại bỏ quảng cáo, chúng ta sẽ nhúng code javascript vào facebook web thông qua một số tiện ích trình duyệt như tampermonkey , violentmonkey , ... Bài này sẽ chia làm 2 phần: Xóa quảng cáo dạng Được tài trợ Xóa quảng cáo trong video. 1. Xóa quảng cáo Được tài trợ Đầu tiên chúng ta xác định xem nút nào sẽ chứa bài đăng. Dùng devtool và Inspector trỏ vào 1 bài đăng bất kỳ và dò ngược tới khi nào thấy danh sách các nút có thuộc tính giống nhau. Hình trên mô tả danh sách các nút chứa bài đăng của facebook web. Nút nào có thuộc tính data-pagelet thì nút đó có chứa bài đăng. Khi lướt facebook thì nội dung sẽ được thêm liên tục, tức là DOM sẽ thay đổi. Nên để nhận biết được điều này chúng ta sẽ sử dụng một api rất hay và phổ biến là MutationObserver . Chúng ta sẽ dùng MutationObserver để giám sát cây DOM document.body , quan sát xem nút nào được thêm mới, lọc nút đó, nếu là quảng cáo thì xóa. var muta

Colab trong Colab

Hình ảnh
Tổng quan Ở bài viết hôm trước, chúng ta đã tạo ra một trình duyệt web mini để chạy colab. Tuy là tạo và chạy được nhưng bây giờ chạy nó ở đâu ? Với một số ae dư giả sẽ chạy nó trên vps windows hoặc chạy ngay trên máy tính của mình, nhưng đối với tui, tui cho nó chạy trên colab luôn ^.^ Đó cũng nguyên nhân sinh ra bài viết này. Như ae đã biết mỗi khi chạy một dự án trên google colab thì sẽ được cung cấp một máy ảo chạy môi trường dòng lệnh gnu/linux. Nhưng với trình duyệt web của chúng ta muốn nó chạy phải cung cấp môi trường đồ họa. Mà đồ họa thì cần màn hình, mà màn hình đâu ra ^v^. Tất nhiên là màn hình thật không có thì ta dùng màn hình ảo chứ sao nữa. Tạo màn hình ảo. Để tạo được màn hình ảo, chúng ta sẽ cần đến anh bạn Xvfb. Xvfb (X virtual framebuffer) là một máy chủ X (X server) có thể chạy trên các máy mà không có màn hình. Nó mô phỏng một bộ đệm khung hình (framebuffer) sử dụng bộ nhớ ảo. Còn X server là một hệ thống cửa sổ hiển thị bitmap, nó cung cấp một khung cơ bản

Kéo dài sự sống cho google colab

Hình ảnh
Tổng quan Sau vài tháng sử dụng google colab thì hôm may mới viết bài này để giải quyết vấn đề về "kéo dài sự sống" cho google colab. Cụ thể, khi sử dụng google colab để làm việc như đào tạo mô hình học máy, hay crack mật khẩu thì mất kha khá thời gian, ở bản miễn phí của colab thì chắc các bạn đã biết thời gian chạy 1 dự án tối đa là 12 tiếng. Ban đầu tui cũng chủ quan, tui mở 1 tab cho dự án colab để nó chạy đào tạo mô hình, thời gian cũng ngắn không quá 12 tiếng, thì thời gian còn lại rảnh quá, tui mở 1 tab khác để xem youtube. Sau vài tiếng quay lại tab ban đầu xem kết quả thì bùm, cái dự án đang chạy biến mất, sạch không tì vết. Tui không hiểu tại sao, nhưng tui đoán là cái máy ảo chạy dự án đã tự khởi động lại nên nó xóa hết cmn rồi. Sau đó tui lần lần mò google với từ khóa colab alive thì dẫn tui đến stackoverflow với câu hỏi How to prevent Google Colab from disconnecting? và thêm được thông tin sau: Google Colab notebooks có thời gian chờ không hoạt động là 90

Tự tạo 1 chiếc trình duyệt web mini

Hình ảnh
Giới thiệu Hôm nay chúng ta sẽ cùng tạo 1 con trình duyệt web cơ bản. Em nó được viết bằng python dựa trên nền Qt5 và QtWebEngine. Mà QtWebEngine thì dựa trên nền Chromium nên nó hơi hao hao giống chrome :) Mục đích tạo ra nó là để học hỏi và làm một vài thứ hay ho khác, các bài viết sau sẽ rõ :). Link code mini web browser Đây là hình ảnh của em nó. Lập trình Nguyên liệu: Python3 PyQt5 PyQtWebEngine Text Editor hoặc IDE tùy ý nhá. Cài đặt. Python3 dễ cài quá mà. Với Qt thì dùng lệnh pip. Cụ thể: pip install PyQt5 PyQtWebEngine Code Code của em nó sẽ ở cuối bài hoặc đâu đó trong bài viết này :). Code cửa sổ chính Sau đây là code phần cửa sổ chính. class MainWindow(QMainWindow): """docstring for MainWindow""" def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.tabs = QTabWidget(tabsClosable=True, movable=True) self.tabs.setTabShape(0) self.resize(800, 600)

Thoát kiểm duyệt xem phim lậu - haha

Tổng quan Như các bác đã biết, dạo gần đây các trang phim lậu bị các nhà cung cấp mạng Việt Nam chặn triệt để. Nhưng các trang phim ấy cũng đâu có vừa, họ liền đổi tên miền, ví dụ phimmoi.net thành phimmoiz.net, cứ chặn là họ thêm cứ thêm z vào tên miền. Còn con dân xem phim lậu thì dùng cũng có cách dùng proxy hoặc vpn, nhưng 2 cái trên có nhược điểm là tốc độ chậm và đôi khi không an toàn. Vậy còn có cách nào khác nữa không? Xin thưa là Có . Quay lại vấn đề nhà cung cấp dịch vụ Internet - Internet Service Provider (ISP) họ đã làm cách nào mà chặn được web phim. Họ đã dùng công nghệ gọi là Phân Tích Sâu Gói Tin - Deep Packet Inspection (DPI) , ae nào học môn Hệ thống tìm kiếm, phát hiện và ngăn ngừa xâm nhập chắc là biết thằng này rồi còn không thì google. Vậy tại sao không chặn cmn IP đi cho dễ mà lại dùng công nghệ có vẻ phức tạp trên. Chặn IP thì không ổn chút nào. Các bạn đã nghe nói đến Cloudflare chưa? Chưa thì google đi, còn đơn giản nó là thằng bảo vệ các website. Vì các

Kết hợp Fiddler và Python bắt HTTP(S)

Hình ảnh
Kết hợp Fiddler và Python bắt HTTP(S) 1. Cấu hình Fiddler. Đầu tiên chúng ta cấu hình Fiddler nhận dữ liệu HTTP(S) từ các tiến trình (process). Sau đó trích xuất CA certificate ra Desktop. Chúng ta nhận được cửa sổ thông báo xuất tập tin FiddlerRoot.cer thành công. Tại Desktop chúng ta sẽ thấy tập tin FiddlerRoot.cer Hiện tại tập tin này đang lưu trữ dữ liệu ở dạng DER . Chúng ta sẽ chuyển nó về định dạng PEM , vì thư viện requests của python yêu cầu như vậy. Chi tiết về các định dạng trên các bạn có thể xem tại đây Nháy đúp chuột vào tập tin FiddlerRoot.cer . Nó sẽ hiện ra cửa sổ sau. Chọn thẻ Details . Rồi click nút Copy to File... Chọn Next . Chọn tiếp Base-64 encoded X.509 (.CER) . Rồi Next . Sau đó đặt cho tập tin mới. Rồi Next -> Finish . Xong Để chỉnh cổng (port) lắng nghe của proxy server vào Tools > Options... > Connections . Chỉ định cổng kết nối tại Fiddler listens on port: . 2. Cấu hình Python. Chúng ta sẽ tìm kiếm và biên tập tập tin c