Was hat das denn damit zutun ? Du scheinst nicht ganz aufmerksam gelesen zu haben. Es geht gerade um das Problem der Relocs
Eigentlich verwende ich RC4 und im Mom. zum Testen XORing
In C++ auf Seiten den Crypters siehts so aus:
Code:
BYTE *Addr = pefile->getPointerToDataByRO(pefile->getSectionHeaderById(pefile->getSectionIdByName(".text"))->PointerToRawData);
for(DWORD i = 0; i < pefile->getSectionHeaderById(pefile->getSectionIdByName(".text"))->Misc.VirtualSize; i++)
Addr[i] ^= 0x3F;
Und in der ASM Stub siehts so aus
Code:
pushad
pushf
mov esi, 11111111h
mov ecx, 22222222h
@@:
xor byte ptr [esi + ecx - 1], 33h
loop @b
popf
popad
push FFFFFFFFh
ret
Was als OpCodepattern wie folgt aussieht:
Code:
BYTE xorcode[] = { '\x60', '\x66', '\x9C', '\xBE', '\x11', '\x11', '\x11', '\x11',
'\xB9', '\x22', '\x22', '\x22', '\x22', '\x80', '\x74', '\x31',
'\xFF', '\x33', '\xE2', '\xF9', '\x66', '\x9D', '\x61', '\x68',
'\xFF', '\xFF', '\xFF', '\xFF', '\xC3'};
Wobei 11111111h, 22222222h, 33h, FFFFFFFFh Platzhalter für Werte die durch mein C++ Programm gefüllt werden mit den Addressen der .text Section, der Addresse des OEP's, dem XOR Key usw.
Das entxoren, bzw entRC4en funktioniert 1a, nur werden alle verschlüsselten und zum Relocieren vorgemerkten Addresse wie in meinem vorherigen Post beschrieben, durch den Windows Loader 'kaputtgerechnet'. Danke also schonmal für eine Antwort auf meinen vorherigen Post