본문 바로가기

codeengn7

[CodeEngn] Challenges Basic RCE L20 CodeEngn_Challenges Basic RCE L20 L20. 이 프로그램은 Key파일을 필요로 하는 프로그램이다. 'Cracked by: CodeEngn!' 문구가 출력 되도록 하려면 crackme3.key 파일안의 데이터는 무엇이 되어야 하는가 Ex) 41424344454647 (정답이 여러개 있는 문제로 인증시 맞지 않다고 나올 경우 Contact로 연락주시면 확인 해드리겠습니다) 파일 실행 결과 key파일이 없어서 그런지 아무것도 뜨지 않는다. 더보기 key파일 없이 풀어보려도 시도했던 흔적.. createFileA API return결과 key파일이 없어 eax=FFFFFFFF이므로 401032에서 비교 후 분기되지 않는다. 이 부분을 수정하여 key파일이 없어도 파일이 존재할 때 실행되.. 2021. 10. 18.
[CodeEngn] Challenges Basic RCE L17, L18, L19 틀린 부분이 있다면 언제든지 댓글 남겨주세요! CodeEngn_Challenges Basic RCE L17 L17. 키값이 BEDA-2F56-BC4F4368-8A71-870B 일때 Name은 무엇인가 힌트 : Name은 한자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) Name이 한자리라고 해서 1을 입력하고 Key에 '123'을 입력했더니 다음과 같이 더 많은 문자를 입력하라는 문자열이 나온다. 파일의 정보를 확인해보니 델파이로 작성된 파일이다. x32dbg을 사용해보도록 하겠다. 메시지 박스가 뜨는 부분과 'Please Enter More Chars..'문자열을 이용하여 핵심 코드를 찾아가 보았다. 45BB24부분에서 eax값과 뒤의 숫자를 비교해 같거나.. 2021. 10. 14.
[CodeEngn] Challenges Basic RCE L13, L14, L15, L16 틀린 부분이 있다면 언제든지 댓글 남겨주세요! CodeEngn_Challenges Basic RCE L13 L13. 정답은 무엇인가 다짜고짜 정답이 무엇이냐고 한다.. 우선 파일정보를 확인하고 파일을 실행시켜보았다. 123을 입력했더니 틀렸다고 다시 입력하라고 한다. 이곳에 입력할 패스워드를 찾는 것 같다. 파일의 정보를 확인해보니 C#으로 작성된 .net파일이다. .net파일은 ollydbg에서 디버깅하기 어렵기 때문에 다른 프로그램을 사용한다. dotPeek 프로그램에서 파일을 열어보았다. 세개의 cs파일이 보이는데 그 중 RijndealSimpleTest.cs파일에서 패스워드를 찾을 수 있을 것 같다. * Rijndeal..익숙하다 싶었는데 대칭 암호 알고리즘이다. 이 알고리즘을 기반으로 AES암호.. 2021. 8. 22.
[CodeEngn] Challenges Basic RCE L10, L11, L12 틀린 부분이 있다면 언제든지 댓글 남겨주세요! CodeEngn_Challenges Basic RCE L10 L10. OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오. 프로그램을 실행시키면 다음과 같이 이름과 시리얼 번호를 입력하는 메시지 박스가 나온다. 프로그램의 정보를 확인해 본 결과 Aspack으로 패킹되어 있음을 알 수 있다. Aspack도 이전의 문제에서 했던 패킹 방법과 같은 방식으로 언패킹하면 된다. JNE이후 PUSH를 하는 경우 JUM와 동일하게 해당 주소로 이동하는 동작을 한다. 따라서 445834=OEP로 이동한다. string문자열 중 "registered...well done!" 문자열이 등록 성공 문자열로 추측된다. 문자열 위쪽 코드를 보면 44552B로 .. 2021. 8. 15.
[CodeEngn] Challenges Basic RCE L07, L08, L09 틀린 부분이 있다면 언제든지 댓글 남겨주세요! CodeEngn_Challenges Basic RCE L07 L07. 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가 string검색해서 시리얼 번호를 비교하는 것으로 추측되는 부분으로 이동한다. 비교 코드의 시작부분으로 추측되는 코드에 BP를 걸고 실행시켜본다. 메시지 박스에 시리얼 문자열을 입력하고 check버튼을 누르면 BP를 건 부분으로 이동한다. GetDlgItemText함수에서 사용자가 입력한 문자열을 가져온다. 'Ente'를 입력했다. VolumeName매개변수가 가리키는 주소(40225C)로 지정된 볼륨의 이름을 받아온다. 현재 분석 환경의 C드라이브 이름이 없기 때문에 빈 문자.. 2021. 8. 9.
[CodeEngn] Challenges Basic RCE L04, L05, L06 틀린 부분이 있다면 언제든지 댓글 남겨주세요! CodeEngn_Challenges Basic RCE L04 L04. 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 파일을 실행시키면 다음과 같이 그냥 실행시켰을 땐 '정상', 디버거를 통해 실행시켰을 경우 '디버깅 당함'이 나온다. 현재 프로그램이 디버깅을 당하고 있는지 체크하는 프로그램이다. ollydbg에서 파일을 열어 진행해보았다. 계속 진행하다보면 40100F 함수에서 cmd창에 탐지 여부 결과가 출력되며 코드 진행이 끝난다. 이 함수 안에서 루프문을 돌고 있는 것으로 보인다. 함수로 들어가보면 아래의 코드를 반복하면서 정상/디버깅 당함 여부를 체크하는 것으로 추측된다. KERNEL32.IsDe.. 2021. 8. 6.
[CodeEngn] Challenges Basic RCE L01, L02, L03 틀린 부분이 있다면 언제든지 댓글 남겨주세요! CodeEngn_Challenges Basic RCE L01 L01. HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가 이 파일이 몇 비트의 파일인지 찾는 방법은 많지만 그 중 파일 포멧 구조를 통해 찾아보았다. NT HEADER 내의 IMAGE_FILE_HEADER의 구조체 중 machine의 값은 CPU 별로 고유한 값을 의미한다. 32 bit Intel 호환 칩은 0x014C의 값을 가지며 64 bit Intel 칩은 0x0200의 값을 가진다. 32비트 파일이라는 것을 알았으니 ollydbg를 통해 파일을 열어보았다. 401000이 EntryPoint이고, 차례로 실행시켜보면 MessageBox AP.. 2021. 8. 5.
728x90
반응형