Tải Chrono Mock
Hai bản dựng của cùng một công cụ: một cửa sổ để khám phá và một dòng lệnh cho CI. Giải nén
bản nào cũng được ở bất kỳ đâu rồi chạy - không trình cài đặt, không mục registry, không cần
quyền quản trị viên. Hoặc cài tệp .msi đã ký cho mọi tài khoản trên máy: quyền
quản trị viên một lần, để cài đặt, không cần để chạy.
| Tệp | Đó là gì | Dung lượng |
|---|---|---|
ChronoMock-app-win-x64.zip |
Ứng dụng máy tính để bàn, độc lập - không cần cài .NET | ~70 MB |
ChronoMock-app-win-x64.msi |
Ứng dụng máy tính để bàn và dòng lệnh, được cài cho mọi tài khoản trên máy: một mục
trong menu Start và chrono trong PATH |
~58 MB |
ChronoMock-cli-win.zip |
Chỉ là công cụ dòng lệnh, dành cho CI và script | ~2,4 MB |
Bạn cần gì
- Windows 10 hoặc Windows 11. Không có bản dựng cho macOS hay Linux - trên Linux, libfaketime đã làm tốt việc này.
- Không cần gì khác. Bản dựng máy tính để bàn mang theo runtime của riêng nó, còn bản dựng dòng lệnh không mang theo gì cả.
- Hỗ trợ cả ứng dụng 32-bit lẫn 64-bit. Gói cung cấp cả hai, và chọn bản khớp với ứng dụng mà bạn trỏ tới.
ARM64 nằm ngoài phạm vi cho đến phiên bản 1.0, và các ứng dụng Store đóng gói (UWP và MSIX) không được hỗ trợ - mô hình khởi chạy của chúng không cho phép.
Cách chạy
Giải nén, rồi chạy ChronoMock.exe để dùng cửa sổ hoặc
chrono.exe để dùng dòng lệnh. Phiên đầu tiên gồm ba quyết định:
ứng dụng nào, thời điểm nào, và đồng hồ nên chạy nhanh đến mức nào.
# Chạy một ứng dụng như thể đây là giây cuối cùng của năm 2027 chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59 # Điều tương tự, với đồng hồ chạy một ngày mỗi phút chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59 --mode x1440
Hai điều cần đọc trước
Hãy sao lưu thư mục dữ liệu của ứng dụng trước phiên đầu tiên đặt ngày trong tương lai.
Một ứng dụng chạy ở năm 2028 sẽ ghi các ngày năm 2028 vào bất cứ nơi nào nó lưu dữ liệu: cơ sở dữ liệu, cấu hình, bộ nhớ đệm, tệp giấy phép. Các giá trị đó vẫn ở đó sau khi bạn trở về giờ thật. Với phần mềm có bảo vệ bản quyền, điều này có thể là vĩnh viễn - “clock rollback detected, licence invalidated” là một mẫu chuẩn trong ngành, và nó sẽ làm đúng điều nó được thiết kế để làm.
Chrono Mock tự dọn dẹp sau khi dùng. Nó không thể dọn dẹp sau ứng dụng mà bạn đã kiểm thử.
Phần mềm diệt virus của bạn có thể cảnh báo, và điều đó là bình thường.
Thời gian được dịch chuyển bằng cách chèn một thư viện nhỏ vào tiến trình mục tiêu. Đó là một kỹ thuật Windows hợp pháp, có tài liệu - và cũng là kỹ thuật mà mã độc dùng, nên Microsoft Defender và các phần mềm khác có thể gắn cờ thư viện được chèn hoặc chặn hẳn việc chèn. Đó là một cảnh báo giả do chính kỹ thuật gây ra.
Nếu một phiên từ chối khởi động và Defender báo có mối đe dọa, hãy loại trừ thư viện chứ không phải
thư mục: chọn File trong Windows Security và nhập đường dẫn đầy đủ tới
chrono_hook.dll. Loại trừ cả thư mục sẽ khiến không có gì được quét ngay trong thư mục
mà công cụ chèn mã từ đó. Hoặc chạy nó trên máy mà bạn được phép làm vậy. Thư viện được chèn được
dựng từ mã trong kho này theo GPL-3.0 - bạn có thể tự dựng lại. Chế độ Chromium và Electron hoàn
toàn không chèn mã và không bị ảnh hưởng.
Nó để lại gì
Không để lại gì trong hệ thống của bạn: không có hook tồn tại lâu dài, không có mục registry, và
không có gì bên ngoài thư mục của chính nó, ngoại trừ ba thứ mà nó sẽ nêu tên cho bạn - lịch sử
phiên và nhật ký chẩn đoán, được chuyển sang %LOCALAPPDATA%\ChronoMock\ khi thư mục
riêng của công cụ không ghi được, và, với mục tiêu Electron hoặc Chromium, một hồ sơ trình duyệt
dùng một lần trong %TEMP%, được xóa khi phiên kết thúc và được báo trong bản tóm tắt
phiên nếu không xóa được.
Điều đó mô tả các tệp zip. Trình cài đặt là ngoại lệ và nói rõ nó thêm gì: chương trình
trong Program Files, một mục menu Start, chrono trong PATH của
máy, một mục trong Cài đặt, Ứng dụng và khóa HKLM\Software\DonislawDev\Chrono
Mock. Gỡ cài đặt xóa tất cả những thứ đó và để yên
%LOCALAPPDATA%\ChronoMock\. Một tùy chọn nữa, mặc định tắt, ghi một giá trị
registry trong suốt một phiên rồi xóa nó sau đó: --elevated-embedded.
Không bao giờ kết nối internet, không giữ tài khoản và không gửi telemetry.