src 가 가르키는 문자열을 dest 가 가르키는 배열에 복사한다. src 에서 복사될때 '\0' 까지 복사됨으로 문자열이 겹쳐지지는 않는다. 이때 dest 는 src 를 모두 복사 받을수 있을정도로 충분히 커야 한다.strcpy() 는 목적지의 배열의 크기가 충분히 크지 않을경우 어떤일이 발생될지 알수가 없다. 운이 좋으면 세그먼트폴트 에러와 함께 죽겠지만, 그렇지 않고 알수 없는 작동을 할수도 있다. 이는 흔히 말하는 버퍼 오버 플로우 크래커 기술에 매우 취약하다. strcpy() 를 쓰기전에는 반드시 복사할 문자열의 크기를 검사해주어야 한다. 또는 strncpy() 를 써야 한다.strncpy()는 n을 이용해서 복사할 문자열의 크기를 정할 수 있으므로 버퍼 오버 플로우에 좀더 안전하다. 만약 sr..
write, strlen, exit 구현해봄 당연히 처음 해보는 어셈블리 코딩이라서 cd80님 블로그 참고http://cd80.tistory.com/27 cd80님은 printString으로 만드셧는데 나는 그냥 진짜 write함수처럼 만듦.write는 아래와 같이 인자지정을 해주면 됨 int write(int fd, char *buf, int cnt);int write(ebx, ecx, edx); 그리고 연습차 exit도 만들었음 exit는 인자 지정해주고(인자도 한개라서) eax를 system call로 지정만 해주면 돼서 굉장히 쉬웠음 void exit(int status) strlen에서 loop처럼 .을 붙이면 라벨을 지정해 줘서 jmp가능 원래 리버싱도 잘 안하고 어셈블리 잘 몰라서 익스플로잇..
원래 C++에서도 C의 go-to 문과 같이 이슈가 되는것이 많지만 C++을 제대로 시작한지 매우 조금 됐기 때문에 필요하다 싶으면 닥치는 대로 가져가 썻다(....) //상속, 프렌드 등등 아무것도 모른다. C++에 익숙해지기 위해 만들었다.. 특히 std::bitset을 써서 8비트와 6비트씩 끊는걸 구현했는데 매우 만족스러웠다. 예전에 C에서 짯던 코드와 비교하면 확실히 깨끗해졌다. C++을 좀 더 공부해서 내가 만들고 싶은 프로그램을 만들고 싶다. Encrypted String : VkdocGMxOUpjMTlDUVZORk5qUmZSVzR2UkdWRGNubHdkRjlVYjI5c1gxOURLeXM9 Decrypted String : This_Is_BASE64_En/DeCrypt_Tool__C++