Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- ftz
- bee-box
- dreamhack
- 알고리즘
- System
- CodeEngn
- webhacking
- 소프트웨어
- reversing
- WarGame
- Web
- 순서도
- 리버싱
- 시스템
- 네트워크
- 웹
- 모의해킹
- 웹해킹
- Webhaking
- 소프트웨어보안
- 드림핵
- 네트워크보안
- hacking
- TCP
- 워게임
- XSS
- 해킹
- 비박스
- network
- 시스템해킹
Archives
- Today
- Total
Without a Break
sscanf, Argc/Argv Programming 본문
Argc/Argv
: 함수의 명령 인수.
- argc : 메인 함수에 전달되는 정보의 개수
- argv []: 메인 함수에 전달되는 실질적 정보 (문자열의 배열)
#include <stdio.h>
int main(int argc, char * argv[]){
int count;
printf("This program was called with \"%s\".\n",argv[0]);
if(argc > 1){ //외부에서 사용자 입력이 있는지 확인(1보다 크면 참)
for(count = 1; count<argc; count++){
printf("argv[%d] = %s\n", count, argv[count];
}
}
else {
printf("The command had no other arguments.\n");
}
return 0;
}
포인터의 배열. 각 포인터가 사용자가 입력한 내용을 가리킴
sscanf
: 버퍼에서 포맷을 지정하여 읽어오는 함수
/* sscanf example */
#include <Stdio.h>
int main()
{
char sentence [] = "John is 12 years old";
char str[10];
int i;
sscanf(sentence, "%s is %d",str,&i); //%s = John(str), %d = 12(i)
printf("%s->%d\n",str,i); //John -> 12
return 0;
}
/* sscamf example 2*/
#include <stdio.h>
int main()
{
char sentence [] = "John park is 1238179278479183749173 years old";
char str [10];
int i; //int형이기 때문에 2의 보수
sscanf (sentence, "%s is %d",str,&i); //123...가 너무 큰 숫자라서 바운더리를 넘어감 => integer overflow
printf("%s -> %d\n"str,i);
return 0;
}
integer overflow 발생
'Software > 소프트웨어보안' 카테고리의 다른 글
컴퓨터의 구조 및 소프트웨어 실행 원리, C언어와 어셈블리어, Stack (0) | 2022.10.21 |
---|---|
소프트웨어의 정적 분석과 동적 분석 (0) | 2022.10.09 |
CVE (0) | 2022.10.09 |
DevOps와 Security Advisory (0) | 2022.10.01 |
SW보안의 5요소 (0) | 2022.09.26 |