ในบทความวันนี้ เราจะสำรวจว่าทำไม LoadLibrary function จึงคืนค่าข้อผิดพลาด STATUS_DLL_NOT_FOUND บน impersonate thread ใน Windows 10 เราจะนำเสนอ workaround เพื่อแก้ไขปัญหานี้ด้วย

Impersonation คือความสามารถของ thread ที่จะ execute โดยใช้ข้อมูลความปลอดภัยที่แตกต่างจาก process ที่เป็นเจ้าของ thread
ข้อผิดพลาด LoadLibrary function STATUS DLL NOT FOUND
Error Code 0xC0000135 – STATUS_DLL_NOT_FOUND
คุณจะได้รับข้อความข้อผิดพลาด "STATUS_DLL_NOT_FOUND" บน impersonate threads ใน Windows 10 หากคุณไม่ให้สิทธิ์การเข้าถึง dynamic-link library (DLL) ให้กับ process token เองเมื่อคุณใช้ LoadLibrary function เพื่อโหลด DLL
คุณอาจพบข้อผิดพลาดนี้ตามสถานการณ์ที่;
สมมติว่าระบบปฏิบัติการ Windows ทั้งหมดมีสิทธิ์เข้าถึง DLL ที่ถูกอ้างอิงโดย process token แต่ไม่ว่าจะเป็นเงื่อนไขที่อธิบายไว้ที่นี่ ปัญหานี้แพร่หลายใน Windows 10, Windows Server 2016, Windows Server 2019 และ Windows Server, version 1909 มากกว่าเวอร์ชัน Windows ก่อนหน้า
ในกรณีที่คุณได้รับข้อผิดพลาดนี้เมื่อรันซอฟต์แวร์ใดๆ ลองติดตั้งใหม่และดูว่าช่วยได้หรือไม่
มีค่าสำคัญที่พฤติกรรมนี้เป็น by design ใน Windows
อย่างไรก็ตาม เพื่อแก้ไขปัญหานี้ Microsoft แนะนำให้ตรวจสอบให้แน่ใจว่า process tokens มีสิทธิ์เข้าถึง executables ทั้งหมดที่ process โหลด
หวังว่าบทความนี้จะมีประโยชน์!
