티스토리 뷰

반응형

구조체 초기화, 동적 할당 초기화 왜 처음만 할까?

구조체 및 동적 항당을 하여 사용하기 위해서 프로그래머들은 여러가지 방법을 사용한다.
하지만 결국 컴파일러가 모든 메모리를 초기화 시켜주는 옵션을 하지 않는 이상 
::ZeroMemory(어디부터,어디까지), memset(어디부터,무엇으로,어디까지)을 사용하여 초기화를 하게 된다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/******************************************************************************
* _    _                 _       _  __  _____               _           _     
*| |  | |               | |     | |/ / |  __ \             | |         | |    
*| |__| | __ _  ___     | |_   _| ' /  | |  | | _____   __ | |     __ _| |__  
*|  __  |/ _` |/ _ \_   | | | | |  <   | |  | |/ _ \ \ / / | |    / _` | '_ \ 
*| |  | | (_| |  __/ |__| | |_| | . \  | |__| |  __/\ V /  | |___| (_| | |_) |
*|_|  |_|\__,_|\___|\____/ \__,_|_|\_\ |_____/ \___| \_(_) |______\__,_|_.__/ 
*
* Copyright (c) HaeJuK Dev Lab All Rights Reserved.
*
*******************************************************************************/                                                                             
struct Data
{
    int   nData1 ;
    bool bData2;
};
 
Data *pData = new Data;
 
::ZeroMemory(pData ,sizeof(Data));
 
::memset(pData,0x0,sizeof(Data));
cs

 

총평

이것은 프로그래머들이 하나의 규약과 같이 생각하는 방식이다.
OS에서는 메모리에 데이터를 포인터로 연결해 줄 때 해당 메모리가 어떻게 구성이 되어 있는지 
신경을 쓰지 않는다.
다만 점유하고 있는지만 판단한다. 고로 쓰레깃값이 넘쳐난다. 

여기까지는 프로그램을 배울 때 시험 문제 대략 20번 내외로 항상 나오는 말들이다. 



그럼. 진짜 문제는 무엇일까? 요즘 다들 시큐어 코딩 하느라 힘들 것이다. 

이것이 시큐어 코딩의 절대적 이자 가장 처음에 해야 할 일이다. 
"사용한 메모리는 반환할 때도 깨끗이!!"

문명 메모리를 할당 받을 때는 쓰레깃값이 있을 수 있다고 했다!! 
그럼 그 쓰레깃값은? 어디서 온 것일까?

바로 직전에 사용하였던 메모리 값들이다. 

이것을 이해했다면 보안에 엄청난 걸림돌이 된다는. 느낌이 쫙~ 오지 않는가? 

간단하게 말해서 
비밀번호를 암호화한다고 하면 열심히 할당하고 암호화했다!! 
그리고 반환을 한다.

크래커가 메모리 번지를 뒤지기 시작한다 !! 메모리에 이상한 배열들이 있다. 의심하기 시작한다. 
둘 다 평문인데 하나는 길고 하나는 짧다!! "앗!" 비번이다." 이렇게 된다는 말이다.

그럼 우리는 어떻게 해야 할까?
쓸 때 쓰레깃값 때문에 Application이 문제가 있을까 봐 초기화했다면 
쓰고 나서는 보안을 생각해서 다시 초기화해주어야 한다. 
Free, Delete만 하면 안된다. 그것은 그냥 메모리 해지다.
memset, Zeromemory를 해줘야 한다. 


 

 

 

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함