Aracılığıyla paylaş


Nasıl yapılır: grafik Tanılama, uygulama içinde devre dışı bırakma

Kötü niyetli bir kullanıcı tarafından kullanılmasını önlemeye yardımcı olmak için, Grafik Tanılama ve diğer profil oluşturma araçlarının uygulamanızı incelemesini engelleyebilirsiniz.

Uygulamanızı geliştirirken Visual Studio Grafik Tanılama kullanarak detaylı bilgi edinebilir ve analiz edebilirsiniz, böylece uygulamayı yayınlamadan önce iyileştirebilirsiniz. Ancak, uygulamayı yayınlamadan önce Grafik Tanılamanın bu bilgileri yakalamasını önlemezseniz, kötü amaçlı bir kullanıcı bu araçları varlıkları, gölgelendirici kodunu ve diğer bilgileri çıkarmak ve daha sonra bunları uygulamadan faydalanmak için kullanmak üzere kullanabilir. Örneğin, kötü niyetli bir kullanıcı fikri varlıkları ve gölgelendirici kodunu çevrimiçi bir oyunda haksız avantaj elde etmek için değiştirebilir.

Platform ve SDK desteği

Windows 8 için Windows SDK öğesinde Direct3D 10 desteğinde aygıt oluşturma için ek bayraklar bulunur. Özellikle, Grafik Tanılama gibi grafik profil oluşturma araçlarının bir uygulamaya takılmasını engellemek için kullanılan D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY içerir. Windows 8 için Windows SDK içerisinde bulunan Direct3D üstbilgisi dosyalarına başvuru yapan uygulamalar bu yeni bayrakları kullanabilir ancak Haziran 2010 DirectX SDK içerisinde bulunan Direct3D üstbilgisi dosyalarına başvuran uygulamalar bunları kullanamaz. Bu, Windows 8 ve Windows 7 üzerinde çalışan uygulamalar için geçerlidir.

Direct3D 11.1'de, grafik profil oluşturma araçlarının uygulamanız hakkında bilgi toplamasını engellemek için ID3DUserDefinedAnnotation::GetStatus öğesini kullanabilirsiniz. Bu arabirim Windows 8 için Windows SDK'a başvururken bile Windows 7 için kullanılamadığından, bu yalnızca Windows 8 üzerinde çalışan uygulamalara uygulanır.

Windows 8 için Windows SDK üzerinde güncelleştirilmiş Direct3D üstbilgilerine referans yapmayan uygulamalarda, uygulamayı Direct3D 9Ex'e karşı oluşturarak ve D3DPerf_SetOptions API'ı kullanarak grafik profil oluşturma araçlarının bilgi yakalamasını önleyebilirsiniz.

Direct3D 11.1 Grafik Tanılama gibi grafik profili oluşturma araçlarının bir uygulamaya eklenmesini önlemek için iki yöntem sağlar. İlk teknik, ID3DUserDefinedAnnotation::GetStatus kullanarak uygulamanın herhangi bir profil oluşturma aracı tarafından izlenip izlenmediğini algılamak ve izleniyorsa uygulamadan derhal çıkış yapmaktır. Uygulama kapatılmadan önce bir eylem gerçekleştirmek istediğinizde bu tekniği kullanın. İkinci teknik, Direct3D aygıtınızı oluşturduğunuzda uygun işareti ayarlamaktır.

Windows 8 için Windows SDK ve Direct3D 11 kullanarak grafiklerin profil oluşturmasını önlemek için

  • Uygulamanızın kaynak kodunda, herhangi bir hassas Direct3D çağrısı yapmadan önce ID3DUserDefinedAnnotation::GetStatus yöntemini çağırın ve dönüş değeri sıfır olmayan bir değer olursa uygulamayı hemen kapatacak kod yazın.

    - veya -

    Uygulamanızın kaynak kodunda Direct3D 11 aygıtı oluşturduğunuzda, D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY bayrağında geçin. Direct3D 11 cihazı oluşturma hakkında bilgi için bkz. D3D11CreateDevice ve D3D11CreateDeviceAndSwapChain. D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY bayrağı hakkında daha fazla bilgi için bkz. D3D11_CREATE_DEVICE_FLAG numaralandırma.

Windows 8Üstbilgi dosyaları için referansı yaptığınızda, Windows SDKDirect3D 10, ikinci Direct3D 11 tekniği ile benzer bir teknik sağlar için üstbilgi dosyaları.

Direct3D 10 ve Windows SDK kullanarak grafiklerin profil oluşturmasını önlemek için (Windows 8 için)

  • Uygulamanızın kaynak kodunda Direct3D 10 aygıtı oluşturduğunuzda, D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY bayrağında geçin. Direct3D 10 cihazı veya Direct3D 10.1 cihazı oluşturma konusunda bilgi için, bkz. Direct3D 10 cihazı Çekirdek İşlevler. D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY bayrağı hakkında daha fazla bilgi için bkz. D3D10_CREATE_DEVICE_FLAG numaralandırma.

Ayrıca, Windows 8 için Windows SDK yerine Haziran 2010 DirectX SDK kullanarak Grafik Tanılama gibi grafik profil oluşturma araçlarının uygulamanıza takılmasını önleyebilirsiniz.

Haziran 2010 DirectX SDK kullanarak grafiklerin profil oluşturmasını önlemek için

  1. Uygulamanızı DirectX 9Ex üstbilgi dosyalarına karşı oluşturmak üzere yapılandırın.

  2. Direct3D aygıtını uygulamanızın kaynak kodunda oluşturmadan önce, D3DPERF_SetOptions API'ı çağırın ve 1 parametresi kullanın. Daha fazla bilgi için, Haziran 2010 DirectX SDK belgelerine bakın.