분류 전체보기 117

Abex's Crackme #4

문제 분석 프로그램이 실행되는 Entry 부분부터 보자 여기서 한줄 실행 F8을 누르며 실행을 하다보면 창이 뜨게 된다. 그 창에는 어떤 값을 입력해도 Registered 버튼이 활성화되지 않는다. 예측 버튼이 활성화하기 위해선 시리얼번호가 어느 형식과 비교하여 유효한 시리얼번호라면 Registered 버튼이 활성화되고 원하는 결과를 띄우는 창이 나타날거 같다. 풀이 시리얼번호를 비교할 만한 함수들을 찾아본다. 문자열비교 함수는 Strcmp이므로 해당 함수를 찾아서 보자. 바로 이 부분인데, 프로그램을 실행을 해보자 이렇게 시리얼을 입력하려하면 ECX의 값이 순간 바뀌게 된다. 아마도 EAX는 시리얼입력값이고 ECX는 시리얼비교하는 값인 것 같다. 2223100을 시리얼번호란에 넣으면 될 것 같다. ) 완료

Write-up/Wargame 2021.04.27

백준 1002번 - 터렛

문제 풀이 이 문제는 크게 4가지의 경우로 나뉜다. 두개의 원이 두 점에 접할 경우(2) 두개의 원이 한 점에 접할 경우(1) 두개의 원이 접하지 않을 경우(0) 두개의 원이 같을 경우(∞) 1. 두개의 원이 두 점에 접할 경우 문제에 나와있는 예제 입력을 가지고 그래프를 그릴 수 있다. 이렇게 두 원점 사이의 거리(distance)가 두 원의 반지름 길이의 합(radius)보다 짧을때 두개의 원이 두 점에 접할 수 있다. 2. 두개의 원이 한점에 접할 경우 외접할 때 두 원점 사이의 거리(distance)이 한 원의 반지름(r1) + 다른 원의 반지름(r2)일 경우 외접하면서 두개의 원이 한 점에 접한다. 내접할 때 두 원점 사이의 거리(distance) + 한 원의 반지름 = 다른 원의 반지름일 경우..

Write-up/백준 2021.01.10

HACKCTF - 내 버퍼가 흘러넘친다!!!

문제 내 버퍼가 흘러넘친다 라면서 prob1파일과 접속 주소를 준다. prob1을 실행하니까 Name과 input을 입력하란다. a를 입력하고 끝났다. segmentation fault가 났다. checksec으로 보호기법을 확인해보자 gdb로 함수 어떤게 있는지 확인을 해보자 아무것도 걸려있지 않다. gdb-peda$ info functions All defined functions: Non-debugging symbols: 0x08048330 _init 0x08048370 read@plt 0x08048380 printf@plt 0x08048390 gets@plt 0x080483a0 __libc_start_main@plt 0x080483b0 setvbuf@plt 0x080483c0 __gmon_star..

Write-up/HACKCTF 2020.12.02

HACKCTF - Basic_BOF #2

내 환경 ubuntu 20.04 문제 이전 문제와 마찬가지로 BOF 문제이며 똑같이 접속 주소와 bof_basic2라는 파일을 준다. 다운로드 해서 보도록 하자 (리눅스에서 루트권한이 아닌경우 실행권한 제대로 줘서 실행하도록 한다.) 어.............. 이전 문제랑 똑같이 a를 입력했더니 저렇게 뜬다. ida-hexray와 gdb로 분석을 해보자 프로그램 분석 먼저 ida-hexray로 main함수를 보도록 한다. ida - main int __cdecl main(int argc, const char **argv, const char **envp) { char s; // [esp+Ch] [ebp-8Ch] void (*v5)(void); // [esp+8Ch] [ebp-Ch] v5 = (void ..

Write-up/HACKCTF 2020.11.30