시작 주소를 첫 번째 매개 변수로, 크기를 초로 취하고 런타임에 메모리의 해당 범위를 xor로 지정하는 함수가 필요합니다. 어떻게해야합니까?C에서 메모리의 XOR 바이트는 어떻게됩니까?
void XorMemory(DWORD StartAddress, DWORD dwSize)
{
DWORD *Start = &StartAddress;
DWORD size = StartAddress + dwSize;
DWORD *End = &size;
while(*Start < *End)
{
*Start++ ^= 0x83;
}
}
그러나이 작업을 반대해야 할 때 그것은 실패
내 순진한 접근이 있었다. 그것을 고치는 방법?
"실패했습니다." * 무엇이 실패합니까? 'DWORD StartAddress'는 주소가 아니며 값입니다. 문제를 나타내는 [Minimal, Complete, Verifiable example] (http://stackoverflow.com/help/mcve)도 호출 코드를 보여주십시오. –
'StartAddress'를 사용하고,'StartAddress'를 사용하고,'& size'를 사용하는 명백한 잘못된 메소드 외에도 각 * byte * 또는'DWORD' 시퀀스를 xor하려고합니까?, 코드는 후자를 의미합니다 , 그러나 그것은 기억의 단지 1/4가 실제로 가려지기 때문에 꽤 한심한 xor-masking 일 것입니다. – WhozCraig
귀하의 정보는 암호화가 아닙니다. 이 사실을 이미 알고 있다면 제목을 다시 쓰는 것이 좋습니다. –