일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 버퍼오버플로우
- 알고리즘
- 활성화함수파이썬
- 파이썬
- BOJ
- BOF
- 인공지능
- 신경망
- 보안
- C언어알고리즘
- 신경망구현
- 백준알고리즘
- 밑바닥부터시작하는딥러닝
- 머신러닝
- 딥러닝
- 항등함수
- 정보보안
- 8086CPU레지스터
- c언어
- 백준
- 딥러닝파이썬
- 스트림암호
- FTZlevel10
- 신경망 학습
- C언어 알고리즘
- 파이썬신경망
- 신경망파이썬
- C알고리즘
- 달고나bof
- 소프트맥스함수
- Today
- Total
목록<CTF> (95)
HeeJ's
문제: 16번 문제도 15번과 동일하게 Serial을 찾는 문제로, 일단 실행시켜보았다. 이런 실행 창을 얻을 수 있었고, 바로 Ollydbg로 분석해보았다. 분기문을 찾기 위해 성공과 실패를 가르는 String을 찾아주었고, " Good Job! "이라는 문자열을 더블 클릭해 들어가주었다. 위 쪽으로 보다 보면, CMP구문을 찾을 수 있었고 이 부분에 bp를 걸어준 다음 실행시켜보았다. CMP 구문에서 EAX와 DOWRD PTR SS:[EBP-3C]를 비교해주는 것을 확인하고 (EBP에서 3C를 뺀 메모리 주소에 저장된 값) 값을 입력해주었더니 EAX에는 내가 입력해 준 값이 들어있는걸 확인할 수 있었고, EBP는 0070FF28이라는 것을 알 수 있다. 여기서 3C를 빼주면 00 70 FE EC 주소..
문제: 우선 파일을 실행시켜 보았을 때, 이렇게 두 가지 문구가 뜬 다음 파일이 종료된다. 파일을 살펴보기 위해 ollydbg로 열어주었다. 파일을 열자마자 PUSHAD라는 명령어를 볼 수 있었고, 이는 이 파일이 UPX로 패킹이 되어있다는 것을 뜻한다. OEP를 얻기 위해서는 이 파일을 언패킹해야하기 때문에 언패킹을 진행해주었다. 이 언패킹된 파일을 다시 ollydbg로 열어주면 OEP 부분과 Stolenbyte가 이루어져 내용이 사라진 부분을 볼 수 있었다. OEP는 00401000이고, 이 Stolenbyte를 찾기 위해 다시 언패킹되지 않은 파일을 ollydbg로 열어주었다. POPAD부분을 찾아주고, 그 밑에서 PUSH해주는 부분을 찾을 수 있었는데, 아까 위쪽에서 StolenByte부분이 12..
문제: 파일을 저장했는데 .exe 파일이기에 우선 그냥 실행해보았다. 이렇게 Name과 Serial을 넣는 칸이 있는데, Name은 CodeEngn으로 주어졌고, Serial에 아무 값을 넣어주고 Check를 해보았다. Try Again ! 이라는 문구가 떴다. 이제 이 파일을 분석해보기 위해 Ollydbg로 열어주었다. 그리고, 분기문을 찾아주기 위해 문자열을 검색해 성공, 실패가 나눠지는 곳이 있는지 찾아주었다. 그랬더니 아까 실패했을 때 뜬 "Try Again !"이라는 문자열과 성공하면 보일 것 같은 "You cracked ..." 문자열이 보인다. 그래서 저 문자열로 가서 윗부분에 CMP 구문이 있는지 찾아주었다. 그 위치에서 성공, 실패를 가르는 분기문이 될 것이기 때문이다. CMP 구문을 찾..
문제에 들어있는 c코드를 다운 받기 누르면 새 창에 코드를 띄워준다. serial 값을 인코딩해주는 문장을 찾을 수 있다. 저 내용을 그대로 디코딩 해주면 flag를 찾을 수 있다. 이 flag를 제출하면
ghidra로 babyMIPS 파일을 열 main함수를 찾아주고 내용을 보니, 여러 if문들이 있고, 그 밑에 무언가 flag와 비교하는 듯한 내용이 보였다. 윗 부분에서는 입력받는 값으로 예상되는 acStack36도 찾을 수 있었다. 바로 이 부분이었는데, flag는 data+uStack44*4 XOR uStack44 XOR comp+uStack44*4라는 것을 예측할 수 있다. 이 data 값과 comp 값을 찾기 위해 각각의 변수를 더블클릭 하면 우측 창에 이렇게 00 00 00 사이에 값들이 하나씩 존재하는 것을 확인할 수 있다. 그래서 uStack44 *4를 해주는 것 같다. comp도 찾아주고, 이 값들로 flag를 찾는 코드를 작성해주었다. 실행시켜보면 flag를 얻을 수 있다. 왠지 모르게..
ROT13 ; 카이사르 암호의 일종으로, 영어 알파벳을 13글자씩 밀어서 만든다. 이 flag를 rot13 decoder에 돌리면 값을 얻을 수 있다.
PICOCTF가 16 9 3 15 3 20 6 이 되니까 이걸 보고 풀어주면 된다