해킹공부를 위한 C언어 공부 컴파일된 파일 분석하기. objdump를 이용하여 바이너리 파일로 확인해보기
c 또는 c++은 실행하기 위해서 컴파일을 한뒤에 실행 파일을 만들수 있는데요.cmake 파일을 만들어도 되지만 저는 shell을 사용하여 자동으로 컴파일하고 실행하는 프로그램을 구현하였습니다.참고해당 동작은 mac환경에서 개발하여서 다른 운영체제에서 실행시 동작에 문
GCC란 C C++를 컴파일하는 컴파일러입니다. 이 밖에도 오브젝트C, GO등과 같은 언어들도 컴파일을 지원합니다.윈도우는 MSYS2를 이용하는 것으로 알고 있는데 해당 링크에 들어가면 이미 설명이 있으므로 생략하였습니다.MSYS2 사이트 링크맥에서는 brew를 사용하
c에서 출력을 할려고 할때는 printf를 사용하였지만 c++에서는 iostream에 있는 std::cout를 사용하여 출력을 합니다. c++은 c언어를 확장하여 만든 언어이기 때문에 c언어 문법처럼 printf를 사용하여도 문제는 없지만 c++를 공부하는 것이므로 c
저는 메인 언어가 Java이다 보니 length를 사용하여 배열을 구현하였지만 C에서는 length가 없기 때문에 직접 크기를 구해어야했습니다.sizeof를 사용하면 해당 타입의 크기를 반환해주는데요. 예시로 int는 4byte의 크기를 가지고 있기 때문에 int 타입
10진수를 2진수로 바꾸는 방법은 여러가지가 있지만 특이한 방법으로 변환을 해보고 싶어져서 작성하게 되었습니다.count는 2진수로 변환할 10진수를 저장하고 i는 소수로 저장된 총합을 정수로 변환해줄 값을 저장합니다.값을 넣은뒤에 10을 나누어 값을 소수점에 저장한뒤
티스토리 버전 링크
티스토리 버전 링크rand() 함수를 사용하기 위해서는 stdlib를 추가해주어야합니다.rand() 함수는 램던한 int 타입의 값을 반환해줍니다.아래와 같이 그냥 사용하여도 램던한 값이 나오기는 하지만 코드를 다시 실행을 하면 처음 나왔던 램던한 값이 고정되어서 출력
티스토리 버전 링크동적 할당이란 말그대로 프로그램이 돌아가는 동안 메모리를 할당 시켜주는 작업인데 c에서는 기본적으로 배열크기라던가 변수를 미리 생성해두지 않으면 해당 변수를 생성할 수 없으므로 동적 할당을 사용하여 프로그램이 실행하고 있는 도중에 변수를 사용할 수 있