[picoCTF] Insp3ct0r 쉬운 웹 ctf 풀어보겠다. 첫 화면에서 html, css, js 를 쓰면 된다고 힌트가 나와있어서 개발자 도구로 쉽게 풀 수 있을 것 같음picoCTF{tru3_d3 _lucky?302945a7}t3ct1ve_0r_ju5t 요소와 소스에서 3가지 전부 확인 가능하다. 따라서 다 조합하면 picoCTF{tru3_d3 t3ct1ve_0r_ju5t _lucky?302945a7} 플래그 발견 성공! CTF 2026.06.30
[SekaiCTF 2026] Untitled Encore https://ctf.sekai.team/ SekaiCTF 2026SekaiCTF 2026 is the fifth edition of Project SEKAI's annual cybersecurity competition, featuring an $8,000 cash prize pool and over $10,000 in sponsor prizes.ctf.sekai.team 팀 ctf 사이트고 그래도 이번 학기 리버싱 했으니 거기서 가장 쉬운 모드 골랐는데 이지 아니고 노멀이라 풀 수 있을지는 모르겠다. die 확인했더니 64비트라 x64dbg로 열어줌 먼저 걍 문자열 찾기 해봤는데 --check-chart에 분석할게 있을 것 같아서 거기 dp 누르고 들어가봤다. 들어갔더니 뭔지 모르겠어서 일단 걍 계.. CTF 2026.06.30
[CTFLearn] Basic Android RE 1 안드로이드 리버싱 문제는 처음이라 골라봤다.Android 앱에는 보통 classes.dex라는 실행 코드 파일이 포함되어 있는데 dex2jar는 이 DEX 파일을 Java 분석 도구에서 열어볼 수 있는 JAR 파일 형태로 변환해준다. 변환된 JAR 파일은 jd-gui.exe를 이용해 열 수 있으며 이를 통해 앱 내부의 Java 코드 구조와 로직을 확인하면서 flag가 숨겨진 위치를 분석할 수 있다. 흠 근데 뭐 다운 받기 귀찮아서 최대한 깔려있는 툴로 시도해보겠다. HxD에 먼저 넣어서 flag 관련 혹시 있나 찾아봤더니 파일 안에 있어서 걍 저 안드로이드 파일 열어보면 찾을 수 있을 것 같다. 구루2 하느라 깔려있던 안드로이드 스튜디오로 파일 분석해봄열어서 메인으로 넘어가서 걍 하나하나 찾아봤다. .. CTF 2026.06.04
[CTFLearn] Basic Injection 기본 인젝션 공격 문제이다.들어가면 첫 화면는 이렇고 코드를 열어봐야 겠다.소스 코드 열어보면 이런 이름 넣으라고 힌트가 적혀있다. 앞에 두개는 안 되고 Luke를 넣으면 데이터가 나온다. 그럼 where의 조건이 모두 true가 되게 만들어서 모든 데이터를 확인하면 거기에 플래그가 있을 것 같다. 그래서 모든 정보가 나올 수 있게 ' or 'a' = 'a 넣었더니 역시나 찾을 수 있었다.플래그 발견 성공! CTF 2026.06.04
[Reversing.Kr] Music Player 음악 재생이 1분이 넘지 않게 되어있는데 이를 우회하면 되는 문제이다. 일단 패킹은 따로 안 되어 있는데 언어가 처음보는 언어임 Visual Basic 6(VB6)란?: 1998년에 출시된 마이크로소프트의 RAD(빠른 개발) 언어로, C/C++처럼 OS API를 직접 호출하는 언어가 아님. 대 부분 작업을 처리하는 건 msvbvm60.dll이라는 VB6 전용 런타임! → (1) EXE에 WinAPI 함수가 거의 없다 (2) 모든 기능은 VB6 런타임 (msvbvm60.dll)이 처리함 그래서 일반 문제처럼 문자열과 API 함수를 볼 수 없어서 bp 를 많이 걸어서 분기점을 찾으면 된다. 실행해보면 이렇게 문자열이 하나도 안 보이고 API 함수도 찾을 수 없다. 이렇게 1분 미리듣기만 가능하다는 멜론같은.. Reversing 2026.05.28
[CodeEngn] Basic RCE 20 패킹 안 되어있어서 바로 이뮤니티로 열어봤다. CreateFileA는 파일을 열거나 새로 만드는 함수고 CRACKME3.KEY 파일이 존재하면 00401035 분기문에서 점프한다는 내용이다. 따라서 실행 파일이 있는 폴더에 CRACKME3.KEY 파일을 만들어 주고 문자열 찾기 해서 크랙미 부분으로 가서 덤프 부분 확인해보니 여전히 0 이다. 아마 파일 안에 넣어야 하는 규격이 있는 거 같다. 다시 ReadFile 쪽 확인해보니 CMP DWORD PTR DS: [4021A0]과 12를 비교하고 있으므로 파일에 12h를 10진수로 나타낸 18개의 바이트 문자열이 필요하다.알파벳 18개로 다 채워주고 덤프 확인해보니 아래와 같이 바뀜 51 54 34 12값이 중요해서 HxD에서 만든 파일 열어서 하.. Reversing 2026.05.27
[CodeEngn] Basic RCE 16 이전과 비슷하게 Name이 CodeEngn 일때 Serial을 구하는 문제이다. 이뮤니티 안넣고 걍 실행해보면 절케 뜨고 넣어서 문자열 찾기 보면 옳은 비번을 찾으면 될 것 같아서 그 부분으로 가보자 그 전에 15번 문제와 달리 DS가 아니고 SS라 써있다. 이는 CMP EAX, DWORD PTR SS:[EBP-XX]라고 하면 EAX 레지스터 값과 메모리 주소 EBP-XX에 있는 4바이트 값을 비교하는 것이다. (DS는 전역 변수 같은 일반적 데이터 접근 이라면, SS는 함수 내부에서 스택 프레임 통해 접근하는 지역 변수나 매개 변수!) 일단 개념 숙지했으니 CMP JNZ 부분에 dp 걸고 실행해봤다. 다시 dp로 돌아오고 EAX 값이 0457로 내가 넣은 1111이 들어있다. EBP는 0070FF28.. Reversing 2026.05.20
[CodeEngn] Basic RCE 15 이전과 비슷하게 Name이 CodeEngn 일때 Serial을 구하는 문제이다. 일단 die 로 확인 결과 패킹은 되어있지 않고 바로 문자열 찾기로 가서 성공 문자열 부분으로 가봤다. 0045882C에 dp 걸고 쭉 실행해서 메세지 박스에 CodeEngn과 1111넣어보면 다시 dp 부분으로 돌아온다.저기 부분을 해석해보면 CMP EAX, DWORD PTR DS:[11111]는 EAX 레지스터 값과 메모리 주소 11111에 있는 4바이트 값을 비교하는 것이다. 이를 비교하여 값이 다르면 JNZ로 점프한다. 이 상황에 대입하면 45B844 주소로 가서 확인하면 된다. CMP 레지스터창으로 가서 EAX 값 확인해보면 내가 넣은 1111이다. address에 ctrl+G로 검색하면 45B844 덤프 주소 .. Reversing 2026.05.20
[Codeengn] Basic RCE 14 Name이 CodeEngn 일때 Serial 넘버를 구하면 될 것 같다. 가능한 수 모두 무차별 대입하는 bruteforce 이 필요하대서 계속 시도해보면 뭐가 나오나? 생각했다. 일단 upx 패킹 되어있어서 언패킹하고 진행했다. upx -d -o 14_unpacked.exe 14.exe 맨 처음 화면에서 실행해보면 이렇게 생긴 메세지 박스가 뜬다. 00401340 부분이 플래그 메세지 박스인 것 같다 저쪽으로 가면 무언가 나올듯 그 전에 힌트부터 보고 문제를 이해하고 넘어가보자 흐름은 이해해서 그대로 실행하면 찾을 수 있을 것 같다 힌트 화면과 같이 004012F6에 dp 걸고 실행해서 값을 넣어보면 내가 쓴 걸로 값들이 바껴있다. 그리고 00401309부터 jnz까지 루프에 빠지기에 계속 시도해주면 .. Reversing 2026.05.20
[Codeengn] Basic RCE 12 key 값 찾는 문제고 overwirte은 HxD에서 하면 된다. 패킹은 안되어있고 Key 값 찾으면 되는 문제이다. 분기점은 메세지 박스 위에 CMP JMZ 있는 00401D 으로 잡았다. 7A28 96BF 값이 되어야 해서 그 값을 16진수로 바꿀 수 있게 프로그래머 계산기를 통해 넣어줬다. 헥스값 넣으면 덱스?값 나와서 그 값이 key값이다. 이제 그 키 값을 오버라이팅 하기 위해 헥사디 켜서 Congraration 부분을 2049480383으로 바꾸고 00으로 마무리해줬다.바꾼 주소는 0D3B~0D45이다. 그러고 다시 실행시키면 이렇게 값이 바뀐것을 확인 가능하다. 정답은 20494803830D3B0D45플래그 발견 성공! Reversing 2026.05.07