본문 바로가기

코드엔진

(4)
[코드엔진] basic 7 풀이 7번 문제 c드라이브 문제 설명대로 C 드라이브의 이름을 CodeEngn 으로 변경하였다. ​ 이제 실행해본다. ​ 시리얼값을 요구. 역시 아님. ​ 문자열 들 프로그램의 문자열들을 찾아보니 시리얼값 처럼 보이는게 많이나온다. ​ 일단 성공 문자열로 이동해보았다. 성공 문자열로 이동하여 쭉 돌려보니 ​ 처음에 L2C-5781 이라는 문자열을 쭉비교해보고 그다음 함수에서 EqfgEngn4562-ABEX 라는 문자열을 쭉비교하는 모습이 보였다. L2C-5781EqfgEngn4562-ABEX 그래서 그둘을 붙혀서 입력해보니 성공 처음에는 c드라이브 이름을 변경하지않고 그냥 실행시켰더니 키값이 L2C-5781 4562-ABEX 이였다. ​ 즉 c드라이브이름을 변경하여 나온 CodeEngn 은 EqfgEngn 으..
[코드엔진] basic 6 풀이 친철하게 언패킹하라고 알려주네요. UPX입니다 언패킹후 확인. 이제 실행시켜봅시다. 저 문자열을 디버거로 찾아봅시다. ​ ....? AD46DFS547?? ​ ...........????????찾았다 ​ 문제는 OEP를 같이 입력하라하였으니 OEP는 프로그램이 시작되는 위치를 말하는거입니다. 이미 언패킹을했기때문에 그냥 실행시켜서 보면되죠 OEP 이제 정답은 00401360AD46DFS547 입니다. ​ 끝끝.
[코드엔진] basic 5 풀이 5번 문제 ​ 일단 실행. ​ 일단 입력. ​ ​ 당연하게 디버거로 올려봅시다. ​ ????? 아까본 문자열이 없다?? 혹시 패킹되어있는지 확인해봅시다. ​ 짜잔 UPX로 패킹되어있다. 풀어봅시다. ​ 언패킹 ​ 언패킹하여 풀어낸 모습. ​ 이제 디버거에 올려서 메시지로 보았던 문자열을 찾아서 이동해보자. 어우야.. 찾은 문자열에서 조금더 위로 올라가면 분기하는 부분들이나오는데 천천히 진행해본결과 문자열을 받아가는 함수 , 문자열을 입력했는지 확인하는 함수 , 1번시리얼과 2번시리얼을 비교하는 함수들이나오길래 ​ 시리얼을 위에칸만 입력하는게아니라 아래도 입력을 해야하는걸 알았다. ​ 결과적으로 직접입력한 시리얼값 aaaa1111와 Registered User 을 비교하는데 안에 자세히 들어가면 4개씩 비..
[코드엔진] basic 4 풀이 4번 문제 역시 일단 실행. 정상 일정 시간마다 정상이라는 문자열이 출력된다. ​ 디버거에 올리고 실행시켜보자. ​ ​ 오 오. ​ 디버거를 천천히 실행시켜 저 문자가 나오는부분을 찾아봤다. 이 함수 안에서 나오고있다 F7을 이용해서 들어 가본다 . ​ ​ ​ sleep 라는 함수때문에 일정간격으로 문자가 나오고있던거같다. ​ 그다음 함수 Isdebuggerpresent 이름 부터 디버거라는 말이 들어가는 저함수가 정답이다. ​ 끝