การเปิดตัวโค้ดที่อัปเดตอีกครั้งซึ่งเดิมเขียนเมื่อประมาณ 20 ปีที่แล้ว
โปรดทราบว่าในบางกรณีจำเป็นต้องใช้ DLL เวอร์ชัน 32 และ 64 บิต
โปรเจ็กต์จะคอมไพล์ใน Delphi XE2 ขึ้นไป เลือก XE2 เนื่องจากจะคอมไพล์ทั้ง 32 และ 64 บิตโดยใช้ไบนารี่ฟุตพริ้นท์ขนาดเล็ก
ไฟล์ Manifest จัดทำขึ้นสำหรับ Delphi Berlin ซึ่งรวมถึง 'uiAccess' IDE ที่ใหม่กว่ามีตัวเลือกนี้ในตัว การดีบักทำได้ดีที่สุดกับไฟล์ Manifest ที่ไม่มี 'uiAccess' 'LinkManifests.cmd' จะสร้างลิงก์สัญลักษณ์ไปยังไฟล์ Manifest ที่ให้มา
ตั้งแต่ Windows 10.1903.18362.295 Sandbox VM อนุญาตให้มีการทดสอบการดีบักโดยไม่ต้องเซ็นโค้ด
ทางที่ดีควรเปลี่ยนชื่อ DLL เปลี่ยนชื่อไฟล์ Mapfile และทำตามขั้นตอนเหล่านี้:
หากไม่มีการเชื่อมต่อแอป 'uiAccess' จะล้มเหลวและอาจล็อคแอปของคุณ
การบันทึกและการเล่น Journal hook โค้ดสามารถอยู่ภายใน EXE หรือ DLL และใช้งานได้กับทั้ง 32/64 บิตโดยไม่ต้องมีเวอร์ชันเพิ่มเติม อย่างไรก็ตาม วิธีที่ฉันอ่านคือ วิธีที่ดีที่สุดคือใช้ DLL เนื่องจากแอปที่ไม่ใช่เจ้าของภาษาจะโหลดโค้ดของคุณผ่านกลไกแบบ thunking
เชื่อมต่อข้อความทั้งหมดที่โพสต์ผ่าน PostMessage วิธีที่ดีที่สุดคือปรับแต่งสิ่งที่คุณต้องการรับชมและปล่อยให้ส่วนที่เหลือไหลผ่านไป การสาธิตปัจจุบันเพียงแค่โพสต์ข้อความกลับไปยังแอปดั้งเดิมเมื่อมีการคลิกเมนูระบบ
เชื่อมต่อฟังก์ชัน GetMessage หรือ PeekMessage ทั้งหมดเมื่อมีข้อความแป้นพิมพ์ (WM_KEYUP หรือ WM_KEYDOWN) ที่จะประมวลผล การสาธิตปัจจุบันเพียงโพสต์ข้อความกลับไปที่แอปดั้งเดิมเมื่อใช้ ALT+Numkey_1
แทรก DLL เข้าไปในกระบวนการโดยใช้ PID โดยที่การเรียก DDetours จะเปลี่ยนเส้นทาง API เป็นหลัก
วิธีการนี้สามารถใช้กระบวนการ Hook เฉพาะสำหรับกระบวนการเดียวเพื่อลดภาระบนระบบ
วิธีทดสอบที่ง่ายที่สุด:
ต้องใช้: ห้องสมุด Delphi Detours