나는 임의의 값으로 각 문자를 XORing하여 코드에서 난독 화 된 문자열이 있습니다.C++ : 특수 문자가있는 XOR 된 문자열은 원시 문자열 리터럴로 컴파일되지 않습니까?
그러나 여러 줄의 원시 문자열 리터럴은 올바르게 컴파일되지 않습니다.
다음 그림에서 양쪽 끝에 적절한 구분 기호를 사용하는 경우에도 MSVS2015가 문자열을 올바르게 구문 분석하지 않는 방법을 볼 수 있습니다. 전체 텍스트에 구문 분석되지 않고 검정색 텍스트가 표시됩니다.
코드를 컴파일하려고하면 리터럴의 닫는 중괄호를 찾을 수 없다는 오류가 발생합니다 (적절한 위치에 있지만 닫는 delimeter 이후 문자열 끝 부분 등). 수동으로 검은 비트를 지우면 올바른 컴파일이 수행됩니다 (물론 더 이상 올바르게 해독 할 수없는 문자열이 있음에도 불구하고).
나는 XOR 함수의 다양한 결과 문자가 제대로 .H 파일 내부에 저장 할 수 없기 때문에 이런 일이 있으리라 믿고있어. 이 문제에 대한 해결책이 있습니까? 파일 형식을 유니 코드로 전환 해봤지만 작동하지 않았습니다.
코드 인쇄 화면을 표시하지 마십시오. – bolov
문자열을 인코딩하는 다른 방법을 고려해야할까요? 아마도 일종의 16 진수 인코딩 체계 또는 평범한 ASCII 문자로 나타나는 결과일까요? 그리고 물론 문자열 리터럴이 [to long]이 아닌지 확인하십시오 (https://msdn.microsoft.com/en-us/library/sx08afx2.aspx). –
@ user23573 그는 원시 문자열을 사용하고 있습니다. 이스케이프 문자는 문제가되지 않습니다 – bolov