Bạn có thể sử dụng tệp DLL để gọi SetCurrentDirectory
sau khi quá trình đã được khởi chạy. Điều này sẽ yêu cầu bạn xây dựng một ứng dụng kim phun, cộng với DLL để tiêm. Một số hướng dẫn tồn tại; có lẽ hai cái tốt nhất tôi tìm thấy là:
Bạn sẽ cần một lượng lớn nền tảng lập trình C ++ (và môi trường xây dựng hoạt động) để vượt qua điều đó.
Tuy nhiên, điều này giả định rằng dịch vụ đang xem thư mục hiện tại. Một khả năng khác là nó đang sử dụng %path%
. Bạn nói rằng nó "bắt đầu tại system32
, thử thêm một vài vị trí, và cuối cùng là thư mục riêng của nó", vì vậy điều này có vẻ nhiều khả năng đối với tôi.
So sánh các thư mục bạn nhìn thấy procmon
với của bạn %path%
. Nếu chúng giống nhau, hãy xem xét sửa đổi SYSTEM %path%
hoặc %path%
của người dùng đang chạy dịch vụ, để thư mục bạn muốn tìm kiếm trước tiên.
Tuy nhiên, tôi tin rằng Fred đã đúng - bạn khó có thể thấy bất kỳ lợi ích hiệu suất đáng kể nào bằng cách thực hiện bất kỳ điều nào trong số này, trừ khi điều đó xảy ra rất thường xuyên. Các thao tác mở tệp đơn giản không đặc biệt tốn kém, đặc biệt nếu đó là đường dẫn cục bộ và tệp không thực sự tồn tại.