CodeEngn 41

[CodeEngn] RCE basic L11 풀이

Q11. OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte Ex ) 00401000FF35CA204000E84D000000key 파일을 검사하는 프로그램인 것 같다.문제에서 OEP를 찾으라고 했으므로 이번 프로그램 역시 패킹되어 있다는 것을 유추해볼 수 있다.Exeinfo PE를 통해 11.exe의 파일구조를 확인해본 결과 UPX 패킹으로 된 프로그램임을 확인했다.upx -d 11.exeUPX 언패킹 툴을 통해 11.exe를 언패킹을 진행해주었다.OllyDbg로 UPX 언패킹한 11.exe를 열어보면 EP를 401000주소로 하는 것을 확인할 수 있다.패킹한 위치의 EP는 OEP와 같으므..

Reversing/CodeEngn 2025.09.01

[CodeEngn] RCE basic L10 풀이

Q10. OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE EX) 00400000EB03 Name과 Serial 값을 받는 프로그램이다.OllyDbg로 열어보면 10.exe의 EP는 코드 바깥에 있으므로, BP를 걸때 이를 명심하라는 경고창이 나온다.이후엔 실행 압축 코드라는 정보도 얻을 수 있었다.Aspack이라는 패킹으로 되어있는 프로그램이다.Aspack을 언패킹 하는 방법에 대해 구글링을 해보다가 여러 정보를 얻을 수 있었다.1. OEP를 구해야 하는 문제라면 패킹이 되어있을 것이다.- 패킹된 파일의 실제 프로그램 시작 부분을 OEP라고 하기 때문이다.2. Aspack 언패킹 방법 | 출처 : [ASPACK Unpacking]MUP [ASP..

Reversing/CodeEngn 2025.09.01

[CodeEngn] RCE basic L09 풀이

Q9. StolenByte를 구하시오 Ex) 75156A006835204009.exe를 바로 실행해보았더니 다음과 같은 에러 메세지를 확인해 볼 수 있었다.가끔 Windows 업데이트를 실행하면 실시간 보호가 다시 켜지는데, 이를 꺼두면 이 에러는 해결할 수 있다.09.exe 실행하면 keyfile을 체크한다고 한다. 확인 버튼을 누르면 해당 파일을 찾지 못했다는 메세지가 출력된다.문제를 풀기에 앞서 Stolen Byte의 의미를 이해하기 위해서 구글링을 진행했다.Stolen Byte는 패커가 위치를 이동시킨 코드로, POPAD와 OEP 사이의 연속되는 PUSH를 의미한다.그렇다면 Stolen Byte를 구해야 하는 이 문제도 무언가 패킹되었다는 힌트를 유추해볼 수 있을 것이다.09.exe는 UPX로 패..

Reversing/CodeEngn 2025.09.01

[CodeEngn] RCE basic L08 풀이

Q8. OEP를 구하시오 Ex) 00400000평범한 계산기 프로그램으로 보였다. 간단한 연산도 잘 수행해냈다.OllyDbg로 열어보려고 하니 Compressed code라고 알림창이 하나 출력되었다.실행 압축된 코드라고 하니 어떤 실행 압축 프로그램인지 알아내기 위해서 ExeinfoPE 프로그램을 이용하였다.해당 프로그램을 이용해서 08.exe를 분석해보니 UPX 실행 압축된 프로그램이라고 한다.upx -d 08.exe따라서 UPX 언패킹 툴을 이용하여 언패킹을 진행한다.이제 OEP를 알아내기 위해서 언패킹한 08.exe를 다시 ollydbg로 로드해보았다.디버깅 후 프로그램을 종료하면 EP로 돌아오게 되는데, 언패킹을 진행한 프로그램의 EP는 OEP이므로 정답을 찾아낼 수 있다. 따라서 OEP는 01..

Reversing/CodeEngn 2025.09.01

[CodeEngn] RCE basic L07 풀이

Q7. 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 '어떤것'으로 변경되는가문제에서는 C드라이브의 이름이 CodeEngn일 경우라고 했으므로, VMware를 설치해서 C드라이브의 이름을 CodeEngn으로 변경해주는 작업을 시도했다.VMware에 07.exe, ollyDbg를 설치한 후 로드해서 F8로 내려가다 보면 4010ED에서 Serial값 입력받는 메세지 다음 4010F2주소의 String1 = "L2C-5781EqfgEngn4562-ABEX" 라는 Serial 값으로 보이는 값 하나를 찾아볼 수 있었다.해당 문구는 Serial 값이 맞다. 하지만 어떤식으로 C드라이브의 이름이 CodeEngn일 때, Serial 값이 생성되는 방식인지 궁금했다.다시 Ho..

Reversing/CodeEngn 2025.09.01

[CodeEngn] RCE basic L06 풀이

Q6. Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial Ex) 00400000PASSWORD06.exe를 실행해보면 다음과 같이 serial 값을 입력받는 칸과 체크하는 버튼이 전부인 프로그램이다.아무 값이나 입력하고 체크 해보면 다음과 같은 에러가 발생했다.IDA 프로그램을 통해 06.exe를 로드해서 분석해보면 UPX0이라는 UPX패킹과 관련된 정보를 얻을 수 있다.따라서 UPX 실행 압축 프로그램임을 유추해볼 수 있다.upx -d 06.exeUPX 언패킹 툴을 통해 06.exe를 언패킹을 진행한다.UPX 언패킹을 진행한 06.exe를 열어보면 AD46DFS547값이 보이고, Good Job! 문구도 확인해 볼 수 있었다.이 프로그램의 Serial 값은 'AD46DFS..

Reversing/CodeEngn 2025.09.01

[CodeEngn] RCE basic L05 풀이

Q5. 이 프로그램의 등록키는 무엇인가이번 프로그램은 올바른 등록키와 serial값을 입력해야 하는 것 같다.분석하기 앞서서 처음보는 명령어들이 꽤 있었다. 우선 처음보는 명령어에 대해서 검색을 진행하였고, 그래도 찾아볼 수 없는 내용에 대해서는 gpt의 도움을 받아 정리를 해보았다.XCHG첫번째 오퍼랜드와 두번째 오버랜드 교환FISTPFloating point를 integer로 변환하는 방식 (x86 instruction)PREFIXCPU 명령어라기보다는 디스어셈블러에서 보여주는 토큰SALCCF(Carry Flag)의 값에 따라 AL 레지스터에 0x00 또는 0xFF를 넣는 명령어LOOPDLOOP with DWORD counter로, ECX 레지스터를 1 줄이고(ECX ← ECX - 1),→ ECX ≠..

Reversing/CodeEngn 2025.08.31

[CodeEngn] RCE basic L04 풀이

Q4. 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 실행하면 cmd창으로 '정상' 이라는 문구가 반복적으로 출력되는 프로그램이다.문제에서 제시한 디버깅 프로그램을 감지할 수 있다고 해서 OllyDbg로 04.exe을 디버깅하면 '디버깅 당함' 문구가 출력된다.디버거를 탐지하는 함수의 이름을 물어봤으므로, 디버거 프로그램에 존재하는 함수명을 찾아보면 될 것이다.특정 함수명을 찾고싶다면 ollyDbg보다는 IDA 프로그램이 더 찾기 편하였다.IDA로 04.exe를 로드하여 f5(decompile) 기능을 사용하면 [그림 3]과 같은 화면을 볼 수 있다.이때 화면 좌측을 보면 Functions창에 프로그램에 사용된 함수들에 대해 정리가 잘 되어있다.여기..

Reversing/CodeEngn 2025.08.31

[CodeEngn] RCE basic L03 풀이

Q3. 비주얼베이직에서 스트링 비교함수 이름은?MSVBVM50.DLL 파일이 없어서 실행이 안된다고 한다.이를 해결하기 위해서 구글링을 진행하여 파일을 다운로드 받고 실행하여 해결했다.MSVBVM50.DLL 에러 해결법 | MSVBVM50.DLL 오류 해결 : 프로그램을 시작할 수 없습니다. : 네이버 블로그 MSVBVM50.DLL 오류 해결 : 프로그램을 시작할 수 없습니다.msvbvm50.dll은 윈도우 운영 시스템을 위해 마이크로소프트에서 개발한 MSDN Disc 2455와 관련된 DL...blog.naver.com 검색해보니 독일어로 작성된 프로그램이다.첫 줄 끝부분에 Passwort는 password와 비슷하여 비밀번호로 유추할 수 있었지만 다른 내용은 알지 못하여 확인을 눌러 넘어갔다.실행 ..

Reversing/CodeEngn 2025.08.29

[CodeEngn] RCE basic L02 풀이

Q2. 패스워드로 인증하는 실행파일이 손상되어 실행이 안되는 문제가 생겼다. 패스워드가 무엇인지 분석하시오02.exe를 실행해보았지만 다음과 같은 화면이 출력되면서 프로그램을 실행할 수 없었다.이후로 IDA와 OllyDbg 디버거 툴로도 열어보려고 했지만 실패하였다. 방법을 찾아보던 중 PE구조를 확인할 수 있는 PEview로 어디가 문제인지 분석해보기로 했다. PEview 툴을 통해서 02.exe를 로드하는데에 성공하였다. 실행 후 내리면서 보다보면 you did it! 이라는 성공했을 때 출력될 법한 문구를 확인할 수 있었다.그 이후엔 7A3 주소에서부터 'JK3FJZh'라는 문구를 확인해 볼 수 있었다. 코드 처럼 보이기에 Flag인 것 같아 인식을 시도해보았다.Flag 인식 성공

Reversing/CodeEngn 2025.08.29