목록wargame/CodeEngn (26)
ASPack으로 패킹된 프로그램 esp 트릭을 이용한다. 해당 부분이 oep이다. 문자열 검색을 하여 찾는다. 44550c로 이동! 성공 문구가 보인다. 위쪽의 JNE분기문에 따라 갈라진다. 4454d4의 opcode는 77 57
StolenByte를 구해야 한다. 이번에도 UPX로 패킹되어 있는 프로그램이다. esp트릭으로 언패킹을 진행하는 과정까지 쫓아간다. 근데 3개의 이상한 값을 스택에 넣고 있다. 그리고 oep로 진입을 한다. oep로 진입한 후 push 0을 진행하고 MessageBoxA를 호출한다. 하지만 해당 함수는 인자 값이 4개가 필요하지만 oep이전에 push를 하고 들어온다. 이것이 문제점이다. 이상태로 언패킹을 진행할 시 오류가 발생한다. ' oep위에 푸시 값들을 복사해서 넣어 준다. 그 후 oep를 401000으로 설정 후 dump를 뜨고 iat를 설정해준다. 오류 없이 프로그램이 실행된다. 즉 stolen byte는 이 녀석이다. ----------------------------------------..
oep를 구하는 쉬운 문제 무슨 패커인지 확인을 해준다. UPX로 패킹이 되어 있다. ESP트릭을 이용해준다. 마지막에 1012475로 JMP를 하는데 그곳이 OEP이다. OEP 주소는 1012475이다.
시리얼 입력 후 사용자 코드 실행으로 위치를 찾았다. 우리가 원하는 시리얼 번호가 있다. GetvolumeInformationA에서 c드라이브의 이름을 가져온다. 그에 따른 연산 결과로 시리얼 번호를 만든다. 문제에 따라 c드라이브의 이름을 CodeEngn으로 바꾸고 다시 실행해보았다. 시리얼 번호가 변경되어 있다. 문제에서는 CodeEngn문자열이 어떻게 변했는지 적는 거라서 EqfgEngn이 flag이다.
언팩 문제가 나온다. 바로 무슨 패킹이 확인해준다. UPX패커이다. 디버거로 확인해준다. 시작하면 PUSHAD가 나오므로 esp 트릭을 이용해준다. 그 후 진행하면 oep로 점프하는 곳이 나온다. 스칼라로 덤프를 만들어 주고 iat를 설정해주었다. 처음 써보는 플러그인이지만 다 비슷하기 때문에 바로 사용할 수 있었다. 덤프 프로그램을 다시 디버거 올려주고 Run to User Code로 내가 입력한 값을 스택에서 찾아준다. 해당 참조 주소로 이동해준다. 익숙한 string이 보인다. 위쪽에 내가 입력한 숫자가 있다.(123456787) 그 아래는 수상한 문자열이 보인다.(AD46DFS547) 두 문자열을 push 하고 함수의 검증 루틴이 따라 EAX값을 반환한다. 해당 문자열을 시리얼 번호에 입력!!
등록키를 찾는 문제이다 꽤나 재미있었다. user code bp를 걸고 내가 입력한 문자를 stack에서 찾았다. 440fA4로 이동하였다. 성공과 실패의 분기문이 보인다. 이 근처에 점검 루틴 함수가 있을 거라 예상했다. 좀 더 위쪽으로 이동하여 천천히 디버깅을 진행했다 해당 분기문에서 점프가 취해지지만 점프를 하면 실패 문구가 나오므로 위쪽 함수에 ID를 점검하는 루틴이 있다는 것을 예상했다. INFO 하여 확인하도록 했다. 문자열을 비교하는 구문이 있다. ID는 Registered User이다. 입력한 후 다시 디버깅을 진행했다. 역시나 점프 구문에서 점프를 하지 않고 내려갔다. 이와 같은 방법으로 일련번호도 찾았다.
프로그램을 가동하면 "정상"이라는 문구가 나오지만 디버거에 올리면 "디버깅 당함"라는 문구가 나온다. 즉 안티 디버깅 기법이 들어가 있다. 어떠한 기술이 들어가 있는지와 우회 과정을 정리한다. 결론 부터 말하자면 함수 이름을 찾다 보면 답을 찾을 수 있다. kernelbase.dll에 IsDebuggerPresent라는 함수가 있다. 이게 안티 디버깅이다. 해당 함수에 info 하여 bp를 걸고 실행했다; IsDebuggerPresent는 해당 프로세스가 디버깅 중인지 여부를 PEB 구조체의 디버깅 상태 값을 확인한다. 디버깅 중이면 1 아니면 0으로 설정된다. 사진과 같이 디버깅 중이므로 1이라는 값이 리턴된다. 해당 값을 0으로 바꾸어 준다. 참조하는 값을 0으로 있는 위치로 바꾸어 주고 프로그램을 ..