Non so che usa Metin. L'unica cosa che so di metin è che per criptare, qualsiasi cosa sia, usa XTEA con una chiave dinamica a 128 bit che cambia ad ogni avvio del client
Poi per il resto, ormai non ricordo neanche come si gioca a metin LOL.
Comunque, il motivo è semplice: non è possibile perché quelle librerie prevedono che la decompressione avvenga da file a file (quindi tutto su Hard Disk) e non hanno (solitamente) metodi che permettono di salvare i dati scompattati direttamente in memoria. Comunque non hai bisogno di fare niente di difficile: reflecti la libreria, la riscrivi basandoti sul codice reflectato, e dove vengono salvati i dati su disco fisso modifichi il codice affinché lasci i dati in memoria. Passi infine a chi ha chiamato il metodo (come valore di ritorno) un array di byte (o un puntatore all'area di memoria) che contiene i dati scompattati.
Per il RunPE, è difficile che capisci come funziona se non hai idea di come è strutturato il formato Portable Executable e come funziona un processo e il loader di Windows. Sostanzialmente il codice di predator ha un PE nelle risorse (se è in memoria non cambia nulla), legge le signature MZ e PE (per controllare che il file sia un PE valido...all'inizio della procedura RunExe dovresti trovare degli If che confrontano degli offset sul file con i valori esadecimali ASCII delle stringhe 'MZ' e 'PE'...bene, questo è il punto di quel controllo), poi crea un processo e subito lo sospende, modifica i context (sostanzialmente, modifica i registri della CPU con i valori contenuti nell'header del PE (EntryPoint del programma, puntatore al blocco dati, ecc.) in modo tale che la CPU possa eseguire correttamente il programma), poi se non ricordo male scrive le varie sezioni (codice, ecc.) nel processo (impostando anche permessi di accesso (lettura, scrittura, esecuzione) alle varie sezioni), finisce di sistemare i context, e avvia il processo (era sospeso, lo toglie dalla sospensione...in questo modo l'esecuzione comincia).
Comunque, nota bene che il metodo rilasciato da predator è lo stesso che viene utilizzato da molti virus per nascondersi ai controlli degli AV e dell'OS. Gli AV recenti, rilevano questo codice e impediscono l'esecuzione. Quindi se implementi questo codice in un tuo programma, molti utenti avranno problemi con l'antivirus che gli segnalerà il programma come virus. Sul web non si trova una versione undetected di questo codice (per fortuna...essendo molto pericoloso visto che permette il salto di tutti i controlli). Quindi se vuoi averlo undetected devi scrivertelo da solo