CcRemote/strCodeTest/strCodeTest/strCodeTest.cpp
2020-06-20 17:09:43 +08:00

54 lines
963 B
C++

// stringCryDemo.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
char* crycode(char* str)
{
printf("cry: %s \n", str);
int len = strlen(str);
char * a = (char *)operator new(len + 1);
a[0] = len;
printf("0x%02hhx,", a[0]);
for (size_t i = 1; i <= len; i++)
{
a[i] = str[i - 1] ^ (0xCC - i);
printf("0x%02hhx,", a[i]);
}
printf("\n");
return a;
}
char* uncode(char* str)
{
int len = str[0];
char * uncodeStr = (char *)operator new(len + 1);
for (size_t i = 1; i <= len; i++)
{
uncodeStr[i - 1] = str[i] ^ (0xCC - i);
printf("%c", uncodeStr[i - 1]);
}
uncodeStr[len] = 0x00;
printf("\n");
return uncodeStr;
}
int main()
{
char a[] = "REG_SZ";
char b[] = "REG_DWORD";
char c[] = "REG_BINARY";
char d[] = "REG_MULTI_SZ";
char* s1 = crycode(a);
char* s2 = crycode(b);
char* s3 = crycode(c);
char* s4 = crycode(d);
uncode(s1);
uncode(s2);
uncode(s3);
uncode(s4);
}