본문 바로가기

리버싱

[CodeEngn]코드엔진 basic RCE L14 문제: Name이 CodeEngn 일때 Serial을 구하시오 (이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요) Ex) 11111 bruteforce에 관한 문제인 듯 하다. 프로그램을 일단 실행해보니 이렇게 나옴을 확인할 수 있다. ollydbg로 열어보니 패킹되어있을 수 있다고 한다. PEiD를 통해 패킹여부를 확인해본다. UPX로 패킹되어있음을 확인했다. UPX를 통해 언패킹한다. 난 14.exe를 un_14.exe에 저장해주었다. 이제 파일을 올리디버거로 열어준다. 문자열을 확인해보니(Search for- ~text strings) Good job이 있다. 저쪽으로 이동해본다. 보니, Good Job으로 가려면 저기 빨간색체크 표.. 더보기
[codeengn]코드엔진 basic RCE L10 문제: OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE EX) 00400000EB03 10.exe를 열어보니 암호화되어있을 수도 있다고 한다. ASPack은 처음 봤는데, 올바른 OEP를 찾아서 Dump를 띄우면 된다고 한다. (9번처럼 POPAD를 통해 어떤 부분을 빼고 PUSHAD를 통해 넣었음을 유추할 수 있다.) 9번을 풀어야 이걸 풀 수 있나보다. PUSHAD가 있으니 빼와서 넣었음을 예측해볼 수 있다. POPAD를 찾아보고 breakpoint를 걸어보려 했는데, 실행되지 않을 수도 있다는 메시지를 볼 수 있었다. 그래서 456335부터는 실행되지 않을 수도 있다는 것을 확인했다. 일단 재시작하여 F8을 통해 진행해보았다. PUSHAD.. 더보기
[CodeEngn]코드엔진 basic RCE L09 문제: StolenByte를 구하시오 Ex) 75156A0068352040 StolenByte를 구하는 문제이다. 먼저 Ollydbg로 열어보았더니 암호화되어있을 수도 있다고 한다. PEiD로 열어보니 UPX로 패킹되어있다고 한다. 09.exe를 unpack해주었다. unpack한 걸 열어보니, 12개 정도가 NOP으로 채워져있다. Stolen byte가 있다는 건 POPAD를 통해 명령어를 빼고, PUSHAD를 통해 명령어를 넣었을 것이라고 예측해볼 수 있다. 일단 POPAD를 검색해본다. 근데 나오는 게 없다. PUSHAD를 검색해본다. 이것도 나오는 게 없다. 혹시 몰라서 패킹되어있었던 원본의 09.exe를 ollydbg로 열어본다. PUSHAD가 여기있다. POPAD를 검색해본다. 언패킹했을 때 .. 더보기
[CodeEngn]코드엔진 basic RCE L13 문제: 정답은 무엇인가 올리디버거를 통해 열어보려고 했는데, 파일을 시작할 수 없다고 한다. 패킹은 되어있지 않고 C#으로 작성됨을 확인했다. 디컴파일을 위해 .Net reflector을 다운받았다. 계속 +를 눌러 Main으로 들어갔다. 코드를 확인해보니 친절하게 decrypt도 마련되어있음을 확인할 수 있었다. source code를 export해본다. Start해준 후, 명시되어있는 디렉토리로 가서 파일의 위치를 알아놓는다. 그걸 visual studio에 추가해서 파일을 연다. 이렇게 파일을 해놓고 ctrl+f5를 통해 실행해본다. 비밀번호 입력창은 커녕 위치들과 처리되지 않은 예외만 나오고 프로그램이 종료됐다. 검색을 해보니, 내 코드는 좀 다른 사람들과 다름을 확인했다. https://whit.. 더보기
[CodeEngn]코드엔진 basic RCE L12 문제: Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다 이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음 0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다. 문제 : Key값과 + 주소영역을 찾으시오 Ex) 7777777???????? 일단 Key를 구해야 한다. Ollydbg를 열어보니 이러한 함수가 보임을 확인했다. 일단 문자열을 확인한다.(Search for- ~strings) 들어가보니 정말 긴 문자열과 밑에 축하한다는 것이 보인다. 일단 축하한다는 곳으로 가본다. 맞다는 부분이 00401084이다. 이 부분으로 이동하라는 명령어가 있는지 확인해보도록 한다. 그런 명령어는 딱히 없는 듯 하다. 그럼 .. 더보기
[CodeEngn]코드엔진 basic RCE L11 문제: OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte Ex ) 00401000FF35CA204000E84D000000 OEP와 Stolenbyte를 찾는 문제이다. Ollydbg를 열면 PUSHAD가 되어있고, 밑에 NOP으로 채워져있는 것을 확인할 수 있다. NOP에 Stolenbyte가 있을 듯 하다. Ctrl+F를 통해 POPAD를 찾아보도록 한다. POPAD를 검색해보니 이 밑 부분이 NOP에 채워질 듯 하다. 일단 이 부분을 breakpoint로 해주었다. 이 부분까지 와보니, 아까는 없었던 문자열이 보인다. 윗부분에서 계속 F8을 눌러보니 이 부분으로 왔다. OEP는 004.. 더보기
[CodeEngn]코드엔진 basic RCE L06 Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial Ex) 00400000PASSWORD 패킹여부까지 알려주다니 너무 친절한 문제이다. 6번 언패킹하면 된다. 6번을 실행하면 이러한 화면이다. Strings를 사용할까 하였으나, 그냥 5번처럼 ollydbg를 사용하도록 한다. ollydbg를 실행하자마자 Search for - All referenced text strings를 봤다. Good Job이 있는 것을 보니, 보이는 문자열을 넣어 문제를 풀어보도록 한다. 여기에 답을 넣어보고 Check Serial을 하면, 알아낸 값이 맞는지 확인할 수 있다. -끝- 더보기
[CodeEngn]코드엔진 basic RCE L08 문제: OEP를 구하시오 Ex) 00400000 일단 PEiD를 확인해봤는데, 패킹되어있음을 확인할 수 있다. 따라서, unpacking을 해주었다. 시작되는 곳이 OEP임을 알 수 있다. 끝 더보기

반응형
LIST