-1
일부 코드를 사용하여 작동하고 있지만 작동하지 않으려 고했지만 뭔가를 놓친 것 같습니다. 아무도 말해 줄 수 없으므로 나는 무엇을 놓치거나 잘못 했는가? 당신은 S->pFileBuffer
에 리터럴 charater 문자열을 할당ConsoleApplication2.exe에서 첫 번째 예외가 발생했습니다. 0xC0000005 : 액세스 위반 작성, C++
#include <iostream>
using namespace std;
/*
struct StubData{
char * pFileBuffer;
long long FileSize;
char * pKey;
long KeySize;
};*/
class StubData{
public:
char *pFileBuffer;
long long FileSize;
char *pKey;
long KeySize;
StubData(){}
};
void Decrypt(StubData * sData){
int i=0,j=0;
for(i;i<sData->FileSize;i++){
*(sData->pFileBuffer+i) ^=*(sData->pKey+j);
j++;
if (j>=sData->KeySize)j=0;
}
}
void Encrypt(StubData * sData){
int i,j;
sData->pKey="mysecretpassword";
sData->KeySize=strlen(sData->pKey);
j=0;
printf("[*]Encoding\n");
for(i=0;i<sData->FileSize;i++)
{
*(sData->pFileBuffer+i) ^=*(sData->pKey+j);
j++;
if (j>=sData->KeySize)j=0;
}
}
void main(){
//StubData S;
StubData *S = (StubData *)malloc(sizeof(StubData));
new (S) StubData;
S->pFileBuffer="MARKO";
S->FileSize=strlen(S->pFileBuffer);
Encrypt(S);
cout<<"\nenc\n"<<S->pFileBuffer;
Decrypt(S);
cout<<"\ndec\n"<<S->pFileBuffer;
}
문제점이 무엇이며 제안 사항이 어디에 있습니까? 에 대해 설명해 주셔서 감사합니다.하지만 여전히 같은 줄에서 깨져 있습니다 ... – perunswrath
@perunswrath는 (는) 재현 할 수 없습니다 : http://ideone.com/75to16 컴파일 된 코드를 게시하십시오. 그래도 문제가 생기면 – PeterT
대단히 감사합니다 ... 지금 작동합니다 :) – perunswrath