Iniezione DLL Windows

0

Negli ultimi anni recenti, ho fatto un sacco di iniezione DLL con alcuni giochi indie e MMORPG. Capisco perfettamente come farlo e come funziona per consentire a questi giochi di funzionare non come gli intendano gli sviluppatori.

Se riesco a compromettere questi giochi in modo così facile e veloce, cosa mi impedisce di farlo sullo stesso Windows in generale?

    
posta 29.03.2014 - 02:51
fonte

3 risposte

-1

Misure di sicurezza del kernel. Non so molto sul modello di sicurezza della memoria di Windows, perché non uso Windows e non mi interessa, ma ti scommetto tutto ciò che ci sono parti di memoria che non ti è permesso modificare, no importa cosa Mai. Anche come amministratore.

Perché?

Ecco tre motivi per cui mi viene in mente:

  • Ti impedisce di danneggiare accidentalmente parte del sistema - in altre parole, è una cosa dell'esperienza utente
  • Protezione contro malware
  • DRM

Quest'ultima è una motivazione speciale per Microsoft. Microsoft spedisce i prodotti DRM in Windows a cui i publisher di contenuti si affidano per "proteggere" i loro media (ho messo le virgolette tra virgolette perché DRM fa un lavoro molto discutibile di quello). Microsoft guadagna i loro sistemi DRM; quindi, sono finanziariamente motivati a mantenere i loro sistemi DRM robusti (più è robusto un sistema DRM, più difficile da rompere).

Ora, il DRM sarebbe estremamente facile da interrompere se l'utente fosse in grado di caricare qualsiasi cosa nel proprio computer, ovunque, perché caricheranno semplicemente una DLL nell'applicazione multimediale che viene indirizzata e riverseranno i dati decrittografati su disco. Pertanto *, gli sviluppatori del kernel di Windows avranno implementato la protezione della memoria , che impedisce alle applicazioni di modificare alcune parti della memoria. La mia ipotesi è che almeno il kernel si contrassegni come memoria protetta (altrimenti si riuscirebbe ad aggirare le protezioni della memoria su altre parti del sistema), insieme al contenuto protetto da DRM.

Va bene. Ma come?

Questa è una semplificazione, ma in sostanza, un kernel del sistema operativo è un ponte tra il software nell'hardware. Ogni volta che un programma vuole fare qualcosa che sia collegato in remoto all'hardware, che si tratti di parlare con un bus USB o di accedere ai dischi o allocare memoria, è necessario passare attraverso il kernel. Pertanto, il kernel può includere la logica su quale memoria è "legale" allocare o accedere e cosa no. E se un'applicazione tenta di modificare lo spazio degli indirizzi di un'altra applicazione che viene caricata nella memoria protetta, l'applicazione di modifica riceverà un errore dal kernel che gli dice che ciò che ha appena tentato di fare non è permesso.

* Questa non è l'unica ragione per implementare la protezione della memoria. Qualsiasi sistema operativo che afferma di essere sicuro ma senza protezione della memoria è stato implementato da idioti, incompetenti o, più probabilmente, entrambi. Ho scelto di concentrarmi sull'aspetto DRM in questo caso.

    
risposta data 30.03.2014 - 04:51
fonte
4

... perché quello che sta succedendo è che stai compromettendo il tuo tuo sistema . Se leggi il blog Old / New Thing, l'autore lo chiama "essere dall'altra parte di un boccaporto ermetico".

È come chiedere cosa impedisce alle persone di entrare in casa - tutti i tuoi amici chiedono "sì, ma chiudi le porte, vero?"; puoi "irrompere" in modo banale nella tua stessa casa - hai già la chiave. Entrare nella casa di qualcun altro è piuttosto difficile se, sai, non ti danno mai la chiave ...

    
risposta data 31.03.2014 - 21:20
fonte
0

Niente. L'unico problema che potresti incontrare è ottenere l'esecuzione o il download. Ma a volte può essere banale.

    
risposta data 29.03.2014 - 18:45
fonte

Leggi altre domande sui tag