Bu durumda, gerçekten yapmak istediğiniz şey, Windows'un kendisini değil, belirli bir uygulamayı kandırmaktır.
Potansiyel problemler
Öncelikle, açıkça, böyle bir yapılandırma programınız tarafından desteklenmiyor. Bu yüzden gerçekten kendi risk altında bir şey.
Programı çalıştırdıktan sonra, yüklü fiziksel belleğinizin üzerindeki RAM tahsislerini işlemek için sayfa dosyasına güvenebileceğinizi düşünebilirsiniz. Ne yazık ki, bu her zaman çalışmaz, çünkü söz konusu programın gerçekleştirilmesi mümkün istek Özellikle fiziksel hafıza. Bunu yapan en az bir sanal makine / hipervizörün farkındayım ve Bluestacks aynı teknedeyse şaşırmam.
Genel yöntem
Temel olarak, programı yükleyebilmeniz için yükleyiciyi kandırmak veya programı başlattığınızda kontrol etmek için gerçekleşirse programın kendisidir. Bu programlar / yükleyiciler yüklü belleği kontrol ettiklerinde fiziksel bellek miktarını almak için Win32 API işlevlerini çağırmaları gerekir. Çağrılabilecek bazı fonksiyon örnekleri:
Bir şekilde, bu fonksiyonların program için sahte / yanlış bir sonuç vermesini sağlamalısınız.
Genel bir fikir olarak, ya bir hata ayıklayıcı (örneğin, windbg) kullanmak ve dönüş değerini değiştirebileceğiniz bu işlevlerde bir kesme noktası belirlemek isteyeceksiniz. Bu manuel bir işlemdir ve belki de kurucuya daha uygun - programın kendisi bu kontrolleri gerçekleştirirse otomatik bir şey isteyeceksiniz.
Görevi yapmak istiyorsanız, aşağıdaki gibi bir DLL dosyası yazabilirsiniz. kancalar Söz konusu API'ler ve ardından işleme DLL dosyasını enjekte edin. Bunu daha sonra özel bir başlatıcıdan yapabilirsiniz (... bu şimdi etkinleştirme çatlaklarına şüpheyle benziyor). Gibi kütüphaneler EasyHook ve Detours Bunu kolaylaştır.
Gibi araçları da bulabilirsiniz WinAPIOverride kullanışlı. Bu, kendiniz bir şey yazmak zorunda kalmamanıza izin verebilir. (Not: Bu programı hiç kullanmadım ve sisteminizin istikrarı veya bütünlüğü için güvenli olup olmadığına dair hiçbir iddiada bulunmam ya da garanti vermem. Kendi sorumluluğunuzda kullanın.)
MSI yükleyicileri
Yükleyici bir MSI yükleyici ise, o zaman özel bir durum söz konusudur. İkili yükleyicilerin aksine, MSI formatı oldukça iyi belgelenmiş bir veritabanıdır ve onu düzenlemek için araçlar vardır. Eğer Gerekli minimum boyut sadece bir yükleyici özelliği olarak saklanır, muhtemelen yükleyiciyi değiştirmek için düzenleyebilirsiniz. Bununla birlikte, özel eylemler vb. İçine gömülmüşlerse, böyle bir yaklaşım işe yaramayabilir.
Bu MSDN forum konusu fikri kısaca tartışıyor (Ji.Zhou tarafından verilen cevaba bakınız). Ne yazık ki, Orca ile MSI'ye bir göz atmayı önermekle birlikte, bu senaryoda muhtemelen uygulanamayacağını da söyledi.