리버싱 32

CodeEngn Basic RCE L17 Write Up

Key 값이 BEDA-2F56-BC4F4368-8A71-870B 일때 Name은 무엇인가 힌트 : Name은 한자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 이 문제는 키 값을 주고 이름을 구하는 문제입니다. 일단 문제 파일을 실행시켜보겠습니다. 이름이 한 글자라고 하니 한 글자를 입력해보겠습니다. Check it! 버튼을 눌렀더니 더 많은 글자를 입력하라고 합니다. OllyDBG를..

CodeEngn Basic RCE L16 Write Up

Name이 CodeEngn일때 Serial을 구하시오 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 먼저 프로그램을 실행시켜보겠습니다. 이름과 비밀번호를 입력할 수 있는 프로그램입니다. 이제 OllyDBG를 이용해서 분석해보겠습니다. 문자열 검색 기능을 이용해서 중요한 부분을 찾았습니다. 비밀번호를 입력받고 값을 비교해서 성공과 실패가 나뉘게 됩니다. 값을 비교할 때의 레지스터와 메모리의 값을 살펴보겠습니다. EAX에 들어있는 값은 0x4D2로 10진수로 1234입니다. 즉 ..

CodeEngn Basic RCE L15 Write Up

Name이 CodeEngn일때 Serial을 구하시오 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 먼저 프로그램을 실행시켜보겠습니다. Name과 Serial을 입력할 수 있는 칸을 함유하고 있는 창이 뜹니다. 아무 값이나 넣고 반응을 확인해보겠습니다. 정수 값만을 올바른 입력값으로 취급하는 것 같습니다. 아무 정수값을 넣었더니 실패 메시지가 출력됩니다. 이제 OllyDBG를 이용해서 분석해보겠습니다. 문자열 검색 기능을 이용해서 중요한 부분을 빠르게 찾을 수 있었습니다. F..

CodeEngn Basic RCE L14 Write Up

Name이 CodeEngn 일때 Serial을 구하시오 (이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요) Ex) 11111 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 먼저 프로그램을 실행시켜보겠습니다. 이름과 시리얼을 입력할 수 있는 칸이 있는 창이 뜹니다. 임의의 값을 넣고 CHECK버튼을 눌러보겠습니다. 당연하게도 실패 메시지가 출력됩니다. 이제 프로그램을 OllyDBG로 열어보겠습니다. PUSHAD가..

CodeEngn Basic RCE L13 Write Up

정답은 무엇인가 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 본격적인 분석에 앞서 프로그램을 실행시켜보겠습니다. 보통의 키젠 문제처럼 보입니다. 이제 OllyDBG로 열어보겠습니다. 라고 말하는 순간 OllyDBG가 에러를 뱉어냅니다. 흠... 일단 PEiD로 열어보겠습니다. C#으로 짜여진 프로그램이라는 것을 확인할 수 있습니다. OllyDBG는 C#으로 만들어진 프로그램을 디버깅할 수 없다는 약점이 있습니다. 그래서 저는 C# 디컴파일러 도구인 dotPeek을 이용해보겠..

CodeEngn Basic RCE L12 Write Up

Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다 이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음 0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다. 문제 : Key값과 + 주소영역을 찾으시오 Ex) 7777777???????? https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 일단 프로그램을 실행시켜보겠습니다. Key를 입력하는 창이 뜹니다. 아무 값이나 입력해보겠습니다. Chec..

CodeEngn Basic RCE L11 Write Up

문제:OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte Ex ) 00401000FF35CA204000E84D000000 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 먼저 문제 파일을 실행시켜보겠습니다. 키파일이 있는지 확인하는 프로그램이라고 생각됩니다. 확인을 눌러보니 파일을 찾을 수 없다고 합니다. 이 문제에서 원하는 답은 OEP와 StolenByte를 찾..

CodeEngn Basic RCE L10 Write Up

문제:OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE EX) 00400000EB03 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 먼저 문제 파일을 실행시켜보겠습니다. 이런 창이 뜨는데 아무것도 입력할 수 없습니다. 이제 PEiD로 열어보겠습니다. ASPack이라는 새로운 패커로 패킹되어있는 것을 확인할 수 있습니다. 패킹에 대한 내용은 여기를 참고해주세요. https://brainfreeee.tistory.com/..

CodeEngn Basic RCE L09 Write Up

문제:StolenByte를 구하시오 Ex) 75156A0068352040 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 일단 문제를 실행시켜보겠습니다. 확인을 눌러보겠습니다. 역시나 에러 창이 뜹니다. 이제 PEiD로 열어보겠습니다. UPX로 패킹된 것을 확인할 수 있습니다. 언패킹 도구로 언패킹 해주겠습니다. 이제 Ollydbg로 열어주겠습니다. 그리고 F9를 이용해서 실행시켜보겠습니다. 그랬더니 이런 알 수 없는 창이 뜹니다. 어째서? 이런 일이 일어나는 것일까요? 그 이..

CodeEngn Basic RCE L08 Write Up

문제:OEP를 구하시오 Ex) 00400000 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 일단 문제를 실행시켜보겠습니다. 평범한 계산기 프로그램으로 보입니다. 더 많은 정보를 얻기 위해 PEiD로 열어보겠습니다. UPX로 패킹된 것을 알 수 있습니다. 패킹에 대한 내용은 여기를 참고해주세요. https://brainfreeee.tistory.com/33 패킹(Packing)에 대하여 패킹(Packing)이란? 패킹(Packing)은 실행압축이라는 뜻을 가지고 있습니다. 실..