너무어렵다이문제... 함수가 3개 있다. login,welcome,main.일단 main에서 welcome을 호출하고 login을 호출한다. welcome함수를 보면name 배열 100바이트를 주고,이름을 scanf로 받는데 &name이 아닌 그냥 name으로 받는다. 이상하네 login함수는passcode1,2를 주고,passcode1을 입력하는데 또 그냥 passcode로 받는다.fflush(stdin)을 실행하는데 이 함수는 입력버퍼를 초기화하는 함수이다.즉, 앞에서 받은 passcode1을 초기화 한다는 의미이다.그리고 passcode2를 받는다.passcode1 == 338150 && passcode2 == 13371337이면 풀린다고 한다. 그냥 넣어보면 seg fault가 뜬다.이건 scan..
bof 문제를 풀어보장. overflowme 배열 32 byte를 받았다.그리고 get함수로 overflowme 배열을 입력받고,key 값이 0xcafebabe이면 쉘을 실행한다.key는 main에서 입력받은 0xdeadbeef이다. gdb를 보면 main+3에서 72만큼 스택을 확장했고,main+24가 printf함수 인것 같다.main+35가 gets함수라고 생각해보면 main+29에서 ebp-0x2c부분이 overflowme배열의 위치인 것 같다. 그럼 ebp-44이다. 배열이 32바이트 였는데 44니까 12만큼 dummy가 있겠다.그리고 main+40에서 0xcafebabe와 비교되는 ebp+8이 key의 위치이겠다. 그럼 배열[44]+main의 sfp[4]+main의 ret[4]=52만큼 스택을..
col 문제를 풀어보장. argc > 2 여야 하고,argv[1]의 길이는 20이여야 한다고 한다.hashcode == check_password(argv[1])이면 flag를 보여준다. check_password함수를 보니 문자열 포인터 p를 받아 int 포인터형으로 형변환을 해 포인터 ip에 저장한다.그리고 ip[0]~ip[4]까지 모두 더해 res값을 리턴. 왜 0~4인지 생각해보니 문자열->int형 형변환 때문이다."AAAABBBBCCCCDDDDEEEE"->"AAAA" "BBBB" "CCCC" "DDDD" "EEEE"문자열은 1바이트 단위 이지만 int형은 4바이트 단위라서 20바이트가 4*5 바이트로 나뉜것이다.그래서 5번을 더해준것이고. 그럼 거꾸로 생각해보면 0x21DD09EC를 5로 나눈 ..
fd 문제를 풀어보장. buf[32]로 버퍼를 할당해 주었고,if문으로 argv를 2개 이상 넣어줘야 한다고 조건을 줬다. fd값은 argv[1]의 값을 정수로 바꿔준 뒤 0x1234값을 뺀 값으로 했다.read()함수로 fd파일을 열어 32바이트 만큼 buf에 넣어준다. 그리고 buf의 값이 LETMEWIN이랑 비교해 같으면 문제가 풀린다고 한다. https://watchout31337.tistory.com/140?category=773356 이 글을 참조해보면fd 값이 0일 때 값을 입력할 수 있다. 즉 argv[1] - 0x1234가 0이면 fd값이 0으로 설정되어 fd 파일에 입력을 할 수 있다.0x1234 = 4660이니 이렇게 풀수 있겠다.
- Total
- Today
- Yesterday
- 차량용 이더넷
- one-to-many
- SOME/IP
- problem statement
- Ethernet
- 논문 잘 쓰는법
- HTML
- automotive
- 크로스 엔트로피
- PCA
- 회귀
- CAN-FD
- 딥러닝
- 로지스틱회귀
- 단순선형회귀
- AVB
- AVTP
- many-to-one
- AE
- cuckoo
- automotive ethernet
- 머신러닝
- many-to-many
- 차량 네트워크
- 이상탐지
- porks
- json2html
- Python
- 케라스
- SVM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |