분류 전체보기 105

Reversing.kr - Ransomware

file, readme.txt, run.exe파일이 주어졌다. readme.txt의 내용이다. run.exe을 실행하면 Key값을 입력하게 되어있었고, 임의의 값인 abc를 입력하였더니 위와 같은 문구가 떴다. PEiD를 통해 run.exe의 정보를 보았더니 UPX로 패킹이 되어있음을 알 수 있었다. 패킹되어있던 run.exe를 upx.exe를 통해 언패킹해주었다. run.exe를 올리디버거를 통해 분석해보았다. 이 부분은 반복문을 돌면서 암호화된 파일을 읽어오는 부분이다. 이 부분은 입력 받은 key값을 이용해서 암호화된 파일을 복호화하는 부분이다. 복호화하는 방식을 정리하면 1. 파일에서 한 바이트 씩 가져온다. 2. key값과 XOR연산을 한다. 3. 0xFF와 다시 XOR한다. key값을 구하기 ..

[CTF]Reversing.kr 2023.12.29

Reversing.kr - Easy Keygen

Easy Keygen.exe와 ReadMe.txt파일이 주어진다. ReadMe.txt를 확인해보니 Serial이 5B134977135E7D13일 때 Name을 찾으면 해결되는 것 같다. PEiD를 통해 Easy Keygen.exe파일이 패킹이 되어 있지 않음을 알 수 있다. strings를 확인하였더니 “Correct!”와 “Wrong”이 있었고, “Correct!”부분으로 이동하였다. 이 부분은 Serial을 생성하는 루틴이 담겨있다. 1. 입력 받은 문자열들을 하나씩 가져온다. 2. 0x10, 0x20, 0x30을 반복하면서 xor연산을 한다. 3. ESI에 생성한 Serial값을 저장한다. 4. 입력 받은 Serial 값과 비교해서 일치하면 “Correct!”, 실패하면 “Wrong!”이 있는 곳으..

[CTF]Reversing.kr 2023.12.29

Reversing.kr - Easy Unpack

Easy_UnpackMe.exe와 ReadMe.txt가 주어진다. Easy_UnpackMe.exe를 실행하면 위와 같이 아무것도 뜨지 않는다. PEiD를 통해서 확인해보니 Entrypoint와 EP Section에 대한 정확한 정보를 얻기 어려웠다. ReadMe.txt파일을 열었더니 OEP의 주소를 찾으면 해결이 되는 것 같다. OEP는 패킹된 파일의 실제 프로그램의 시작 부분이다. 올리디버거로 코드를 분석해보았다. PUSH, MOV, JE를 계속 반복하며 디코딩을 하는 것 같다. 코드를 계속 내리다보면 0040A1FB에서 00401150으로 JMP하고 다음 코드들이 0으로 채워져있는 것을 확인할 수 있다. 즉 이 주소가 OEP임을 알 수 있다.

[CTF]Reversing.kr 2023.12.29

picoCTF 2019 – asm3

asm3은 0xd2c26416, 0xe6cf51f0, 0xe54409d5가 인자일 때 return값을 구하는 문제이다. asm3: :push ebp :mov ebp,esp :xor eax,eax :mov ah,BYTE PTR [ebp+0x9] :shl ax,0x10 :sub al,BYTE PTR [ebp+0xe] :add ah,BYTE PTR [ebp+0xf] :xor ax,WORD PTR [ebp+0x12] :nop :pop ebp :ret : push ebp : mov ebp, esp → ebp에 esp 값을 복사한다. : xor eax, eax → 같은 값인 eax를 xor연산하기 때문에 결과가 0이 되고, eax값이 0이 된다. : mov ah, BYTE PTR [ebp+0x9] → [ebp+0x..

[CTF] PICOCTF2019 2023.12.29

picoCTF 2019 - asm2

asm2는 0x4, 0x21을 넣었을 때 return 값을 구하는 문제였다. asm2: :push ebp :mov ebp,esp :sub esp,0x10 :mov eax,DWORD PTR [ebp+0xc] :mov DWORD PTR [ebp-0x4],eax :mov eax,DWORD PTR [ebp+0x8] :mov DWORD PTR [ebp-0x8],eax :jmp 0x509 :add DWORD PTR [ebp-0x4],0x1 :add DWORD PTR [ebp-0x8],0x74 :cmp DWORD PTR [ebp-0x8],0xfb46 :jle 0x501 :mov eax,DWORD PTR [ebp-0x4] :leave :ret : push ebp : mov ebp, esp 까지 스택의 모양을 그려보았다..

[CTF] PICOCTF2019 2023.12.29