/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <iostream>
#include <cstring>
#define byte char
void printEAX(char* eax){
int i=0;
while(i<6)
{
printf("%.2hhx-",*(eax+i));
i++;
}
printf("\n");
}
int main() {
const auto magic = 0x89ABCDE;
printf("sizeof magic = %i: \t", sizeof(magic));
printEAX((char*)&magic);
char *EAX = (char *)malloc(6);
memset(EAX, 0, 6);
strcpy(EAX, "AT4RE");
printf("AT4RE: \t\t\t"); printEAX(EAX);
int ECX = 0;
do {
EAX = ECX + EAX;
*EAX = *EAX ^ 0x89ABCDE; //only first byte which is [de] (08 9a bc de) <<< Endianness
printf("XORed 0xDE: \t\t"); printEAX(EAX-ECX);
*(byte *)EAX = *(byte *)EAX & 0xE;
printf("AND 0xE \t\t"); printEAX(EAX-ECX);
ECX = ECX + 0x4;
} while(ECX < 8);
printf("\n\nresult: \t\t") ;printEAX(EAX-ECX + 0x4);
return 0;
}