Reversing/Codengn Advance
-
-
CodeEngn Advance08 (미완)Reversing/Codengn Advance 2018. 8. 15. 15:44
CodeEngn Advance 08 문제풀이 문제 지문 中Key 값이 5D88-53B4-52A87D27-1D0D-5B09 일때 Name은 무엇인가 힌트 : Name은 두자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) (그림 1)(사진 1)위 화면은 로드? 작업이라고 얼추 들은 기억이난다.(초심잡고 다시하는 중)(그림 2)로드하는 화면에서 F9(실행)을 하게되면 프로그램 실제코드로 이동하게 된다.(그림 3)리버싱을 수행할 때 마다 문자열 체킹하면 단서가 나오기 때문에 위(그림 3) 또한 정답시 출력하는 문자열로 추정되는 "Good Boy!!!"가 보인다. (그림 4)"Good Boy!!!"루틴으로 이동한 화면이다. 파란색 박스는 내가 Name에 입력한 값의 개..
-
CodeEngn Advance 06Reversing/Codengn Advance 2017. 1. 17. 09:24
UPX언패킹을 해준다. ISDebuggerPresent 우회를 해준다.실행(F9)를 해준다. stop(F12)를 해준다.그리고 엔터를 꾸욱눌러준다.790에서 끝난다.원래 이렇게 푸는거 아닌데 백투유저 모드 안되서.. (내가 하면 항상 잘 안됨 ㅡㅡ) -> 추가 내용: 그냥 파일실행해서 엔터만누를경우 10회 단위로 뚝 끊겨서 다시 클릭해서 엔터누르고 다시클릭해서 엔터누르고 반복되서 번거로운데위 순서 처럼해주면 엔터누를때 제약없이 계속 이어서 횟수가올라감 뭐라표현해야하지.. 1 2 3 4 5 6 7 8 9 10 (뚝 다시 클릭) 11 12 13 14 ... // 이게 그냥 실행할 경우1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... // 위 순서처럼 한 경우 // 한번 문제 실행해보시면 알수..
-
CodeEngn Advance 01Reversing/Codengn Advance 2017. 1. 16. 10:56
문제 지문의 핵심은 몇 밀리세컨드 이다. 문제 파일을 PEiD를 통해 확인결과 UPX패킹이 되어있는 상태이다.[UPX툴로 언패킹을 해준 상태] // upx -d [파일경로] //API함수중에서 밀리세컨드단위로 세는 함수는 timegetTime() 함수이다. 그러므로 미리 모든 timgetTime()함수에 Break을 걸어준다.IS DebuggerPresent() 기본적인 안티디버깅 함수이다. 나는 그냥 야매로 90909090(NOP)를 해주었다.( 주의: 정석은 이렇게하면 안됨 )이렇게 되면 안티디버깅에 걸리지않는다.timegetTime()함수에서 시간을 정해놓고 꺼질 수 있는건 cmp 명령어가 비교하고 있기때문이다. 그래서 cmp명령어가 비교하는 값을 유심히 지켜봐라 나는 여기 cmp에서 멈췄다. 밑에..