Uning qo'lini ochadigan faylni ishga tushirish (C ++ winapi)

C ++ dasturida manba sifatida exe faylini qo'shib qo'ydim va men uni ishga tushirishim kerak, lekin foydalanuvchi uni nusxa ko'chira olmaydi, shuning uchun unga ruxsatni cheklashim kerak. Buning uchun tashqi dasturlarga kirish imkoni yo'q va men FILE_FLAG_DELETE_ON_CLOSEni bayroq sifatida ishlatganligim sababli, uni o'chirib qo'yishim kerak, shuning uchun mening dasturim o'ldirilsa.

Lekin buning sababi, uni CreateProcess() yoki WinExec() bilan ishlating. Bilaman, g'alati tuyuladi, lekin menda yaxshi sabab bor. Dll-injection makrlaridan o'yinni bajaradiganlarini himoya qilish uchun ularga ehtiyojim bor, va bu exe kodi yo'q.

1
Foydalanuvchilarning bajariladigan fayllardan nusxa ko'chirishdan saqlanishiga aql bovar qilmaydigan usul yo'q ... faqat "
qo'shib qo'ydi muallif JosephH, manba
Ushbu strategiyadagi juda ko'p teshiklar bor, qayta ko'rib chiqish kerak. Siz kompyuterni o'chirib, qayta ishga tushirganingizda va sizning faylingiz o'chirilmaydi. Har qanday yangi foydalanuvchi buni amalga oshirishi mumkin. Bundan tashqari, u resurs sifatida kiritilgan bo'lsa, u faqat olinishi mumkin. Foydalanuvchilar .exe faylini nusxa ko'chirmaydimi, shuning uchun ilovangizni loyihalash haqida nima deyish mumkin?
qo'shib qo'ydi muallif tenfour, manba
Foydalanuvchilarni faylni nusxalashdan qanday qilib oldini olish DLLni in'ektsiya qilishga xalaqit bermaydi?
qo'shib qo'ydi muallif tenfour, manba
Bilaman, lekin bu faylni nusxalashning o'zi qiyinchilik.
qo'shib qo'ydi muallif lazy_banana, manba
Muammo: Men saqlamoqchi bo'lgan exe-ni o'zgartira olmayapman, bu meniki emas, menda manba yo'q, u hali ham cheaterlarning aksariyatini buzadi. Bu muammo emas, lekin men exe faylini ishga tushira olmayapman, chunki uning ochilgan faylini ushlab turish kerak.
qo'shib qo'ydi muallif lazy_banana, manba
Xo'sh, mening dasturim exe-faylini ishga tushiradi va doimo uni dlya in'ektsiyasidan tekshirib chiqadi. Ammo o'yin exe mening dasturimdan foydalanishi mumkin va u zaif bo'ladi. Nusxa olish bilan ular mening himoyadan foydalanmasdan o'yinni bajarishi mumkin. Lekin bu mening savolim emas.
qo'shib qo'ydi muallif lazy_banana, manba

1 javoblar

Butun faylni qulflay olmaysiz, chunki u juda kichik qismini LockFile bilan qulflang. Windows foydalanmayotgan byte oralig'ini topishingiz kerak bo'ladi. Bunga EXE ga qo'g'irchoqboz resurs qo'shib, erishishingiz mumkin. (Bu manba kodini talab qilmaydi).

0
qo'shib qo'ydi
Men buni sinab ko'raman, rahmat.
qo'shib qo'ydi muallif lazy_banana, manba