CodeEngn 11

CodeEngn.com Basic RCE L12

12번 문제 : key 값과 그 key 값이 MessageBox에 출력되도록 하기 위해 수정해야 할 주소 영역을 구하는 것 12.exe파일을 실행하였더니 Key를 입력하는 창이 나왔고, Check를 눌러도 변화가 없었다. About을 눌러보니 알맞은 key값을 구하라는 메시지가 나왔다. PEiD를 통해 정보를 확인해 보았더니 패킹이 되어있지는 않았다. 올리디버거로 실행해서 Key값에 ‘1’를 입력하였다. 그랬더니 EAX에 1이 저장되는 것을 볼 수 있었다. 즉, 내가 Key값으로 입력한 값이 EAX에 대입되는 것을 확인할 수 있다. 올리디버거로 12.exe을 열었다. “Congratulation ...”와 같이 성공을 나타내는 문자열이 보인다. 위쪽에 CALL 부분이 있어서 그 부분을 break걸었다. ..

CodeEngn 2024.01.03

CodeEngn.com Basic RCE L18

1) Name이 CodeEngn일 때 Serial 값 구하는 문제 2) 18.exe 실행 - CodeEngn과 임의의 Serial 값 1234 입력 - 실패 3) 올리디버거 - 모든 문자열 확인 - 성공을 나타내는 듯한 Your serial is correct .. 문자열 확인 - 해당 위치로 이동 4) String2, String1이 빈공간, strcmp가 존재 5) 어떤 값을 입력할 경우 이 부분이 채워질 것이라 예상 - 004011EF에 break를 걸고 실행 6) 재실행 후 CodeEngn, 1234 입력 시 String2, String1이 채워짐 (String1 : Serial, String2 : Name을 통해 생성된 값) 7) 두 값을 비교 - Name이 CodeEngn일 때 Serial 값..

CodeEngn 2023.12.22

CodeEngn.com Basic RCE L15

1) Name이 CodeEngn일 때 Serial 구하는 문제 2) 15.exe 실행 -- Name에 CodeEngn, Serial에 1234 입력 - Try Again 출력 3) 올리디버거 - 모든 문자열 확인 - You cracked the UBCCrackME#1... - 해당 위치로 이동 4) [CMP EAX, DWORD PTR DS:[45B844]] : EAX와 DATA영역의 45B844 주소부터 4byte만큼의 값을 CMP를 통해 비교 5) JNZ이 있는 00458837에 break를 걸고 실행 - CodeEngn과 1234를 입력 6) 값을 입력 시 EAX에 “1234”가 저장이 된 것을 확인 - 구하려는 Serial 값이 45B844부터 4Byte라는 것을 알 수 있음 7) Follow in..

CodeEngn 2023.12.22

CodeEngn.com Basic RCE L11

1) OEP와 StolenByte를 구하는 문제 2) 11.exe 실행 화면 3) PEiD를 통해 확인 - UPX 패킹 4) upx.exe를 통해 UPX 언패킹 진행 5) (언패킹된 11.exe) 올리디버거 - NOP로 채워져 있음 6) StolenByte에 해당하는 POPAD, JMP 사이에 있는 PUSH 부분 코드 확인 7) (언패킹된 11.exe) StolenByte 복구 8) StolenByte 복구되면서 0040100C였던 OEP가 00401000으로 변경 9) new11.exe : 복구된 파일 덤프 10) new11.exe 정상적으로 실행 확인 11) 정답 코드 : OEP + StolenByte = 004010006A0068002040006812204000

CodeEngn 2023.12.22

CodeEngn.com Basic RCE L10

1) OEP를 구하고 '등록성공'으로 가는 분기점의 OPCODE를 구하는 문제 더보기 ※ OPCODE : 연산코드, 프로세서가 수행할 연산과 실행할 동작을 정의하는 코드 - 올리디버거로 열었을 경우 Hex dump에 해당되는 코드들이 OPCODE 2) 실행 시 Name, Serial 값 입력 불가능 3) PEiD - ASPack 패킹 되어있는 것 확인 4) 올리디버거를 통해 직접 ASPack 언패킹 진행 5) Find command 를 통해 retn 0c 검색 6) RETN 0c 아래 있는 두 줄에 BP를 걸어주고 실행(F9) 7) 실행 시키면 PUSH 뒤에 OEP 주소로 변경, RETN을 통해 OEP로 이동 8) OEP 부분으로 이동 후 Ctrl + A - 원래 코드 확인 9) 언패킹 완료 10) 언패..

CodeEngn 2023.12.22